(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!*******************************************!*\ !*** D:/code/private/Monitor-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 */ 143));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 78));\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.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n// Vue.prototype.baseUrl = '/bfwcs'\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJBcHAiLCJtcFR5cGUiLCJhcHAiLCIkbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUFtQjtBQUduQjtBQUFxQjtBQUFBO0FBQ3JCQSxZQUFHLENBQUNDLE1BQU0sQ0FBQ0MsYUFBYSxHQUFHLEtBQUs7QUFDaENGLFlBQUcsQ0FBQ0csU0FBUyxDQUFDQyxRQUFRLEdBQUcsU0FBUztBQUNsQztBQUNBQyxZQUFHLENBQUNDLE1BQU0sR0FBRyxLQUFLO0FBQ2xCLElBQU1DLEdBQUcsR0FBRyxJQUFJUCxZQUFHLG1CQUNaSyxZQUFHLEVBQ1I7QUFDRkUsR0FBRyxDQUFDQyxNQUFNLEVBQUUiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndW5pLXBhZ2VzJztpbXBvcnQgQXBwIGZyb20gJy4vQXBwJ1xyXG5cclxuXHJcbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xyXG5WdWUuY29uZmlnLnByb2R1Y3Rpb25UaXAgPSBmYWxzZVxyXG5WdWUucHJvdG90eXBlLmJhc2VIdHRwID0gJ2h0dHA6Ly8nXHJcbi8vIFZ1ZS5wcm90b3R5cGUuYmFzZVVybCA9ICcvYmZ3Y3MnXHJcbkFwcC5tcFR5cGUgPSAnYXBwJ1xyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuICAgIC4uLkFwcFxyXG59KVxyXG5hcHAuJG1vdW50KClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\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(arg) { var key = toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } 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(obj) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); } 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(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 6 */ /*!**********************************************!*\ !*** D:/code/private/Monitor-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/home/home', function () { return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 7).default); }); __definePage('pages/test/test', function () { return Vue.extend(__webpack_require__(/*! pages/test/test.vue?mpType=page */ 104).default); }); __definePage('pages/index', function () { return Vue.extend(__webpack_require__(/*! pages/index.vue?mpType=page */ 109).default); }); __definePage('pages/index/index', function () { return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 114).default); }); __definePage('pages/index/monitor', function () { return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 138).default); }); __definePage('pages/test/test', function () { return Vue.extend(__webpack_require__(/*! pages/test/test.vue?mpType=page */ 104).default); }); /***/ }), /* 7 */ /*!*******************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/home/home.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 _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 8);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 100);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_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 _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VMO0FBQ3ZMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9ob21lL2hvbWUudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n"); /***/ }), /* 8 */ /*!*************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&mpType=page ***! \*************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=44021cb6&mpType=page */ 9); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_44021cb6_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!D:/code/private/Monitor-APP/pages/home/home.vue?vue&type=template&id=44021cb6&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 = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 10) .default, yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 26).default, qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 31) .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", "container"), attrs: { _i: 0 } }, [ _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.homeMode, show: _vm.homeViewShow, _i: 1, }, }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "home-view"), attrs: { _i: 2 } }, [ _c( "view", { staticClass: _vm._$s(3, "sc", "head"), attrs: { _i: 3 } }, [_c("text")] ), _c( "view", { staticClass: _vm._$s(5, "sc", "time-tools"), attrs: { _i: 5 }, }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(6, "sc", "button-left"), attrs: { _i: 6 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(7, "sc", "button-right"), attrs: { _i: 7 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c( "view", { staticClass: _vm._$s(8, "sc", "main"), attrs: { _i: 8 } }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "mian-item"), attrs: { _i: 9 }, }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "mian-item-box"), attrs: { _i: 10 }, }, [ _c("y-box", { attrs: { _i: 11 } }, [ _c( "view", { staticClass: _vm._$s(12, "sc", "box-item"), attrs: { _i: 12 }, }, [ _c("text", { staticClass: _vm._$s(13, "sc", "item-title"), attrs: { _i: 13 }, }), _c("text", { staticClass: _vm._$s( 14, "sc", "item-subTitle" ), attrs: { _i: 14 }, }), ] ), _c( "view", { staticClass: _vm._$s(15, "sc", "box-item"), attrs: { _i: 15 }, }, [ _c("text", { staticClass: _vm._$s(16, "sc", "item-title"), attrs: { _i: 16 }, }), _c("text", { staticClass: _vm._$s( 17, "sc", "item-subTitle" ), attrs: { _i: 17 }, }), _c( "view", { staticClass: _vm._$s(18, "sc", "img-box"), attrs: { _i: 18 }, }, [ _c( "swiper", { staticClass: _vm._$s( 19, "sc", "swiper-body-main" ), attrs: { _i: 19 }, }, _vm._l( _vm._$s(20, "f", { forItems: _vm.locList, }), function (item, i, $20, $30) { return _c( "swiper-item", { key: _vm._$s(20, "f", { forIndex: $20, key: i, }), staticClass: _vm._$s( "20-" + $30, "sc", "swiper-item" ), attrs: { _i: "20-" + $30 }, }, [ _c("view", [ _vm._v( _vm._$s( "21-" + $30, "t0-0", _vm._s(item.model) ) ), ]), _c("view", [ _vm._v( _vm._$s( "22-" + $30, "t0-0", _vm._s(item.modelCount) ) ), ]), ] ) } ), 0 ), ] ), ] ), _c( "view", { staticClass: _vm._$s(23, "sc", "box-item"), attrs: { _i: 23 }, }, [ _c( "view", { staticClass: _vm._$s(24, "sc", "flex-row"), attrs: { _i: 24 }, }, [ _c( "view", { staticClass: _vm._$s( 25, "sc", "flex-col" ), attrs: { _i: 25 }, }, [ _c("text", { staticClass: _vm._$s( 26, "sc", "item-title" ), attrs: { _i: 26 }, }), _c("text", { staticClass: _vm._$s( 27, "sc", "item-subTitle" ), attrs: { _i: 27 }, }), ] ), _c("view", [ _c( "view", { staticClass: _vm._$s( 29, "sc", "flex-col" ), attrs: { _i: 29 }, }, [ _c( "text", { staticClass: _vm._$s( 30, "sc", "item-title" ), attrs: { _i: 30 }, }, [ _vm._v( _vm._$s( 30, "t0-0", _vm._s(_vm.baseInfo.usedPr) ) ), ] ), ] ), ]), ] ), _c( "view", { staticClass: _vm._$s(31, "sc", "flex-col"), attrs: { _i: 31 }, }, [ _c( "view", { staticClass: _vm._$s( 32, "sc", "flex-row" ), attrs: { _i: 32 }, }, [ _c( "view", { staticClass: _vm._$s( 33, "sc", "progressBar" ), attrs: { _i: 33 }, }, [ _c("view", { staticClass: _vm._$s( 34, "sc", "progress" ), style: _vm._$s( 34, "s", "width:" + _vm.baseInfo.usedPr + "%" ), attrs: { _i: 34 }, }), ] ), _c("view", [ _vm._v( _vm._$s( 35, "t0-0", _vm._s(_vm.baseInfo.used) ) ), ]), ] ), ] ), ] ), ]), ], 1 ), ] ), _c( "view", { staticClass: _vm._$s(36, "sc", "mian-item"), attrs: { _i: 36 }, }, [ _c( "view", { staticClass: _vm._$s(37, "sc", "mian-item-box"), attrs: { _i: 37 }, }, [ _c("view", [ _c( "view", [ _c("y-box", { attrs: { _i: 40 } }, [ _c( "view", { staticClass: _vm._$s( 41, "sc", "box-item" ), attrs: { _i: 41 }, }, [ _c( "view", { staticClass: _vm._$s( 42, "sc", "flex-row" ), attrs: { _i: 42 }, }, [ _c( "view", { staticClass: _vm._$s( 43, "sc", "flex-col" ), attrs: { _i: 43 }, }, [ _c("text", { staticClass: _vm._$s( 44, "sc", "item-title" ), attrs: { _i: 44 }, }), _c("text", { staticClass: _vm._$s( 45, "sc", "item-subTitle" ), attrs: { _i: 45 }, }), ] ), _c("view", [ _c("view", { staticClass: _vm._$s( 47, "sc", "flex-col" ), attrs: { _i: 47 }, }), ]), ] ), _c( "view", { staticClass: _vm._$s( 48, "sc", "charts-box" ), attrs: { _i: 48 }, }, [ _c("qiun-data-charts", { attrs: { type: "line", chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, _i: 49, }, }), ], 1 ), ] ), ]), ], 1 ), _c("view"), _c( "view", [ _c("y-box", { attrs: { _i: 52 } }, [ _c( "view", { staticClass: _vm._$s( 53, "sc", "box-item" ), attrs: { _i: 53 }, }, [ _c( "view", { staticClass: _vm._$s( 54, "sc", "flex-row" ), attrs: { _i: 54 }, }, [ _c( "view", { staticClass: _vm._$s( 55, "sc", "flex-col" ), attrs: { _i: 55 }, }, [ _c("text", { staticClass: _vm._$s( 56, "sc", "item-title" ), attrs: { _i: 56 }, }), _c("text", { staticClass: _vm._$s( 57, "sc", "item-subTitle" ), attrs: { _i: 57 }, }), ] ), _c("view", [ _c( "view", { staticClass: _vm._$s( 59, "sc", "flex-col" ), attrs: { _i: 59 }, }, [ _c("text", { staticClass: _vm._$s( 60, "sc", "item-title" ), attrs: { _i: 60 }, }), _c("text", { staticClass: _vm._$s( 61, "sc", "item-subTitle" ), attrs: { _i: 61 }, }), ] ), ]), ] ), _c( "view", { staticClass: _vm._$s( 62, "sc", "flex-row" ), attrs: { _i: 62 }, }, [ _c( "view", { staticClass: _vm._$s( 63, "sc", "charts-box-ring" ), attrs: { _i: 63 }, }, [ _c("qiun-data-charts", { attrs: { type: "ring", opts: { legend: { position: "bottom", }, }, eopts: _vm.ringOpts, chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, _i: 64, }, }), ], 1 ), _c("view", [ _c( "view", { staticClass: _vm._$s( 66, "sc", "flex-row sub-info" ), attrs: { _i: 66 }, }, [ _c("image", { attrs: { src: _vm._$s( 67, "a-src", __webpack_require__(/*! ../../static/g1.png */ 97) ), _i: 67, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( 69, "t0-0", _vm._s( _vm.baseInfo.stockCount ) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 70, "sc", "flex-row sub-info" ), attrs: { _i: 70 }, }, [ _c("image", { attrs: { src: _vm._$s( 71, "a-src", __webpack_require__(/*! ../../static/f1.png */ 98) ), _i: 71, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( 73, "t0-0", _vm._s( _vm.baseInfo.emptyCount ) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 74, "sc", "flex-row sub-info" ), attrs: { _i: 74 }, }, [ _c("image", { attrs: { src: _vm._$s( 75, "a-src", __webpack_require__(/*! ../../static/e1.png */ 99) ), _i: 75, }, }), _c("view"), _c("view", [ _vm._v( _vm._$s( 77, "t0-0", _vm._s( _vm.baseInfo.noneCount ) ) ), ]), ] ), ]), ] ), ] ), ]), ], 1 ), _c("view"), _c( "view", [ _c("y-box", { attrs: { _i: 80 } }, [ _c("view", { staticClass: _vm._$s(81, "sc", "flex-col"), attrs: { _i: 81 }, }), ]), ], 1 ), ]), ] ), ] ), ] ), ] ), ] ), _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.infoMode, show: _vm.infoViewShow, _i: 82, }, }, [ _c( "view", { staticClass: _vm._$s(83, "sc", "home-view"), attrs: { _i: 83 } }, [ _c( "view", { staticClass: _vm._$s(84, "sc", "head"), attrs: { _i: 84 } }, [ _c("text", [ _vm._v(_vm._$s(85, "t0-0", _vm._s(_vm.infoText.title))), ]), ] ), _c( "view", { staticClass: _vm._$s(86, "sc", "time-tools"), attrs: { _i: 86 }, }, [_vm._v(_vm._$s(86, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(87, "sc", "button-left"), attrs: { _i: 87 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(88, "sc", "button-right"), attrs: { _i: 88 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c( "view", { staticClass: _vm._$s(89, "sc", "info-main"), attrs: { _i: 89 }, }, [ _c( "view", { staticClass: _vm._$s(90, "sc", "info-box"), attrs: { _i: 90 }, }, [ _c("y-box", { attrs: { _i: 91 } }, [ _c( "view", { staticClass: _vm._$s(92, "sc", "text-content"), attrs: { _i: 92 }, }, [ _c( "view", { staticClass: _vm._$s(93, "sc", "swiper-head"), attrs: { _i: 93 }, }, [ _c("view", [ _vm._v( _vm._$s( 94, "t0-0", _vm._s(_vm.infoText.barcode) ) ), ]), _c("view", [ _vm._v( _vm._$s( 95, "t0-0", _vm._s(_vm.infoText.workNo) ) ), ]), _c("view", [ _vm._v( _vm._$s( 96, "t0-0", _vm._s(_vm.infoText.sourceLocNo) ) ), ]), _c("view", [ _vm._v( _vm._$s( 97, "t0-0", _vm._s(_vm.infoText.staNo) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s(98, "sc", "swiper-body"), attrs: { _i: 98 }, }, [ _c( "swiper", { staticClass: _vm._$s( 99, "sc", "swiper-body-main" ), attrs: { _i: 99 }, }, _vm._l( _vm._$s(100, "f", { forItems: _vm.swiperList, }), function (item, i, $21, $31) { return _c( "swiper-item", { key: _vm._$s(100, "f", { forIndex: $21, key: i, }), staticClass: _vm._$s( "100-" + $31, "sc", "swiper-item" ), attrs: { _i: "100-" + $31 }, }, [ _c("view", [ _vm._v( _vm._$s( "101-" + $31, "t0-0", _vm._s(item.matnr) ) ), ]), _c("view", [ _vm._v( _vm._$s( "102-" + $31, "t0-0", _vm._s(item.manuDate) ) ), ]), _c("view", [ _vm._v( _vm._$s( "103-" + $31, "t0-0", _vm._s(item.batch) ) ), ]), _c("view", [ _vm._v( _vm._$s( "104-" + $31, "t0-0", _vm._s(item.model) ) ), ]), _c("view", [ _vm._v( _vm._$s( "105-" + $31, "t0-0", _vm._s(item.specs) ) ), ]), _c("view", [ _vm._v( _vm._$s( "106-" + $31, "t0-0", _vm._s(item.length) ) ), ]), _c("view", [ _vm._v( _vm._$s( "107-" + $31, "t0-0", _vm._s(item.weight) ) ), ]), _c("view", [ _vm._v( _vm._$s( "108-" + $31, "t0-0", _vm._s(item.volume) ) ), ]), ] ) } ), 0 ), ] ), ] ), ]), ], 1 ), ] ), ] ), ] ), _c( "uni-transition", { attrs: { duration: _vm.duration, "mode-class": _vm.errorInfoMode, show: _vm.errorInfoViewShow, _i: 109, }, }, [ _c( "view", { staticClass: _vm._$s(110, "sc", "error-info-view"), attrs: { _i: 110 }, }, [ _c( "view", { staticClass: _vm._$s(111, "sc", "head"), attrs: { _i: 111 } }, [ _c("text", [ _vm._v(_vm._$s(112, "t0-0", _vm._s(_vm.infoText.title))), ]), ] ), _c( "view", { staticClass: _vm._$s(113, "sc", "time-tools"), attrs: { _i: 113 }, }, [_vm._v(_vm._$s(113, "t0-0", _vm._s(_vm.calendar)))] ), _c("view", { staticClass: _vm._$s(114, "sc", "button-left"), attrs: { _i: 114 }, }), _c("view", { staticClass: _vm._$s(115, "sc", "button-right"), attrs: { _i: 115 }, }), _c( "view", { staticClass: _vm._$s(116, "sc", "info-main"), attrs: { _i: 116 }, }, [ _c( "view", { staticClass: _vm._$s(117, "sc", "info-box"), attrs: { _i: 117 }, }, [ _c("y-box", { attrs: { _i: 118 } }, [ _c( "view", { staticClass: _vm._$s(119, "sc", "info-box-text"), attrs: { _i: 119 }, }, [ _c( "view", { staticClass: _vm._$s( 120, "sc", "flex-col info-box-text-item" ), attrs: { _i: 120 }, }, [ _vm._v( _vm._$s( 120, "t0-0", _vm._s(_vm.infoText.error) ) ), ] ), ] ), ]), ], 1 ), ] ), ] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(121, "v-show", _vm.ejectShow), expression: "_$s(121,'v-show',ejectShow)", }, ], staticClass: _vm._$s(121, "sc", "eject-mask"), attrs: { _i: 121 }, }, [ _c( "view", { staticClass: _vm._$s(122, "sc", "eject"), attrs: { _i: 122 } }, [ _c("view", { staticClass: _vm._$s(123, "sc", "eject-title"), attrs: { _i: 123 }, }), _c( "scroll-view", { staticClass: _vm._$s(124, "sc", "eject-input"), attrs: { _i: 124 }, }, [ _c( "view", { staticClass: _vm._$s(125, "sc", "item"), attrs: { _i: 125 }, }, [ _c("view", { staticClass: _vm._$s(126, "sc", "desc"), attrs: { _i: 126 }, }), _c( "view", { staticClass: _vm._$s(127, "sc", "input"), attrs: { _i: 127 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP", }, ], attrs: { _i: 128 }, domProps: { value: _vm._$s(128, "v-model", _vm.baseIP), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(129, "sc", "item"), attrs: { _i: 129 }, }, [ _c("view", { staticClass: _vm._$s(130, "sc", "desc"), attrs: { _i: 130 }, }), _c( "view", { staticClass: _vm._$s(131, "sc", "input"), attrs: { _i: 131 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort", }, ], attrs: { _i: 132 }, domProps: { value: _vm._$s(132, "v-model", _vm.basePort), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(133, "sc", "item"), attrs: { _i: 133 }, }, [ _c("view", { staticClass: _vm._$s(134, "sc", "desc"), attrs: { _i: 134 }, }), _c( "view", { staticClass: _vm._$s(135, "sc", "input"), attrs: { _i: 135 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId", }, ], attrs: { _i: 136 }, domProps: { value: _vm._$s(136, "v-model", _vm.baseLedId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(137, "sc", "item"), attrs: { _i: 137 }, }, [ _c("view", { staticClass: _vm._$s(138, "sc", "desc"), attrs: { _i: 138 }, }), _c( "view", { staticClass: _vm._$s(139, "sc", "input"), attrs: { _i: 139 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId", }, ], attrs: { _i: 140 }, domProps: { value: _vm._$s(140, "v-model", _vm.baseCrnId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(141, "sc", "item"), attrs: { _i: 141 }, }, [ _c("view", { staticClass: _vm._$s(142, "sc", "desc"), attrs: { _i: 142 }, }), _c( "view", { staticClass: _vm._$s(143, "sc", "input"), attrs: { _i: 143 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseUrl, expression: "baseUrl", }, ], attrs: { _i: 144 }, domProps: { value: _vm._$s(144, "v-model", _vm.baseUrl), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseUrl = $event.target.value }, }, }), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(145, "sc", "eject-button"), attrs: { _i: 145 }, }, [ _c("view", { staticClass: _vm._$s(146, "sc", "button-item"), attrs: { _i: 146 }, on: { click: _vm.ejectClose }, }), _c("view", { staticClass: _vm._$s(147, "sc", "button-item"), attrs: { _i: 147 }, on: { click: _vm.ejectConfirm }, }), ] ), ] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(148, "v-show", _vm.timeOut), expression: "_$s(148,'v-show',timeOut)", }, ], attrs: { _i: 148 }, }, [_vm._v(_vm._$s(148, "t0-0", _vm._s(_vm.times)))] ), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 10 */ /*!***********************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***! \***********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 11);\n/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 13);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_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 _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-transition/components/uni-transition/uni-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MzY5ZjhjNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///10\n"); /***/ }), /* 11 */ /*!******************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \******************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 12); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___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!D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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 _vm._$s(0, "i", _vm.isShow) ? _c( "view", { ref: "ani", class: _vm._$s(0, "c", _vm.customClass), style: _vm._$s(0, "s", _vm.transformStyles), attrs: { animation: _vm._$s(0, "a-animation", _vm.animationData), _i: 0, }, on: { click: _vm.onClick }, }, [_vm._t("default", null, { _i: 1 })], 2 ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 13 */ /*!************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=script&lang=js& */ 14);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWtwQixDQUFnQix3b0JBQUcsRUFBQyIsImZpbGUiOiIxMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\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!D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/uni-transition.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 _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 22);\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/**\r\n * Transition 过渡动画\r\n * @description 简单过渡动画组件\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=985\r\n * @property {Boolean} show = [false|true] 控制组件显示或隐藏\r\n * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型\r\n * @value fade 渐隐渐出过渡\r\n * @value slide-top 由上至下过渡\r\n * @value slide-right 由右至左过渡\r\n * @value slide-bottom 由下至上过渡\r\n * @value slide-left 由左至右过渡\r\n * @value zoom-in 由小到大过渡\r\n * @value zoom-out 由大到小过渡\r\n * @property {Number} duration 过渡动画持续时间\r\n * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`\r\n */\nvar _default2 = {\n name: 'uniTransition',\n emits: ['click', 'change'],\n props: {\n show: {\n type: Boolean,\n default: false\n },\n modeClass: {\n type: [Array, String],\n default: function _default() {\n return 'fade';\n }\n },\n duration: {\n type: Number,\n default: 300\n },\n styles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n customClass: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n isShow: false,\n transform: '',\n opacity: 1,\n animationData: {},\n durationTime: 300,\n config: {}\n };\n },\n watch: {\n show: {\n handler: function handler(newVal) {\n if (newVal) {\n this.open();\n } else {\n // 避免上来就执行 close,导致动画错乱\n if (this.isShow) {\n this.close();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n // 生成样式数据\n stylesObject: function stylesObject() {\n var styles = _objectSpread(_objectSpread({}, this.styles), {}, {\n 'transition-duration': this.duration / 1000 + 's'\n });\n var transform = '';\n for (var i in styles) {\n var line = this.toLine(i);\n transform += line + ':' + styles[i] + ';';\n }\n return transform;\n },\n // 初始化动画条件\n transformStyles: function transformStyles() {\n return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject;\n }\n },\n created: function created() {\n // 动画默认配置\n this.config = {\n duration: this.duration,\n timingFunction: 'ease',\n transformOrigin: '50% 50%',\n delay: 0\n };\n this.durationTime = this.duration;\n },\n methods: {\n /**\r\n * ref 触发 初始化动画\r\n */\n init: function init() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (obj.duration) {\n this.durationTime = obj.duration;\n }\n this.animation = (0, _createAnimation.createAnimation)(Object.assign(this.config, obj), this);\n },\n /**\r\n * 点击组件触发回调\r\n */\n onClick: function onClick() {\n this.$emit('click', {\n detail: this.isShow\n });\n },\n /**\r\n * ref 触发 动画分组\r\n * @param {Object} obj\r\n */\n step: function step(obj) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.animation) return;\n for (var i in obj) {\n try {\n if ((0, _typeof2.default)(obj[i]) === 'object') {\n var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, (0, _toConsumableArray2.default)(obj[i]));\n } else {\n this.animation[i](obj[i]);\n }\n } catch (e) {\n __f__(\"error\", \"\\u65B9\\u6CD5 \".concat(i, \" \\u4E0D\\u5B58\\u5728\"), \" at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:139\");\n }\n }\n this.animation.step(config);\n return this;\n },\n /**\r\n * ref 触发 执行动画\r\n */\n run: function run(fn) {\n if (!this.animation) return;\n this.animation.run(fn);\n },\n // 开始过度动画\n open: function open() {\n var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;\n var _this$styleInit = this.styleInit(false),\n opacity = _this$styleInit.opacity,\n transform = _this$styleInit.transform;\n if (typeof opacity !== 'undefined') {\n this.opacity = opacity;\n }\n this.transform = transform;\n // 确保动态样式已经生效后,执行动画,如果不加 nextTick ,会导致 wx 动画执行异常\n this.$nextTick(function () {\n // TODO 定时器保证动画完全执行,目前有些问题,后面会取消定时器\n _this.timer = setTimeout(function () {\n _this.animation = (0, _createAnimation.createAnimation)(_this.config, _this);\n _this.tranfromInit(false).step();\n _this.animation.run();\n _this.$emit('change', {\n detail: _this.isShow\n });\n }, 20);\n });\n },\n // 关闭过度动画\n close: function close(type) {\n var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).step().run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;\n var _this2$styleInit = _this2.styleInit(false),\n opacity = _this2$styleInit.opacity,\n transform = _this2$styleInit.transform;\n _this2.opacity = opacity || 1;\n _this2.transform = transform;\n _this2.$emit('change', {\n detail: _this2.isShow\n });\n });\n },\n // 处理动画开始前的默认样式\n styleInit: function styleInit(type) {\n var _this3 = this;\n var styles = {\n transform: ''\n };\n var buildStyle = function buildStyle(type, mode) {\n if (mode === 'fade') {\n styles.opacity = _this3.animationType(type)[mode];\n } else {\n styles.transform += _this3.animationType(type)[mode] + ' ';\n }\n };\n if (typeof this.modeClass === 'string') {\n buildStyle(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildStyle(type, mode);\n });\n }\n return styles;\n },\n // 处理内置组合动画\n tranfromInit: function tranfromInit(type) {\n var _this4 = this;\n var buildTranfrom = function buildTranfrom(type, mode) {\n var aniNum = null;\n if (mode === 'fade') {\n aniNum = type ? 0 : 1;\n } else {\n aniNum = type ? '-100%' : '0';\n if (mode === 'zoom-in') {\n aniNum = type ? 0.8 : 1;\n }\n if (mode === 'zoom-out') {\n aniNum = type ? 1.2 : 1;\n }\n if (mode === 'slide-right') {\n aniNum = type ? '100%' : '0';\n }\n if (mode === 'slide-bottom') {\n aniNum = type ? '100%' : '0';\n }\n }\n _this4.animation[_this4.animationMode()[mode]](aniNum);\n };\n if (typeof this.modeClass === 'string') {\n buildTranfrom(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildTranfrom(type, mode);\n });\n }\n return this.animation;\n },\n animationType: function animationType(type) {\n return {\n fade: type ? 1 : 0,\n 'slide-top': \"translateY(\".concat(type ? '0' : '-100%', \")\"),\n 'slide-right': \"translateX(\".concat(type ? '0' : '100%', \")\"),\n 'slide-bottom': \"translateY(\".concat(type ? '0' : '100%', \")\"),\n 'slide-left': \"translateX(\".concat(type ? '0' : '-100%', \")\"),\n 'zoom-in': \"scaleX(\".concat(type ? 1 : 0.8, \") scaleY(\").concat(type ? 1 : 0.8, \")\"),\n 'zoom-out': \"scaleX(\".concat(type ? 1 : 1.2, \") scaleY(\").concat(type ? 1 : 1.2, \")\")\n };\n },\n // 内置动画类型与实际动画对应字典\n animationMode: function animationMode() {\n return {\n fade: 'opacity',\n 'slide-top': 'translateY',\n 'slide-right': 'translateX',\n 'slide-bottom': 'translateY',\n 'slide-left': 'translateX',\n 'zoom-in': 'scale',\n 'zoom-out': 'scale'\n };\n },\n // 驼峰转中横线\n toLine: function toLine(name) {\n return name.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n }\n};\nexports.default = _default2;\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJzaG93IiwidHlwZSIsImRlZmF1bHQiLCJtb2RlQ2xhc3MiLCJkdXJhdGlvbiIsInN0eWxlcyIsImN1c3RvbUNsYXNzIiwiZGF0YSIsImlzU2hvdyIsInRyYW5zZm9ybSIsIm9wYWNpdHkiLCJhbmltYXRpb25EYXRhIiwiZHVyYXRpb25UaW1lIiwiY29uZmlnIiwid2F0Y2giLCJoYW5kbGVyIiwiaW1tZWRpYXRlIiwiY29tcHV0ZWQiLCJzdHlsZXNPYmplY3QiLCJ0cmFuc2Zvcm1TdHlsZXMiLCJjcmVhdGVkIiwidGltaW5nRnVuY3Rpb24iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJkZWxheSIsIm1ldGhvZHMiLCJpbml0Iiwib25DbGljayIsImRldGFpbCIsInN0ZXAiLCJydW4iLCJvcGVuIiwiY2xlYXJUaW1lb3V0IiwiY2xvc2UiLCJzdHlsZUluaXQiLCJidWlsZFN0eWxlIiwidHJhbmZyb21Jbml0IiwiYW5pTnVtIiwiYnVpbGRUcmFuZnJvbSIsImFuaW1hdGlvblR5cGUiLCJmYWRlIiwiYW5pbWF0aW9uTW9kZSIsInRvTGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUtBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZkEsZ0JBZ0JBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0VBQ0E7RUFDQUs7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQWQ7TUFDQWU7UUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQSw2Q0FDQTtRQUNBO01BQUEsRUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBVDtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FVO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtNQUNBaEI7TUFDQWlCO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQUE7WUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBckI7UUFBQUQ7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQWtCO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBSztNQUFBO01BQ0E7TUFDQSx3QkFDQUosT0FDQUM7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUFBbkI7VUFBQUQ7UUFDQTtRQUNBO1FBQ0E7VUFDQWtCO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU07TUFBQTtNQUNBO1FBQ0F4QjtNQUNBO01BQ0E7UUFDQTtVQUNBSjtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E2QjtNQUNBO1FBQ0E7VUFDQUE7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBO1FBQ0E7VUFDQUM7UUFDQTtVQUNBQTtVQUNBO1lBQ0FBO1VBQ0E7VUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7VUFDQTtVQUNBO1lBQ0FBO1VBQ0E7UUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBQztNQUNBO1FBQ0E7VUFDQUE7UUFDQTtNQUNBO01BRUE7SUFDQTtJQUNBQztNQUNBO1FBQ0FDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQUQ7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDRCIiwiZmlsZSI6IjE0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJpc1Nob3dcIiByZWY9XCJhbmlcIiA6YW5pbWF0aW9uPVwiYW5pbWF0aW9uRGF0YVwiIDpjbGFzcz1cImN1c3RvbUNsYXNzXCIgOnN0eWxlPVwidHJhbnNmb3JtU3R5bGVzXCIgQGNsaWNrPVwib25DbGlja1wiPjxzbG90Pjwvc2xvdD48L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBjcmVhdGVBbmltYXRpb24gfSBmcm9tICcuL2NyZWF0ZUFuaW1hdGlvbidcclxuXHJcbi8qKlxyXG4gKiBUcmFuc2l0aW9uIOi/h+a4oeWKqOeUu1xyXG4gKiBAZGVzY3JpcHRpb24g566A5Y2V6L+H5rih5Yqo55S757uE5Lu2XHJcbiAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD05ODVcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzaG93ID0gW2ZhbHNlfHRydWVdIOaOp+WItue7hOS7tuaYvuekuuaIlumakOiXj1xyXG4gKiBAcHJvcGVydHkge0FycmF5fFN0cmluZ30gbW9kZUNsYXNzID0gW2ZhZGV8c2xpZGUtdG9wfHNsaWRlLXJpZ2h0fHNsaWRlLWJvdHRvbXxzbGlkZS1sZWZ0fHpvb20taW58em9vbS1vdXRdIOi/h+a4oeWKqOeUu+exu+Wei1xyXG4gKiAgQHZhbHVlIGZhZGUg5riQ6ZqQ5riQ5Ye66L+H5rihXHJcbiAqICBAdmFsdWUgc2xpZGUtdG9wIOeUseS4iuiHs+S4i+i/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLXJpZ2h0IOeUseWPs+iHs+W3pui/h+a4oVxyXG4gKiAgQHZhbHVlIHNsaWRlLWJvdHRvbSDnlLHkuIvoh7PkuIrov4fmuKFcclxuICogIEB2YWx1ZSBzbGlkZS1sZWZ0IOeUseW3puiHs+WPs+i/h+a4oVxyXG4gKiAgQHZhbHVlIHpvb20taW4g55Sx5bCP5Yiw5aSn6L+H5rihXHJcbiAqICBAdmFsdWUgem9vbS1vdXQg55Sx5aSn5Yiw5bCP6L+H5rihXHJcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBkdXJhdGlvbiDov4fmuKHliqjnlLvmjIHnu63ml7bpl7RcclxuICogQHByb3BlcnR5IHtPYmplY3R9IHN0eWxlcyDnu4Tku7bmoLflvI/vvIzlkIwgY3NzIOagt+W8j++8jOazqOaEj+W4puKAmS3igJjov57mjqXnrKbnmoTlsZ7mgKfpnIDopoHkvb/nlKjlsI/pqbzls7Dlhpnms5XlpoLvvJpgYmFja2dyb3VuZENvbG9yOnJlZGBcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRuYW1lOiAndW5pVHJhbnNpdGlvbicsXHJcblx0ZW1pdHM6WydjbGljaycsJ2NoYW5nZSddLFxyXG5cdHByb3BzOiB7XHJcblx0XHRzaG93OiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHR9LFxyXG5cdFx0bW9kZUNsYXNzOiB7XHJcblx0XHRcdHR5cGU6IFtBcnJheSwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gJ2ZhZGUnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkdXJhdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdGRlZmF1bHQ6IDMwMFxyXG5cdFx0fSxcclxuXHRcdHN0eWxlczoge1xyXG5cdFx0XHR0eXBlOiBPYmplY3QsXHJcblx0XHRcdGRlZmF1bHQoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHt9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjdXN0b21DbGFzczp7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRpc1Nob3c6IGZhbHNlLFxyXG5cdFx0XHR0cmFuc2Zvcm06ICcnLFxyXG5cdFx0XHRvcGFjaXR5OiAxLFxyXG5cdFx0XHRhbmltYXRpb25EYXRhOiB7fSxcclxuXHRcdFx0ZHVyYXRpb25UaW1lOiAzMDAsXHJcblx0XHRcdGNvbmZpZzoge31cclxuXHRcdH1cclxuXHR9LFxyXG5cdHdhdGNoOiB7XHJcblx0XHRzaG93OiB7XHJcblx0XHRcdGhhbmRsZXIobmV3VmFsKSB7XHJcblx0XHRcdFx0aWYgKG5ld1ZhbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vcGVuKClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8g6YG/5YWN5LiK5p2l5bCx5omn6KGMIGNsb3NlLOWvvOiHtOWKqOeUu+mUmeS5sVxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaXNTaG93KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9XHJcblx0fSxcclxuXHRjb21wdXRlZDoge1xyXG5cdFx0Ly8g55Sf5oiQ5qC35byP5pWw5o2uXHJcblx0XHRzdHlsZXNPYmplY3QoKSB7XHJcblx0XHRcdGxldCBzdHlsZXMgPSB7XHJcblx0XHRcdFx0Li4udGhpcy5zdHlsZXMsXHJcblx0XHRcdFx0J3RyYW5zaXRpb24tZHVyYXRpb24nOiB0aGlzLmR1cmF0aW9uIC8gMTAwMCArICdzJ1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCB0cmFuc2Zvcm0gPSAnJ1xyXG5cdFx0XHRmb3IgKGxldCBpIGluIHN0eWxlcykge1xyXG5cdFx0XHRcdGxldCBsaW5lID0gdGhpcy50b0xpbmUoaSlcclxuXHRcdFx0XHR0cmFuc2Zvcm0gKz0gbGluZSArICc6JyArIHN0eWxlc1tpXSArICc7J1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0cmFuc2Zvcm1cclxuXHRcdH0sXHJcblx0XHQvLyDliJ3lp4vljJbliqjnlLvmnaHku7ZcclxuXHRcdHRyYW5zZm9ybVN0eWxlcygpIHtcclxuXHRcdFx0cmV0dXJuICd0cmFuc2Zvcm06JyArIHRoaXMudHJhbnNmb3JtICsgJzsnICsgJ29wYWNpdHk6JyArIHRoaXMub3BhY2l0eSArICc7JyArIHRoaXMuc3R5bGVzT2JqZWN0XHJcblx0XHR9XHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0Ly8g5Yqo55S76buY6K6k6YWN572uXHJcblx0XHR0aGlzLmNvbmZpZyA9IHtcclxuXHRcdFx0ZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXHJcblx0XHRcdHRpbWluZ0Z1bmN0aW9uOiAnZWFzZScsXHJcblx0XHRcdHRyYW5zZm9ybU9yaWdpbjogJzUwJSA1MCUnLFxyXG5cdFx0XHRkZWxheTogMFxyXG5cdFx0fVxyXG5cdFx0dGhpcy5kdXJhdGlvblRpbWUgPSB0aGlzLmR1cmF0aW9uXHJcblx0fSxcclxuXHRtZXRob2RzOiB7XHJcblx0XHQvKipcclxuXHRcdCAqICByZWYg6Kem5Y+RIOWIneWni+WMluWKqOeUu1xyXG5cdFx0ICovXHJcblx0XHRpbml0KG9iaiA9IHt9KSB7XHJcblx0XHRcdGlmIChvYmouZHVyYXRpb24pIHtcclxuXHRcdFx0XHR0aGlzLmR1cmF0aW9uVGltZSA9IG9iai5kdXJhdGlvblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uID0gY3JlYXRlQW5pbWF0aW9uKE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIG9iaiksdGhpcylcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOeCueWHu+e7hOS7tuinpuWPkeWbnuiwg1xyXG5cdFx0ICovXHJcblx0XHRvbkNsaWNrKCkge1xyXG5cdFx0XHR0aGlzLiRlbWl0KCdjbGljaycsIHtcclxuXHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiByZWYg6Kem5Y+RIOWKqOeUu+WIhue7hFxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IG9ialxyXG5cdFx0ICovXHJcblx0XHRzdGVwKG9iaiwgY29uZmlnID0ge30pIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdGZvciAobGV0IGkgaW4gb2JqKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvYmpbaV0gPT09ICdvYmplY3QnKXtcclxuXHRcdFx0XHRcdFx0dGhpcy5hbmltYXRpb25baV0oLi4ub2JqW2ldKVxyXG5cdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdHRoaXMuYW5pbWF0aW9uW2ldKG9ialtpXSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGDmlrnms5UgJHtpfSDkuI3lrZjlnKhgKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHRcdFx0cmV0dXJuIHRoaXNcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqICByZWYg6Kem5Y+RIOaJp+ihjOWKqOeUu1xyXG5cdFx0ICovXHJcblx0XHRydW4oZm4pIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdHRoaXMuYW5pbWF0aW9uLnJ1bihmbilcclxuXHRcdH0sXHJcblx0XHQvLyDlvIDlp4vov4fluqbliqjnlLtcclxuXHRcdG9wZW4oKSB7XHJcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxyXG5cdFx0XHR0aGlzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdHRoaXMuaXNTaG93ID0gdHJ1ZVxyXG5cdFx0XHRsZXQgeyBvcGFjaXR5LCB0cmFuc2Zvcm0gfSA9IHRoaXMuc3R5bGVJbml0KGZhbHNlKVxyXG5cdFx0XHRpZiAodHlwZW9mIG9wYWNpdHkgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gdHJhbnNmb3JtXHJcblx0XHRcdC8vIOehruS/neWKqOaAgeagt+W8j+W3sue7j+eUn+aViOWQju+8jOaJp+ihjOWKqOeUu++8jOWmguaenOS4jeWKoCBuZXh0VGljayDvvIzkvJrlr7zoh7Qgd3gg5Yqo55S75omn6KGM5byC5bi4XHJcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHQvLyBUT0RPIOWumuaXtuWZqOS/neivgeWKqOeUu+WujOWFqOaJp+ihjO+8jOebruWJjeacieS6m+mXrumimO+8jOWQjumdouS8muWPlua2iOWumuaXtuWZqFxyXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuYW5pbWF0aW9uID0gY3JlYXRlQW5pbWF0aW9uKHRoaXMuY29uZmlnLCB0aGlzKVxyXG5cdFx0XHRcdFx0dGhpcy50cmFuZnJvbUluaXQoZmFsc2UpLnN0ZXAoKVxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKClcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRcdFx0ZGV0YWlsOiB0aGlzLmlzU2hvd1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9LCAyMClcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDlhbPpl63ov4fluqbliqjnlLtcclxuXHRcdGNsb3NlKHR5cGUpIHtcclxuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXHJcblx0XHRcdHRoaXMudHJhbmZyb21Jbml0KHRydWUpXHJcblx0XHRcdFx0LnN0ZXAoKVxyXG5cdFx0XHRcdC5ydW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25EYXRhID0gbnVsbFxyXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBudWxsXHJcblx0XHRcdFx0XHRsZXQgeyBvcGFjaXR5LCB0cmFuc2Zvcm0gfSA9IHRoaXMuc3R5bGVJbml0KGZhbHNlKVxyXG5cdFx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eSB8fCAxXHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Ly8g5aSE55CG5Yqo55S75byA5aeL5YmN55qE6buY6K6k5qC35byPXHJcblx0XHRzdHlsZUluaXQodHlwZSkge1xyXG5cdFx0XHRsZXQgc3R5bGVzID0ge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogJydcclxuXHRcdFx0fVxyXG5cdFx0XHRsZXQgYnVpbGRTdHlsZSA9ICh0eXBlLCBtb2RlKSA9PiB7XHJcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xyXG5cdFx0XHRcdFx0c3R5bGVzLm9wYWNpdHkgPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c3R5bGVzLnRyYW5zZm9ybSArPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV0gKyAnICdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRidWlsZFN0eWxlKHR5cGUsIHRoaXMubW9kZUNsYXNzKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XHJcblx0XHRcdFx0XHRidWlsZFN0eWxlKHR5cGUsIG1vZGUpXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gc3R5bGVzXHJcblx0XHR9LFxyXG5cdFx0Ly8g5aSE55CG5YaF572u57uE5ZCI5Yqo55S7XHJcblx0XHR0cmFuZnJvbUluaXQodHlwZSkge1xyXG5cdFx0XHRsZXQgYnVpbGRUcmFuZnJvbSA9ICh0eXBlLCBtb2RlKSA9PiB7XHJcblx0XHRcdFx0bGV0IGFuaU51bSA9IG51bGxcclxuXHRcdFx0XHRpZiAobW9kZSA9PT0gJ2ZhZGUnKSB7XHJcblx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gMCA6IDFcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICctMTAwJScgOiAnMCdcclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnem9vbS1pbicpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDAuOCA6IDFcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnem9vbS1vdXQnKSB7XHJcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAxLjIgOiAxXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobW9kZSA9PT0gJ3NsaWRlLXJpZ2h0Jykge1xyXG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAobW9kZSA9PT0gJ3NsaWRlLWJvdHRvbScpIHtcclxuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICcxMDAlJyA6ICcwJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvblt0aGlzLmFuaW1hdGlvbk1vZGUoKVttb2RlXV0oYW5pTnVtKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5tb2RlQ2xhc3MgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLm1vZGVDbGFzcy5mb3JFYWNoKG1vZGUgPT4ge1xyXG5cdFx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCBtb2RlKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiB0aGlzLmFuaW1hdGlvblxyXG5cdFx0fSxcclxuXHRcdGFuaW1hdGlvblR5cGUodHlwZSkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGZhZGU6IHR5cGUgPyAxIDogMCxcclxuXHRcdFx0XHQnc2xpZGUtdG9wJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtcmlnaHQnOiBgdHJhbnNsYXRlWCgke3R5cGUgPyAnMCcgOiAnMTAwJSd9KWAsXHJcblx0XHRcdFx0J3NsaWRlLWJvdHRvbSc6IGB0cmFuc2xhdGVZKCR7dHlwZSA/ICcwJyA6ICcxMDAlJ30pYCxcclxuXHRcdFx0XHQnc2xpZGUtbGVmdCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICctMTAwJSd9KWAsXHJcblx0XHRcdFx0J3pvb20taW4nOiBgc2NhbGVYKCR7dHlwZSA/IDEgOiAwLjh9KSBzY2FsZVkoJHt0eXBlID8gMSA6IDAuOH0pYCxcclxuXHRcdFx0XHQnem9vbS1vdXQnOiBgc2NhbGVYKCR7dHlwZSA/IDEgOiAxLjJ9KSBzY2FsZVkoJHt0eXBlID8gMSA6IDEuMn0pYFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Ly8g5YaF572u5Yqo55S757G75Z6L5LiO5a6e6ZmF5Yqo55S75a+55bqU5a2X5YW4XHJcblx0XHRhbmltYXRpb25Nb2RlKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGZhZGU6ICdvcGFjaXR5JyxcclxuXHRcdFx0XHQnc2xpZGUtdG9wJzogJ3RyYW5zbGF0ZVknLFxyXG5cdFx0XHRcdCdzbGlkZS1yaWdodCc6ICd0cmFuc2xhdGVYJyxcclxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogJ3RyYW5zbGF0ZVknLFxyXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogJ3RyYW5zbGF0ZVgnLFxyXG5cdFx0XHRcdCd6b29tLWluJzogJ3NjYWxlJyxcclxuXHRcdFx0XHQnem9vbS1vdXQnOiAnc2NhbGUnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHQvLyDpqbzls7DovazkuK3mqKrnur9cclxuXHRcdHRvTGluZShuYW1lKSB7XHJcblx0XHRcdHJldHVybiBuYW1lLnJlcGxhY2UoLyhbQS1aXSkvZywgJy0kMScpLnRvTG93ZXJDYXNlKClcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+PC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\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/helpers/toConsumableArray.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 17); var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 19); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 20); var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 21); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 17 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 18); function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return arrayLikeToArray(arr); } module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 18 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 19 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 20 */ /*!***************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 18); function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 21 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 22 */ /*!***********************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***! \***********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAnimation = createAnimation;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24));\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// const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar MPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {\n (0, _classCallCheck2.default)(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n }\n (0, _createClass2.default)(MPAnimation, [{\n key: \"_nvuePushAnimates\",\n value: function _nvuePushAnimates(type, args) {\n var aniObj = this.currentStepAnimates[this.next];\n var styles = {};\n if (!aniObj) {\n styles = {\n styles: {},\n config: {}\n };\n } else {\n styles = aniObj;\n }\n if (animateTypes1.includes(type)) {\n if (!styles.styles.transform) {\n styles.styles.transform = '';\n }\n var unit = '';\n if (type === 'rotate') {\n unit = 'deg';\n }\n styles.styles.transform += \"\".concat(type, \"(\").concat(args + unit, \") \");\n } else {\n styles.styles[type] = \"\".concat(args);\n }\n this.currentStepAnimates[this.next] = styles;\n }\n }, {\n key: \"_animateRun\",\n value: function _animateRun() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ref = this.$.$refs['ani'].ref;\n if (!ref) return;\n return new Promise(function (resolve, reject) {\n nvueAnimation.transition(ref, _objectSpread({\n styles: styles\n }, config), function (res) {\n resolve();\n });\n });\n }\n }, {\n key: \"_nvueNextAnimate\",\n value: function _nvueNextAnimate(animates) {\n var _this2 = this;\n var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {\n var styles = obj.styles,\n config = obj.config;\n this._animateRun(styles, config).then(function () {\n step += 1;\n _this2._nvueNextAnimate(animates, step, fn);\n });\n } else {\n this.currentStepAnimates = {};\n typeof fn === 'function' && fn();\n this.isEnd = true;\n }\n }\n }, {\n key: \"step\",\n value: function step() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.animation.step(config);\n return this;\n }\n }, {\n key: \"run\",\n value: function run(fn) {\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n }\n }]);\n return MPAnimation;\n}();\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {\n var _this$animation;\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n return this;\n };\n});\nfunction createAnimation(option, _this) {\n if (!_this) return;\n clearTimeout(_this.timer);\n return new MPAnimation(option, _this);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBSU1BLFdBQVc7RUFDaEIscUJBQVlDLE9BQU8sRUFBRUMsS0FBSyxFQUFFO0lBQUE7SUFDM0IsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87SUFDdEIsSUFBSSxDQUFDRSxTQUFTLEdBQUdDLEdBQUcsQ0FBQ0MsZUFBZSxDQUFDSixPQUFPLENBQUM7SUFDN0MsSUFBSSxDQUFDSyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUcsQ0FBQztJQUNiLElBQUksQ0FBQ0Ms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Q0FBQ3VDLE1BQU0sRUFBRTFDLEtBQUssRUFBRTtFQUM5QyxJQUFHLENBQUNBLEtBQUssRUFBRTtFQUNYMkMsWUFBWSxDQUFDM0MsS0FBSyxDQUFDa0MsS0FBSyxDQUFDO0VBQ3pCLE9BQU8sSUFBSXBDLFdBQVcsQ0FBQzRDLE1BQU0sRUFBRTFDLEtBQUssQ0FBQztBQUN0QyIsImZpbGUiOiIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n"); /***/ }), /* 23 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 24 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 25 */ /*!**********************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***! \**********************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode, /* vue-cli only */ components, // fixed by xxxxxx auto components renderjs // fixed by xxxxxx renderjs ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // fixed by xxxxxx auto components if (components) { if (!options.components) { options.components = {} } var hasOwn = Object.prototype.hasOwnProperty for (var name in components) { if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) { options.components[name] = components[name] } } } // fixed by xxxxxx renderjs if (renderjs) { if(typeof renderjs.beforeCreate === 'function'){ renderjs.beforeCreate = [renderjs.beforeCreate] } (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() { this[renderjs.__module] = this }); (options.mixins || (options.mixins = [])).push(renderjs) } // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /* 26 */ /*!**************************************************************!*\ !*** D:/code/private/Monitor-APP/components/y-box/y-box.vue ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./y-box.vue?vue&type=template&id=799f6118& */ 27);\n/* harmony import */ var _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./y-box.vue?vue&type=script&lang=js& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _y_box_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 _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"components/y-box/y-box.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0g7QUFDbEg7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQ3VMO0FBQ3ZMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSxnRkFBTTtBQUNSLEVBQUUseUZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03OTlmNjExOCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwiY29tcG9uZW50cy95LWJveC95LWJveC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n"); /***/ }), /* 27 */ /*!*********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*********************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=template&id=799f6118& */ 28); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_template_id_799f6118___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 28 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--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!D:/code/private/Monitor-APP/components/y-box/y-box.vue?vue&type=template&id=799f6118& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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", "box"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "box-border box-border1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "box-border box-border2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "box-border box-border3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "box-border box-border4"), attrs: { _i: 4 }, }), _c( "view", { staticClass: _vm._$s(5, "sc", "box-main"), attrs: { _i: 5 } }, [_vm._t("default", null, { _i: 6 })], 2 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 29 */ /*!***************************************************************************************!*\ !*** D:/code/private/Monitor-APP/components/y-box/y-box.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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./y-box.vue?vue&type=script&lang=js& */ 30);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_y_box_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWluQixDQUFnQiwrbkJBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4veS1ib3gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ktYm94LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///29\n"); /***/ }), /* 30 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/components/y-box/y-box.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n props: {\n title: {\n type: [String, Number],\n default: '标题'\n }\n },\n computed: {\n titleText: function titleText() {\n return this.title;\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy95LWJveC95LWJveC52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJ0aXRsZSIsInR5cGUiLCJkZWZhdWx0IiwiY29tcHV0ZWQiLCJ0aXRsZVRleHQiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFhQTtFQUNBQTtJQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQSxRQUVBO0VBQ0E7QUFFQTtBQUFBIiwiZmlsZSI6IjMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiYm94XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjFcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjRcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveC1tYWluXCI+XHJcblx0XHRcdDxzbG90Lz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHRpdGxlOiB7XHJcblx0XHRcdFx0dHlwZTogW1N0cmluZyxOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICfmoIfpopgnXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0dGl0bGVUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnRpdGxlIFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5ib3gge1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDAuMnZoKTtcclxuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gMC4ydmgpO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Ym9yZGVyOiAwLjF2aCBzb2xpZCByZ2JhKDIwLCA4MCwgMTM2LCAxKTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0LmJveC1tYWluIHtcclxuXHRcdHdpZHRoOiA5NiU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFjNGM0OyAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHRcdHdpZHRoOiAxLjV2aDtcclxuXHRcdGhlaWdodDogMS41dmg7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjIge1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3JkZXItcmlnaHQ6IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuYm94LWJvcmRlcjMge1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGJvcmRlci1ib3R0b206IDAuMXZoIHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItbGVmdDogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXI0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAwLjF2aCBzb2xpZCAjMzFjNGM0O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMC4xdmggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /*!*****************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 32);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 69);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_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 _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"fe947b98\",\n null,\n false,\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNNE9Ea3dMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVME5qY3lmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImZlOTQ3Yjk4XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWRhdGEtY2hhcnRzL3FpdW4tZGF0YS1jaGFydHMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 33); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 33 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 34) .default, qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 64) .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", "chartsview"), attrs: { id: _vm._$s(0, "a-id", "ChartBoxId" + _vm.cid), _i: 0 }, }, [ _vm._$s(1, "i", _vm.mixinDatacomLoading) ? _c( "view", [ _c("qiun-loading", { attrs: { loadingType: _vm.loadingType, _i: 2 }, }), ], 1 ) : _vm._e(), _vm._$s(3, "i", _vm.mixinDatacomErrorMessage && _vm.errorShow) ? _c( "view", { attrs: { _i: 3 }, on: { click: _vm.reloading } }, [ _c("qiun-error", { attrs: { errorMessage: _vm.errorMessage, _i: 4 }, }), ], 1 ) : _vm._e(), _vm._$s(5, "i", _vm.echarts) ? [ _c("view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(6, "v-show", _vm.showchart), expression: "_$s(6,'v-show',showchart)", }, ], wxsProps: { "change:resize": "echartsResize", "change:prop": "echartsOpts", }, style: _vm._$s(6, "s", { background: _vm.background }), attrs: { "data-directory": _vm._$s(6, "a-data-directory", _vm.directory), id: _vm._$s(6, "a-id", "EC" + _vm.cid), prop: _vm._$s(6, "change:echartsOpts", _vm.echartsOpts), resize: _vm._$s(6, "change:echartsResize", _vm.echartsResize), _i: 6, }, }), ] : [ _c( "view", { wxsProps: { "change:prop": "uchartsOpts" }, attrs: { id: _vm._$s(8, "a-id", "UC" + _vm.cid), prop: _vm._$s(8, "change:uchartsOpts", _vm.uchartsOpts), _i: 8, }, on: {}, }, [ _c("canvas", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(9, "v-show", _vm.showchart), expression: "_$s(9,'v-show',showchart)", }, ], style: _vm._$s(9, "s", { width: _vm.cWidth + "px", height: _vm.cHeight + "px", background: _vm.background, }), attrs: { id: _vm._$s(9, "a-id", _vm.cid), canvasId: _vm._$s(9, "a-canvasId", _vm.cid), "disable-scroll": _vm._$s( 9, "a-disable-scroll", _vm.disableScroll ), _i: 9, }, on: { error: _vm._error }, }), ] ), ], ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 34 */ /*!*********************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***! \*********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 35);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 37);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_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 _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /*!****************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 36); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 36 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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", [ _vm._$s(1, "i", _vm.loadingType == 1) ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(), _vm._$s(2, "i", _vm.loadingType == 2) ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(), _vm._$s(3, "i", _vm.loadingType == 3) ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(), _vm._$s(4, "i", _vm.loadingType == 4) ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(), _vm._$s(5, "i", _vm.loadingType == 5) ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e(), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 37 */ /*!**********************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 38);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdwQixDQUFnQixzb0JBQUcsRUFBQyIsImZpbGUiOiIzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1sb2FkaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///37\n"); /***/ }), /* 38 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 39));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 44));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 49));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 54));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 59));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n Loading1: _loading.default,\n Loading2: _loading2.default,\n Loading3: _loading3.default,\n Loading4: _loading4.default,\n Loading5: _loading5.default\n },\n name: 'qiun-loading',\n props: {\n loadingType: {\n type: Number,\n default: 2\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJMb2FkaW5nMSIsIkxvYWRpbmcyIiwiTG9hZGluZzMiLCJMb2FkaW5nNCIsIkxvYWRpbmc1IiwibmFtZSIsInByb3BzIiwibG9hZGluZ1R5cGUiLCJ0eXBlIiwiZGVmYXVsdCIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0VBQUE7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///38\n"); /***/ }), /* 39 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 40);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 42);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_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 _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4e769ee\",\n null,\n false,\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNGU3NjllZVwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL2xvYWRpbmcxLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ /*!************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 41); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 41 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading1"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 42 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 43);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRvQixDQUFnQixrb0JBQUcsRUFBQyIsImZpbGUiOiI0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///42\n"); /***/ }), /* 43 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading1',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///43\n"); /***/ }), /* 44 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 45);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 47);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_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 _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4cb3aec\",\n null,\n false,\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNGNiM2FlY1wiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL2xvYWRpbmcyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n"); /***/ }), /* 45 */ /*!************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 46); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 46 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading2"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 47 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 48);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRvQixDQUFnQixrb0JBQUcsRUFBQyIsImZpbGUiOiI0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///47\n"); /***/ }), /* 48 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading2',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n"); /***/ }), /* 49 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 50);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 52);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_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 _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4af0bea\",\n null,\n false,\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNGFmMGJlYVwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL2xvYWRpbmczLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n"); /***/ }), /* 50 */ /*!************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 51); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 51 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading3"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 52 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 53);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRvQixDQUFnQixrb0JBQUcsRUFBQyIsImZpbGUiOiI1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n"); /***/ }), /* 53 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading3',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///53\n"); /***/ }), /* 54 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 55);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 57);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_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 _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e492dce8\",\n null,\n false,\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNDkyZGNlOFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL2xvYWRpbmc0LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n"); /***/ }), /* 55 */ /*!************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 56); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 56 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading5"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 57 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 58);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRvQixDQUFnQixrb0JBQUcsRUFBQyIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///57\n"); /***/ }), /* 58 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading5',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///58\n"); /***/ }), /* 59 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 60);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 62);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_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 _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e476ade6\",\n null,\n false,\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNDc2YWRlNlwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL2xvYWRpbmc1LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n"); /***/ }), /* 60 */ /*!************************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 61); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 61 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading6"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 62 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 63);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRvQixDQUFnQixrb0JBQUcsRUFBQyIsImZpbGUiOiI2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n"); /***/ }), /* 63 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading6',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI2My5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzZcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc2JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNjb3BlZD1cInRydWVcIj5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sb2FkaW5nNiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmc2IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDEycHg7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nNiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUxIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUyIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTMgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlNCAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///63\n"); /***/ }), /* 64 */ /*!*****************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 65);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 67);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_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 _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MDdmMWY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n"); /***/ }), /* 65 */ /*!************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 66); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 66 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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", "chartsview"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "charts-error"), attrs: { _i: 1 }, }), _c( "view", { staticClass: _vm._$s(2, "sc", "charts-font"), attrs: { _i: 2 } }, [ _vm._v( _vm._$s( 2, "t0-0", _vm._s(_vm.errorMessage == null ? "请点击重试" : _vm.errorMessage) ) ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 67 */ /*!******************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 68);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThvQixDQUFnQixvb0JBQUcsRUFBQyIsImZpbGUiOiI2Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///67\n"); /***/ }), /* 68 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'qiun-error',\n props: {\n errorMessage: {\n type: String,\n default: null\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOlsibmFtZSIsInByb3BzIiwiZXJyb3JNZXNzYWdlIiwidHlwZSIsImRlZmF1bHQiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O2VBUUE7RUFDQUE7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI2OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWVycm9yXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtZm9udFwiPnt7ZXJyb3JNZXNzYWdlPT1udWxsPyfor7fngrnlh7vph43or5UnOmVycm9yTWVzc2FnZX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZXJyb3InLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5jaGFydHN2aWV3IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuY2hhcnRzLWZvbnR7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI0NDQ0NDQztcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cdC5jaGFydHMtZXJyb3J7XHJcblx0XHR3aWR0aDogMTI4cHg7XHJcblx0XHRoZWlnaHQ6IDEyOHB4O1xyXG5cdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FZQUFBRERQbUhMQUFBVXowbEVRVlI0WHUxZGUzQmMxWDMrem1wM2pZVldma1BBZ0NXd1k4ekxFZ2xOUUNTVzB5VDlvMlNRYURLZE51bFV5a3dmTStrMDlwK0ozSW1ZSVBKWGk5eVp6RFNaWml3eWFadVpCQ3duTkcxRE1vZ0VtVUFBeTd4cy9NQXlOaENNaldXdHNLMWRlVS9uMjNPdnRMdTZqM1B2M3QyOWQ3MW54ak9TZGU0NTUvNSszL205ejdrQ2pSWTRCUjdlSzdma2NtaHJhc0xUMzdoYlRBWStRWUFEaWdESGFnd0ZZR2hjN2dad0hNQVVnRzRoTVB6TmU4Um9XSW5UQUVDQW5IbDRyK3lSRXQwRFhXSWJoeDNjSjVmSFA4VFlqbnRGUjREVEJEcVVJd0JtTXJKREN0eVBIRG9RdzBROGprZVhpbkNMdEVDcDQzR3doNTZSMjJJeFRCYnUrS0Z4T1RiUUpibzlEbFcxN3JZQVNHZGxOeVNlS2wySkFEcGJrbUtpYWl0MG1XaG9YSFprbXpFNTJDa29jbXZhdnZPc2JNdmw4TWhBbCtqbFFyZzJDUXp1NkJJOU5WMll3K1QyQUppVm8rRHVMMmtTZUxRMUtmckM4a0xjWWJrWUJ2L3BiakVXaGpVTmpVdlNwazlLU0FpY20ydEdYeGpBYVVjYmV3QmtKQW02eGVMQnAxUEoyb3MwNnR0Y0RsOEgwQ0VFYUdudkdlZ1NnMkVBUVpUVzRCMEFFbnRTUzJvdjBtaGdKYzVqbXdUNklERVdpMkUwek5aMldFRmhDNENaakNSeEg3R3dBZnBia21Ja0xDOUVGUUJnMjBCWGVPeVNzTkJHWngyT1hrQjZWZzVDZ0FiTVpnRDdCVERTa2hURE9nTTMra1NEQXI3aUFOTno4bjRoUVJkeG9qVXU5a1RqVlJ1cnRLS0FKd0JJS1pmUFpQT3VZV0ZnWTZ3bGdWNGhhdStHTlZqc25RS2VBSkRPU0lwL1d0NmxiU0tlUUc4alNPU2RBYlYrd2lzQTdGeERTR0FxQm13TlM1RElpR0l1Y3lOd0tpR2VkdXRUejMvM0JnQ2I0SkJKb0dxRElKMlZXNFJFbXhSb2cwUzNsR2dUL05sZlkzUnpDZ0pqUW1KU0NreGVEdUR3QmdDYjhIQWh2UWtDSWRDYlNnUWZtU1BEbVdHRHpIc20xVXF3akJFVUFNYnFFUkNlQUVCR3oyUmtud1IydVcweUFaUWRMNkRSK1dFVzkwc3lYTG1qdFc4U28wSmc5TW9FOXRTRDRlc1pBTlVBQWQxTTVOQWpHT1VMYWFPa0F6Q0tHRWFqN0FyN0FvQkhFR3hyU1lxZE9ueE1aK1czWkE1OVplaHhuV2tDN3lNbEprVU1JeTF4N0l5YVZQQU5BQU1FSFRsZ1RBQ08xcllFUmxxVG90K0o4bmJwNThDNVZjRUJEZnRuT0VwQUtBc0FnWVBBUGdOWlFiWUZQM1FlQ0F5YkovQmcyQ1ZDMlFEd0NvSlVBdHVkaUpLdUV4Q1FMb1piUEtpckFvT0hvdnVJVGhWQnl1WGlpMmpFL0M5STJUYVhCWXNmbVRoeWFoTXRDV3kxQTRFUmJqN3J2dlJJOWFDYTNGN3BJTm0zbjVYZFhndGpGZ0hBWUNRclc0djhiQm82TVlGZXA1Y3dtRWVmdVN3UXBETlNSb3E5K29zZHJxUmFHQnFYTWhmRFZpOGdXQVNBZEVidXN3dXlHQ0tOU0xhdEJ5Z1hCSFVxQVFvaE1tSEVTQUtycXpTcm80VElTMnlPcTEwZFZRUUF1eUtRVW9DN0JYbkl4SFFXd3dMNGF5L3FJTS84REhhRkp1aWp2N005OVF6YU5tQXg2aHpRRnN2aEtTbXh2YWtKbzdvSFVvb0E0TVVBMHdIQlREWWZRblZVQjZiRm5MYzFKSHFpRmdQd3hQblN6aEtqTFVuMEIrVXBzRG9xRmtPZkx2TzVITjhBTU41bE9KVVUyKzJJTUQwbmUwUU90Q2NxMGs3T0FOZTFWR1RvYWc3cWFCUlhlaUZGQUpqT3lCRU5zVjIwSnFjZ2oyRlFIZ3Z5SldZdkFRZlBBSnV2QXY3MTk4QURtNERNSEpCS0FtdWFnNXlwZW1QcEdOaVZXazJwRGNDREREUUNQVFU3RU9nbWpyeE1SZ0E4ZGdCWW13Sk9Yd0J1V2dIODdtM2d6MjZPTGdEeTZxOUc5UlNMdklBeW1GWlVHc2FDakp6RTdxQjErdnZuZ1hSR1FlYkc1UUIvUDMwZWFGMmlRQkhsbGs4d3hkRGZHcS9lWVZMTFFKQmZFT1FOT3BrMy9CZzg2aGJBOGlBWnd0Mi9hNzhhc1g4enNLUkovZnpZUWVEdHRGSUhVYmNKcWkwSm5NNEZhT1g5ZzJTdzdsZ0hUZ1BUczBESFJ4VGpUNXdEdHF6VGZUcjgvYW9KQXJmVHdYMDU1UDE1MTlxNmFwR1Y0djgvWGxVNm56di92bzhDdnp3SzNMMFcyTFM2V3F1by9EelZBb0ZyTWlpdnl6VlN2cFVueWNJTVZBVVUvLy8ya2dJQzliK3BEcXE1amlyTVZYRVgwUlVBZk1rd2dvRHJNb0ZRQlViVWNvcXhWRkpzcmRRQ3RBQVFaaEJVaWpDaEdsZml3ZFNTeXB4ODFnYUFBUUxMQTZPaElsYU5GMk1HcXJpTW0xY0ZxSm9FdGxhaTBsb2JBSXpxWmJQWUY3UnJWMk4rQlQ3OUw5OWM4RWgrZHpJNDc0UkdZU3FCOXFEeUJ1YUxhd01nblpFOEV4amF1MjRDNTZUUEFaOCt2c0QwNTk0R1BySFc1MERXandWdUQyZ0J3RGdtL3ExQVg2Vk9CL3Y1WWVEV05lcmxYbnNmK01LR1lGL1VMUXZyZFRaWEFGUWlvZU4xa1ZIcVR4dUFnU28yeGlXQ2RrK0RWZ1d1QUVqUHl0MzFYcUFSSllBWmE5MlpTcXE3Q010dGpnQ29oMXI5Y2drVTF1ZUR1cTdQRVFEVHMvSlkwTm04c0JJMGd1c0t4Q0NNWkRJb2dzeXF6SklEaUEzWUFxQ3greXZEczRCSExWc0tCRm9QRVBETE5ZYlRvVUNaVXNBU0FGSFkvU2ZUQ3hXdHE1cUJLNHppRUIyYTFWbWZzcVRBSWdCVXVwTFhML0V2c2hqME5OQ2FCTTdOQXI4OXNURFNwNjRIT2ovaWQrVG9QMWVPUjdBWUFENHFnNnRCd3VmZUFSaGFiVjhCZlBKYUZXeFpFZ2VTTVdEVG1zdGFBcEQ4dnVNQ1JRQUk0N0dzMzd3RnJHNEdya3NCUjg4Mm1HMjEyVmhXM3JwRXRQdlppTDZPaHZtWnlPc3pGUG03RDZxcVgrNzZMNnhmR0lIL2w3bWtWTUdOS3k3NzNaOG5qSXloMTA4MWNmSEJrSkFFZmdxWnYya1Y4Q21qNEhQL0g0QURaMVJCcU5tWWJmdkV0VjdoVlgvOS9YN0hZUjRBWVVyNlBQbW1ZalNaLzdrYmxSVDQ3eU9LOFV5dThEeEE2eFhxSEFEVncyWHNBUlFodVNXQkZWN3JCZVlCb0hzeXVOSjc1ODJ6d0JOSGdOVkxnYis4VFRILzhZT3Evbys3ZmZQVkN3eW5wQWlDK1crY1VmT2Nud091dmxJZE80dGk4Nk1HNWdHUWRya0Z0Rm9FMmZVeWtKNEYrdTRBa25IZ3g2K3BuZi9aZHVDVzFRRDlmM29EUEEvQTV0Y0ZwQTN4OGluZ3hYY1Z1UEo2MURndDI3TVJ1S0cxV204YzZEeWV2WUU4QU1Kay9mL25xOEJOSzVWZU4xMC9rOG12bndaK1pSdzFwZmpuWWRDT3ExVlp1SmQyL0J6d3YwY1hHTDlocGRyMVBHTklnTVVGOE9lM0FxdVdlaGsxRkgwblVrblI2V1VsZVFDRU5lMzd2WmVVRk9pL0F5aFVEYlFML0p3RTVxNG5nSTRZTnhCeGw3TmlaNWtCb0NlUEFiOS9SNG1CcTY0RWVqY0dYOURoaFRsKytzWVRhUGR5YTdzQ2dQb3lTTTFMdnVqek04RHpkM2N1TU55MDhpa1plQnFZcW9FN25qdjF0MjhwM2MzZi8raGFwU0xzMmpzekFJMUx1bzQwSk1uNGo2NHM3djNQenltcFFOZVNnTHRuTGZEeGlIa1lYa3ZHRkFBMHIyWWpzZjNzUEYwa20vci9IKzlhRVA4UDhPUlBFaGg1ZWNFcklQTnBHTEp4RjcvM29XTGNmZXNWODByYm9RK1V5RGY3ZjNIVFl1UHgrWGVBWDAwQ3Q2OEJQbjBEOE84VGFzeXZiZ1pha3JwdkVJcCtudXlBUEFDbU0vS3NXN2szYitONC9BQkE1bFNxOGNJSDAvbzM5ZjlmM0tvWVFZYWIwdURuUjRCalo0R3YzTFlBZ0IrOXFpUUIreGUyWDArcTRrdzIyaEw4Vjlyb1RYejNCVFhQMXo2bVZBSnpEZnhIcVVJRE5FTE4wMmY5aEk3L1Q2djd6U2tsYm1sOE1mRkNYenpvUnAxUHY1N24vV2o1TS9SckpubjIvUUc0cmxWSklQTTQrRGZ2V1ZqQjkvWXBGZkZKSXpCRVp2N2lNSEFpclVUKzU5cUJPMnpjdTd6dWYxZnRmck9LdHhBVVZFbEJGM2NHVFR0elBCYU50aWFGaFJ5MG5sSG9HSURjL2ErZlVsZXowRHEvWlkyNmtpWG9Sb0NSMEc1V3ZSa29NbmYwL3h3Rlhud1BpQUZJTmdFM0xBT21Md0tualBFb0tlamZXN1hqMCtxME1lZjkyc2VMVlFOTHZGOTVIL2lUbTRDTkpmWkMwTzhlNUhoZUFrSkNOd0JrSHN2Kyt6dURYS3Evc1NnZC91dTF4ZjQ3Z2ZuV09SNW1WZU5lMVF4OGFkT0NsVzhsK244d29RekRMOTY4MkNpazdmRFRnOEQxS2FEM1puOXJyZFJUbEhBMG1tbXZMSkpPSG9wRVJGZzhBSytFSWdpb21vNmRBeTdPS2RYd054M0FpUm5nUnk4RE9RbDBYZ044WnAxOXRKRE1KWk1MUlgvcE9oN2Vxd2hNTlJDbVp0cGtWcmVpZVBFRUNBRExqMFNINldXZDFrSWdQUDZHMnNWdHk0QXYzNnBFLys0M2dETVgxSzYrYjhOaUVKaEdIcVhFVjI2M0J3bTlBWTczMVE2Z0pWRjdxbkRuVDd5bmJDUzZ6RHg4UXBYSmdOaThKUEJ3bWxqb3VvQzFmM1g3RmRESEgzMERtTXNCRzFZb3NVK20wVmc4ZXhHNHBrVjVCMmJlZ0NGZzVodElNQ2Y3Z0RPYWRzQ1hiZ0d1c2JFanFra2JNcCtpdjdRUjVQT0crZVVHQURML3JXbWdTUUJ6RXVpNEN2alQ5Y0JVQm5qaWtQcWJDWUp6RjRFZkdCZE5NVzVnNXhtWUJLWTNjT2dNc0dFVmNDbFhUVlk3eitXa0FyeFVDSWtvRklBNmtlTFh4NERYVGl1RGIydWJpaGRrY3NDbkRaK2ZEUHpaSVJYK3BZdkpSQlBGNkdmYlZQUlF0MTI0RkU0QVVMSlpCT2UwWXdGVUFaRzltdjJGZDRHOUo0dGRPRWIwZm5OQ1ZReHR1UUhvdWc0Z0NINXlBRGd4cmRqdFpQUlplUXF2bkZJU2dFbWlNRFY2WmpidWVQMERnQm05UFllczlUaXpocjg0bXI5OE9sOVF3cHM2Nk9zelpPeUYrV1MyR1NRS2l3MmdDY0Q2QmtCTUFCVDlETkxZNlhGS2dpY25WV0NJdVFSNkJNd2IwT2p6MGhoaXBnM3g1ZHNpbFI2dWJ3QTB4d0dDZ0R2YUxzSkhKdFBQUC95Qkt2UWc4NjJTUUc1Z1lCeUFyWkk1RUxjMStQaTdQZ0NtTTVKZnVBck5SWkJ1TDB1R01rZGc1ZHNYUGt0d2NQZlM0UE1xOXMxeHpEQXhTOUtabFl4UTB3ZEFsT0lBRk9QVTVXeG0xczZLS2ZUenFidkxZVDdITldNQU5DWlppeGloVnA4QVlIU1BscnhkV3BjTU1pTjgvUG11YTFRVzBFK0xhamJRZU5mNkE0QloxTUd3NXo5OGJERkx5YkFuRHF2WVBwdE9rTWNKR0JHdUIrQnJhUmVGUkNZVS9PUFhnVk1mV2pPVytwNEduMW51NVJiZWRaTUlIT2U3TDZwZXZKYStFcWx2dHpXVTlYZFBvZUNRMUFNNnZiQ3ArMHQzUDNjOTZ3Slp6TUhHNmw0V2RKUjdWdUNSNTRFTGM2cTR4RXUwc0N5bUJmaXdwMnlnYmoxQWdPdnpQQlFqY1U4ZEw5YnBOUFFvcHMxZFQ3c2dDR1l4U2NTeEdVUmEyK3J1YlhoK21Xbzg0S2tlSUN1N0ljRmJRRVBiNlBxeDZtZHBYQlY5SHZsZ29SaWt0TFM3bkpjdzlYNGlwdUlNOUNKV1hxSFN4VkZxWGtyRFJaZ09oZGdST1pzRHZ2OFNjTW5NV2dpVjl1V09YeGZBQ1I2cUVycDhCSnBWWTdLRjJVVzNVclV3Z0VRQzUxcVRRcnRpVTFVRno4cEpJUkRxajY3TXpBR1B2YTVFUHNPN3pQa0h3WHlPOThOWDFJZW9tRTRteUZnblFIQXh5c2lRTWtQQkxJWmxzV29FbXJZTHlIZnhkQzZnMWkvUHhmSmtEOU8vYk9XSWYvT2FHZXA3TnVyOGVFd0JvTkNGcEhRdzZ3Yi85czd5RGN3cTBGRGJCVndBUUFROGdVTENVVlNQbjF5NEo0QmxYK3VXcWZJdjg1aVhGYUhONGc3dWFKNElOcjg0d3RMenJBUmVlRnM5OVZlM0Z4OE8vWmZuVmQzaFhkZXFieE9GdVhueEFPWUJFTmFMb1p3SVRXbkEzY3Q2QVBOMEwvdFRiRk9FWHhGWFAzT25UMTFVSTVIeGhZMkhQbmpZaENxRnBlWTgrOEJXR0duazg5L2ZCOUFPWVdQUkNYTUxZVzFlRE1CNUFQQ0hxQmFHRUFpc0RXQ0krUERaNHR0RFNwbEVZS3hmb2R5Nzl1VUtLT2FwSTU1SjRHbGcyZ0lzSnFGNklZQUlNdlpoLzJNR1FHNWJBM3ltTFhnSTBJQVRBajNtbDBHOFZteExpZU90UzRTbmxZWHVmb0J5eWRvVVV3ZEhlVWhrZGs2ZExxYnp3Q05uZE84S0c1bk84REdaYmxZSHMyYndKd2VMZ1dRR21GZ2J5RGdCRzA4T1h4K0FCMUswSUF2LzNjdEhQUDFjRXhPNkcwTEtCWUR1ODJRK3E0YTUyeW5TV1RsVUdFRmtLcGh0K1pKaXU0TC9UOC9nOCsxQWM2SlkvZWpPYmRjdmxSU1dSV2M4dlNVbFJ0M1M5bVhkRUtKelJyRGNGd3pMODZ5blo3cVl6Vyt0QUEzS254NVFoYWEwR2NvdHJIUTcwNmYxNlQ2SjBaWWsrcjNjRTFTRXVIUkdUZ0RZSEJaR1ZXSWRoY3ozV2hsY3VKN0NkREdEVW4vY3JvekpjcHJiRHRZQ0FlRHBZNVBGQUlpWU8raVYyTnoxNXVkY3lrMFhjKzdDcWlQZUtQTEF4dkpBb1BPNVdPT3I3S011Z1R0dEVCUUJvSjdWUUNIekdTOXdxaVgwQWl5Q3dLeEJxQllJalBBOXY5THVKSzBuNGduMHVsMFhFNW03Z3Iwd3BiU3ZlWXFtbkRGMG53M3FXaG0zZ0k0T0NIUWt5aUlBNk53WG9FdU1zUFNqSDgvSVgyYXVzaXVpSWNqYXdYSnRBWE9WZ1lCQVlqS1ZSS2VkWVdqM3ZZRFFKNGNxeThyd2pPNEdBcTUwMnVXR2R5ZmpzdkhGa1BEdzJuNGxBb09waEhqUWFhbE9JSEFDa1NVQXFGL1NXVXk2QlI2aVFMdDZXYU1FUmxxVG90OHJDQmhlVGlUUVlXY00yaDUzOUJLQ3JCY2loLzA5ZEVCQXZ1V0FZVzVlTWg4eDlKblh5QnU1aFMzNTl4UVlhNGxqcCtONTF5Z1Vpb1NkYVVHdmp5QklKYkRkTGRwSEtWN1l4eXF4eE55Qkl3RHEwU01JbWlFMUdrODcwR091eitvRUdOMUUxeFB2VVRvNlZpTm0xR3BhVHlDd0MvTzdBb0NoUnduc3E5VmJOdVoxcElBMkNDeTlCSWs5cmdEZzlPbU1IQWJ3OVFZelFra0JMUkFZa2NOUkFNb0lCUFlMb0U4TEFBWUk2ajVUR0VyMjZpM0tVeUZvNFpEYUFOQk1SZW90dDlFclVBcTQxUkk0VGFZTkFBNFNoV05rZ1ZJMlFvUFpWUk81dllJdEFJYkdaWWNRV0paWml2MkRuY0lvaDh4L1hDTFNONHU2RVNTcWZ3OFVBRVBqZWFPdmoxK2tCTEN1cVFtZDM3aGI4R2Z6KzBKdXVlaW8wakdTNi9aVERHcSs2Q0lKTUxoUExrK2N4OWxZRE8xaytrUFB5QkVoTURuUUpRYk5oMWc0a3MxaW9wRXJxRGhlOXNjVDZKbkxZQmdDOTF2TjVoYnJkMXZoSWdCODUxblpsc3ZoV0xZWkt5ajZEV21BZ1M2eHJYQ3dobEhvUnRyeS9zNGEvMVFTSFdZNGw2RmNLYkN0Y05PeFQweWdweVVwNktINWFwWTJnTEhydDFBRkNJSE9XQXdkcGdvb25LVVJLdlpGYzllSHVLdGpRSGNwWS9NbGUzTm9Rdzdkc2drVGZyNFZYRHE1clJINDhGN1prOHVocmFrSm8xYk1Od2RxWkExZCtlbXBneDN6UFEzaW9iTW5OOUJ1M0FZSVBGRGNvV3UxbWMrbEJBSUFEc1FEcHNoaHBHRVkrZ05ETFpnZkNBRG9OU1F2cVBMa1RTdXhmdU5xN0l3SmhPRFRDdjRZVVl1bnNqa2MzZjgrQm83TTR2OEtZeTVjaXhtUEtWeFhhV3ltbkRXWExRR0d4aVZqQW1hQ29aeTFYUGJQU29uOU8rNFZIU1loYUlkSmlkMmxoSkVTVXp2dTFmODBuQk5oeXdZQTNjWTVvT2hJOHVxbGFMaytoZldYUFVjMUNIQWlqU09uTDJDR1hlUEFaS0hCemQwUGdFRzUwalpSNnBaclRHWFpwV3dBK0oyNDhWdzRLTkFBUURqNFVMTlZCQTZBYno4cnU4VWw5U1Z5SVRDVmJVWS9EUnNqeEx4TFNtaGRZU1lFSGgzb0VpTWNoMnJtMGlYc3NxSFN4STU3eGZaS1UvQ2haK1FqQU9iMWM2WG5NK2czVDROS3pSYzRBSWJHWlI4VFNlYUNZekgwVWE4WkllWThRelhiU0JFQWN2bFNaeXZ3QktZUG5kYjEwTGprQlExYTROVjhQNTF1OHpUUTZleW5UK0FBOExPSXhqTzFvMEFEQUxXamZTaG1qaHdBQ2dOUG9hQ2dzbldPTytWTHdySk9xM1ZFRGdDR0xyYk1qZGVLMEVFR1pxcjlEcEVEZ0ZYZ3FkcEVLNTB2bHNQVVFKZi9uSHd0MS8vLzg5YnFEakNQV1BBQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///68\n"); /***/ }), /* 69 */ /*!******************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 70);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9wQixDQUFnQiwwb0JBQUcsRUFBQyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n"); /***/ }), /* 70 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 94));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 95));\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 96));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction deepCloneAssign() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var i in args) {\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n origin[key] = args[i][key] && (0, _typeof2.default)(args[i][key]) === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];\n }\n }\n }\n return origin;\n}\nfunction formatterAssign(args, formatter) {\n for (var key in args) {\n if (args.hasOwnProperty(key) && args[key] !== null && (0, _typeof2.default)(args[key]) === 'object') {\n formatterAssign(args[key], formatter);\n } else if (key === 'format' && typeof args[key] === 'string') {\n args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;\n }\n }\n return args;\n}\n\n// 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {\n var seperator = \"-\";\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var strDate = date.getDate();\n if (month >= 1 && month <= 9) {\n month = \"0\" + month;\n }\n if (strDate >= 0 && strDate <= 9) {\n strDate = \"0\" + strDate;\n }\n var currentdate = year + seperator + month + seperator + strDate;\n return currentdate;\n}\nvar lastMoveTime = null;\n/**\r\n * 防抖\r\n *\r\n * @param { Function } fn 要执行的方法\r\n * @param { Number } wait 防抖多少毫秒\r\n *\r\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\r\n * move(){ // 错误调用方式\r\n * debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)});\r\n * 应该直接使用:// 正确调用方式\r\n * move: debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)\r\n */\nfunction debounce(fn, wait) {\n var timer = false;\n return function () {\n var _arguments = arguments,\n _this = this;\n clearTimeout(timer);\n timer && clearTimeout(timer);\n timer = setTimeout(function () {\n timer = false;\n fn.apply(_this, _arguments); // 把参数传进去\n }, wait);\n };\n}\nvar _default2 = {\n name: 'qiun-data-charts',\n mixins: [uniCloud.mixinDatacom],\n props: {\n type: {\n type: String,\n default: null\n },\n canvasId: {\n type: String,\n default: 'uchartsid'\n },\n canvas2d: {\n type: Boolean,\n default: false\n },\n background: {\n type: String,\n default: 'rgba(0,0,0,0)'\n },\n animation: {\n type: Boolean,\n default: true\n },\n chartData: {\n type: Object,\n default: function _default() {\n return {\n categories: [],\n series: []\n };\n }\n },\n opts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n eopts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n loadingType: {\n type: Number,\n default: 2\n },\n errorShow: {\n type: Boolean,\n default: true\n },\n errorReload: {\n type: Boolean,\n default: true\n },\n errorMessage: {\n type: String,\n default: null\n },\n inScrollView: {\n type: Boolean,\n default: false\n },\n reshow: {\n type: Boolean,\n default: false\n },\n reload: {\n type: Boolean,\n default: false\n },\n disableScroll: {\n type: Boolean,\n default: false\n },\n optsWatch: {\n type: Boolean,\n default: true\n },\n onzoom: {\n type: Boolean,\n default: false\n },\n ontap: {\n type: Boolean,\n default: true\n },\n ontouch: {\n type: Boolean,\n default: false\n },\n onmouse: {\n type: Boolean,\n default: true\n },\n onmovetip: {\n type: Boolean,\n default: false\n },\n echartsH5: {\n type: Boolean,\n default: false\n },\n echartsApp: {\n type: Boolean,\n default: false\n },\n tooltipShow: {\n type: Boolean,\n default: true\n },\n tooltipFormat: {\n type: String,\n default: undefined\n },\n tooltipCustom: {\n type: Object,\n default: undefined\n },\n startDate: {\n type: String,\n default: undefined\n },\n endDate: {\n type: String,\n default: undefined\n },\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n pageScrollTop: {\n type: Number,\n default: 0\n },\n directory: {\n type: String,\n default: '/'\n },\n tapLegend: {\n type: Boolean,\n default: true\n },\n menus: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 375,\n cHeight: 250,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false\n },\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null\n };\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {\n var _this2 = this;\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n uni.offWindowResize(function () {});\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true\n },\n optsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n eoptsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n reshow: function reshow(val, oldval) {\n var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({\n name: 'error',\n params: {\n type: \"error\",\n errorShow: this.errorShow,\n msg: val,\n id: this.cid\n }\n });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:611\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n }\n },\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n }\n },\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if ((0, _typeof2.default)(this.chartData) === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = {\n categories: [],\n series: []\n };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({\n name: item.group,\n data: []\n });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{\n name: '默认分组',\n data: []\n }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({\n \"name\": resdata[_i3].text,\n \"value\": resdata[_i3].value\n });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {\n var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {\n var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + this.cid).boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).exec();\n },\n getCloudData: function getCloudData() {\n var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if ((0, _typeof2.default)(ctx) === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {\n var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + cid).boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.select('#' + cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000\n });\n }\n });\n }\n }, this);\n },\n getImage: function getImage() {\n var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: res.tempFilePath\n }\n });\n }\n }, this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.select('#' + this.cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: canvas.toDataURL('image/png')\n }\n });\n }\n });\n }\n },\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 71)[\"default\"], __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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOlsiYXJncyIsIm9yaWdpbiIsImZvcm1hdHRlckFzc2lnbiIsIm1vbnRoIiwic3RyRGF0ZSIsImNsZWFyVGltZW91dCIsInRpbWVyIiwiZm4iLCJuYW1lIiwibWl4aW5zIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNhbnZhc0lkIiwiY2FudmFzMmQiLCJiYWNrZ3JvdW5kIiwiYW5pbWF0aW9uIiwiY2hhcnREYXRhIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsIm9wdHMiLCJlb3B0cyIsImxvYWRpbmdUeXBlIiwiZXJyb3JTaG93IiwiZXJyb3JSZWxvYWQiLCJlcnJvck1lc3NhZ2UiLCJpblNjcm9sbFZpZXciLCJyZXNob3ciLCJyZWxvYWQiLCJkaXNhYmxlU2Nyb2xsIiwib3B0c1dhdGNoIiwib256b29tIiwib250YXAiLCJvbnRvdWNoIiwib25tb3VzZSIsIm9ubW92ZXRpcCIsImVjaGFydHNINSIsImVjaGFydHNBcHAiLCJ0b29sdGlwU2hvdyIsInRvb2x0aXBGb3JtYXQiLCJ0b29sdGlwQ3VzdG9tIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInRleHRFbnVtIiwiZ3JvdXBFbnVtIiwicGFnZVNjcm9sbFRvcCIsImRpcmVjdG9yeSIsInRhcExlZ2VuZCIsIm1lbnVzIiwiZGF0YSIsImNpZCIsImluV3giLCJpbkFsaSIsImluVHQiLCJpbkJkIiwiaW5INSIsImluQXBwIiwiaW5XaW4iLCJ0eXBlMmQiLCJkaXNTY3JvbGwiLCJvcGVubW91c2UiLCJwaXhlbCIsImNXaWR0aCIsImNIZWlnaHQiLCJzaG93Y2hhcnQiLCJlY2hhcnRzIiwiZWNoYXJ0c1Jlc2l6ZSIsInN0YXRlIiwidWNoYXJ0c09wdHMiLCJlY2hhcnRzT3B0cyIsImRyYXdEYXRhIiwibGFzdERyYXdUaW1lIiwiY3JlYXRlZCIsImlkIiwibW91bnRlZCIsImRlc3Ryb3llZCIsInVuaSIsIndhdGNoIiwiY2hhcnREYXRhUHJvcHMiLCJoYW5kbGVyIiwiaW1tZWRpYXRlIiwiZGVlcCIsImxvY2FsZGF0YSIsIm9wdHNQcm9wcyIsImVvcHRzUHJvcHMiLCJzZXRUaW1lb3V0IiwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlIiwicGFyYW1zIiwibXNnIiwiY29tcHV0ZWQiLCJtZXRob2RzIiwiYmVmb3JlSW5pdCIsImxvY2FsZGF0YUluaXQiLCJyZXNkYXRhIiwibmVlZENhdGVnb3JpZXMiLCJ0bXBjYXRlZ29yaWVzIiwiaWRhdGUiLCJ0ZW1wY2tleSIsInRtcERhdGEiLCJ0bXBzZXJpZXMiLCJ0ZW1wc2tleSIsInNlcmllc2RhdGEiLCJyZWxvYWRpbmciLCJjaGVja0RhdGEiLCJjZmUiLCJjZnUiLCJyZXNpemVIYW5kbGVyIiwiY3JlYXRlU2VsZWN0b3JRdWVyeSIsImluIiwic2VsZWN0IiwiYm91bmRpbmdDbGllbnRSZWN0IiwiZXhlYyIsImdldENsb3VkRGF0YSIsInRoZW4iLCJjYXRjaCIsIm9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UiLCJfY2xlYXJDaGFydCIsImN0eCIsImluaXQiLCJxdWVyeSIsImZpZWxkcyIsIm5vZGUiLCJzaXplIiwiY2FudmFzIiwic2F2ZUltYWdlIiwic3VjY2VzcyIsImZpbGVQYXRoIiwidGl0bGUiLCJkdXJhdGlvbiIsImdldEltYWdlIiwiYmFzZTY0IiwiX2Vycm9yIiwiZW1pdE1zZyIsImdldFJlbmRlclR5cGUiLCJ0b0pTT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBOEpBO0FBQ0E7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7RUFBQTtFQUFBO0lBQUFBO0VBQUE7RUFDQTtJQUNBO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtJQUNBO01BQ0FDO0lBQ0E7TUFDQUY7SUFDQTtFQUNBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtJQUNBRztFQUNBO0VBQ0E7SUFDQUM7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7SUFBQTtNQUFBO0lBQ0FDO0lBQ0FDO0lBQ0FBO01BQ0FBO01BQ0FDO0lBQ0E7RUFDQTtBQUNBO0FBQUEsZ0JBRUE7RUFDQUM7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUE7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO1FBQ0E7VUFDQU07VUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQVQ7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVM7TUFDQVY7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVU7TUFDQVg7TUFDQUM7SUFDQTtJQUNBVztNQUNBWjtNQUNBQztJQUNBO0lBQ0FZO01BQ0FiO01BQ0FDO0lBQ0E7SUFDQWE7TUFDQWQ7TUFDQUM7SUFDQTtJQUNBYztNQUNBZjtNQUNBQztJQUNBO0lBQ0FlO01BQ0FoQjtNQUNBQztJQUNBO0lBQ0FnQjtNQUNBakI7TUFDQUM7SUFDQTtJQUNBaUI7TUFDQWxCO01BQ0FDO0lBQ0E7SUFDQWtCO01BQ0FuQjtNQUNBQztJQUNBO0lBQ0FtQjtNQUNBcEI7TUFDQUM7SUFDQTtJQUNBb0I7TUFDQXJCO01BQ0FDO0lBQ0E7SUFDQXFCO01BQ0F0QjtNQUNBQztJQUNBO0lBQ0FzQjtNQUNBdkI7TUFDQUM7SUFDQTtJQUNBdUI7TUFDQXhCO01BQ0FDO0lBQ0E7SUFDQXdCO01BQ0F6QjtNQUNBQztJQUNBO0lBQ0F5QjtNQUNBMUI7TUFDQUM7SUFDQTtJQUNBMEI7TUFDQTNCO01BQ0FDO0lBQ0E7SUFDQTJCO01BQ0E1QjtNQUNBQztJQUNBO0lBQ0E0QjtNQUNBN0I7TUFDQUM7SUFDQTtJQUNBNkI7TUFDQTlCO01BQ0FDO0lBQ0E7SUFDQThCO01BQ0EvQjtNQUNBQztJQUNBO0lBQ0ErQjtNQUNBaEM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQWdDO01BQ0FqQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBaUM7TUFDQWxDO01BQ0FDO0lBQ0E7SUFDQWtDO01BQ0FuQztNQUNBQztJQUNBO0lBQ0FtQztNQUNBcEM7TUFDQUM7SUFDQTtJQUNBb0M7TUFDQXJDO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQXFDO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO01BQ0E7SUFDQTs7SUFVQTs7SUFFQTtJQWVBO0VBQ0E7RUFDQUM7SUFBQTtJQUVBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFnQkE7TUFDQTtJQUNBO0VBcUJBO0VBQ0FDO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7RUFFQTtFQUNBQztJQUNBQztNQUNBQztRQUNBO1VBQ0E7WUFDQTtZQUNBO2NBQ0E7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FDO01BQ0FIO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FFO01BQ0FKO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FHO01BQ0FMO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBdEQ7TUFBQTtNQUNBO1FBQ0EwRDtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBekQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTBEO01BQ0E7UUFDQTtVQUFBOUU7VUFBQStFO1lBQUE1RTtZQUFBWTtZQUFBaUU7WUFBQWY7VUFBQTtRQUFBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBaEQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FnRTtJQUNBTjtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FOO01BQ0E7SUFDQTtFQUNBO0VBQ0FZO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1VBQ0E7WUFDQTtjQUNBQztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQUE7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTNFO1FBQUFDO01BQUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBMkU7TUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FBO2NBQ0FDO2NBQ0FB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QUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FYLE1BQ0FWLHVCQUNBVztVQUFBQztVQUFBQztRQUFBLEdBQ0FYO1VBQ0E7WUFDQTtZQUNBO2NBQUF2RztjQUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBb0tBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsNEIiLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tIFxyXG4gKiBxaXVuLWRhdGEtY2hhcnRzIOeni+S6kemrmOaAp+iDvei3qOWFqOerr+WbvuihqOe7hOS7tlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgUUlVTsKuIOeni+S6kSBodHRwczovL3d3dy51Y2hhcnRzLmNuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkICggaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIClcclxuICog5aSN5Yi25L2/55So6K+35L+d55WZ5pys5q615rOo6YeK77yM5oSf6LCi5pSv5oyB5byA5rqQ77yBXHJcbiAqIOS4uuaWueS+v+abtOWkmuW8gOWPkeiAheS9v+eUqO+8jOWmguacieabtOWlveeahOW7uuiuruivt+aPkOS6pOeggeS6kSBQdWxsIFJlcXVlc3RzIO+8gVxyXG4gKlxyXG4gKiB1Q2hhcnRzwq7lrpjmlrnnvZHnq5lcclxuICogaHR0cHM6Ly93d3cudUNoYXJ0cy5jblxyXG4gKiBcclxuICog5byA5rqQ5Zyw5Z2AOlxyXG4gKiBodHRwczovL2dpdGVlLmNvbS91Q2hhcnRzL3VDaGFydHNcclxuICogXHJcbiAqIHVuaS1hcHDmj5Lku7bluILlnLrlnLDlnYDvvJpcclxuICogaHR0cDovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yNzFcclxuICogXHJcbiAtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDx2aWV3IGNsYXNzPVwiY2hhcnRzdmlld1wiIDppZD1cIidDaGFydEJveElkJytjaWRcIj5cclxuICAgIDx2aWV3IHYtaWY9XCJtaXhpbkRhdGFjb21Mb2FkaW5nXCI+XHJcbiAgICAgIDwhLS0g6Ieq5a6a5LmJ5Yqg6L2954q25oCB77yM6K+35pS56L+Z6YeMIC0tPlxyXG4gICAgICA8cWl1bi1sb2FkaW5nIDpsb2FkaW5nVHlwZT1cImxvYWRpbmdUeXBlXCIgLz5cclxuICAgIDwvdmlldz5cclxuICAgIDx2aWV3IHYtaWY9XCJtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgJiYgZXJyb3JTaG93XCIgQHRhcD1cInJlbG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5iemUmeivr+aPkOekuu+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tZXJyb3IgOmVycm9yTWVzc2FnZT1cImVycm9yTWVzc2FnZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8IS0tIEFQUOWSjEg16YeH55SocmVuZGVyanPmuLLmn5Plm77ooaggLS0+XHJcbiAgICA8IS0tICNpZmRlZiBBUFAtVlVFIHx8IEg1IC0tPlxyXG4gICAgPGJsb2NrIHYtaWY9XCJlY2hhcnRzXCI+XHJcbiAgICAgIDx2aWV3XHJcbiAgICAgICAgOnN0eWxlPVwieyBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgOmRhdGEtZGlyZWN0b3J5PVwiZGlyZWN0b3J5XCJcclxuICAgICAgICA6aWQ9XCInRUMnK2NpZFwiIFxyXG4gICAgICAgIDpwcm9wPVwiZWNoYXJ0c09wdHNcIiBcclxuICAgICAgICA6Y2hhbmdlOnByb3A9XCJyZGNoYXJ0cy5lY2luaXRcIiBcclxuICAgICAgICA6cmVzaXplPVwiZWNoYXJ0c1Jlc2l6ZVwiXHJcbiAgICAgICAgOmNoYW5nZTpyZXNpemU9XCJyZGNoYXJ0cy5lY3Jlc2l6ZVwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8YmxvY2sgdi1lbHNlPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIHYtb246dGFwPVwicmRjaGFydHMudGFwXCJcclxuICAgICAgICB2LW9uOm1vdXNlbW92ZT1cInJkY2hhcnRzLm1vdXNlTW92ZVwiXHJcbiAgICAgICAgdi1vbjptb3VzZWRvd249XCJyZGNoYXJ0cy5tb3VzZURvd25cIlxyXG4gICAgICAgIHYtb246bW91c2V1cD1cInJkY2hhcnRzLm1vdXNlVXBcIlxyXG4gICAgICAgIHYtb246dG91Y2hzdGFydD1cInJkY2hhcnRzLnRvdWNoU3RhcnRcIlxyXG4gICAgICAgIHYtb246dG91Y2htb3ZlPVwicmRjaGFydHMudG91Y2hNb3ZlXCJcclxuICAgICAgICB2LW9uOnRvdWNoZW5kPVwicmRjaGFydHMudG91Y2hFbmRcIlxyXG4gICAgICAgIDppZD1cIidVQycrY2lkXCJcclxuICAgICAgICA6cHJvcD1cInVjaGFydHNPcHRzXCJcclxuICAgICAgICA6Y2hhbmdlOnByb3A9XCJyZGNoYXJ0cy51Y2luaXRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzYWJsZVNjcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPCEtLSAjZW5kaWYgLS0+XHJcbiAgICA8IS0tIOaUr+S7mOWuneWwj+eoi+W6jyAtLT5cclxuICAgIDwhLS0gI2lmZGVmIE1QLUFMSVBBWSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwib250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEB0b3VjaHN0YXJ0PVwiX3RvdWNoU3RhcnRcIlxyXG4gICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICBAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8YmxvY2sgdi1pZj1cIiFvbnRvdWNoXCI+XHJcbiAgICAgIDxjYW52YXNcclxuICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgOndpZHRoPVwiY1dpZHRoICogcGl4ZWxcIlxyXG4gICAgICAgIDpoZWlnaHQ9XCJjSGVpZ2h0ICogcGl4ZWxcIlxyXG4gICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICBAdGFwPVwiX3RhcFwiXHJcbiAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICB2LXNob3c9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDlhbbku5blsI/nqIvluo/pgJrov4d2dWXmuLLmn5Plm77ooaggLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC0zNjAgfHwgTVAtQkFJRFUgfHwgTVAtUVEgfHwgTVAtVE9VVElBTyB8fCBNUC1XRUlYSU4gfHwgTVAtS1VBSVNIT1UgfHwgTVAtTEFSSyB8fCBNUC1KRCAtLT5cclxuICAgIDxibG9jayB2LWlmPVwidHlwZTJkXCI+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICB0eXBlPVwiMmRcIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICAgIEB0b3VjaHN0YXJ0PVwiX3RvdWNoU3RhcnRcIlxyXG4gICAgICAgICAgQHRvdWNobW92ZT1cIl90b3VjaE1vdmVcIlxyXG4gICAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgICAgPHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICB0eXBlPVwiMmRcIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8YmxvY2sgdi1pZj1cIiF0eXBlMmRcIj5cclxuICAgICAgPHZpZXcgdi1pZj1cIm9udG91Y2hcIiBAdGFwPVwiX3RhcFwiPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIEB0b3VjaHN0YXJ0PVwiX3RvdWNoU3RhcnRcIlxyXG4gICAgICAgICAgQHRvdWNobW92ZT1cIl90b3VjaE1vdmVcIlxyXG4gICAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1pZj1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgICA8dmlldyB2LWlmPVwiIW9udG91Y2hcIiA+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgICB2LWlmPVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPCEtLSAjZW5kaWYgLS0+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHVDaGFydHMgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL3UtY2hhcnRzLmpzJztcclxuaW1wb3J0IGNmdSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMnO1xyXG4vLyAjaWZkZWYgQVBQLVZVRSB8fCBINVxyXG5pbXBvcnQgY2ZlIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctZWNoYXJ0cy5qcyc7XHJcbi8vICNlbmRpZlxyXG5cclxuZnVuY3Rpb24gZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyBkZWVwQ2xvbmVBc3NpZ24oQXJyYXkuaXNBcnJheShhcmdzW2ldW2tleV0pID8gW10gOiB7fSwgb3JpZ2luW2tleV0sIGFyZ3NbaV1ba2V5XSkgOiBhcmdzW2ldW2tleV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG9yaWdpbjtcclxufVxyXG5cclxuZnVuY3Rpb24gZm9ybWF0dGVyQXNzaWduKGFyZ3MsZm9ybWF0dGVyKSB7XHJcbiAgZm9yIChsZXQga2V5IGluIGFyZ3MpIHtcclxuICAgIGlmKGFyZ3MuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpe1xyXG4gICAgICBmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLGZvcm1hdHRlcilcclxuICAgIH1lbHNlIGlmKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICBhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBhcmdzO1xyXG59XHJcblxyXG4vLyDml7bpl7TovazmjaLlh73mlbDvvIzkuLrkuobljLnphY11bmlDbGluZXREQuivu+WPluWHuueahOaXtumXtOS4jmNhdGVnb3JpZXPkuI3lkIxcclxuZnVuY3Rpb24gZ2V0Rm9ybWF0RGF0ZShkYXRlKSB7XHJcblx0dmFyIHNlcGVyYXRvciA9IFwiLVwiO1xyXG5cdHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cdHZhciBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcblx0dmFyIHN0ckRhdGUgPSBkYXRlLmdldERhdGUoKTtcclxuXHRpZiAobW9udGggPj0gMSAmJiBtb250aCA8PSA5KSB7XHJcblx0XHRcdG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuXHR9XHJcblx0aWYgKHN0ckRhdGUgPj0gMCAmJiBzdHJEYXRlIDw9IDkpIHtcclxuXHRcdFx0c3RyRGF0ZSA9IFwiMFwiICsgc3RyRGF0ZTtcclxuXHR9XHJcblx0dmFyIGN1cnJlbnRkYXRlID0geWVhciArIHNlcGVyYXRvciArIG1vbnRoICsgc2VwZXJhdG9yICsgc3RyRGF0ZTtcclxuXHRyZXR1cm4gY3VycmVudGRhdGU7XHJcbn1cclxuXHJcbnZhciBsYXN0TW92ZVRpbWUgPSBudWxsO1xyXG4vKipcclxuICog6Ziy5oqWXHJcbiAqXHJcbiAqIEBwYXJhbSB7IEZ1bmN0aW9uIH0gZm4g6KaB5omn6KGM55qE5pa55rOVXHJcbiAqIEBwYXJhbSB7IE51bWJlciB9IHdhaXQgIOmYsuaKluWkmuWwkeavq+enklxyXG4gKlxyXG4gKiDlnKggdnVlIOS4reS9v+eUqO+8iOazqOaEj++8muS4jeiDveS9v+eUqOeureWktOWHveaVsO+8jOWQpuWImXRoaXPmjIflkJHkuI3lr7nvvIzlubbkuJTkuI3og73lho3mrKHlsIHoo4XlpoLvvJpcclxuICogbW92ZSgpeyAgLy8g6ZSZ6K+v6LCD55So5pa55byPXHJcbiAqICAgZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKX3vvIk7XHJcbiAqIOW6lOivpeebtOaOpeS9v+eUqO+8mi8vIOato+ehruiwg+eUqOaWueW8j1xyXG4gKiBtb3ZlOiBkZWJvdW5jZShmdW5jdGlvbiAoKSB7XHJcbiAqICAgY29uc29sZS5sb2codGhpcy50aXRsZSk7XHJcbiAqIH0sIDEwMDApXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWJvdW5jZShmbiwgd2FpdCkge1xyXG4gIGxldCB0aW1lciA9IGZhbHNlO1xyXG4gIHJldHVybiBmdW5jdGlvbigpIHtcclxuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XHJcbiAgICB0aW1lciAmJiBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGltZXIgPSBmYWxzZTtcclxuICAgICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTsgLy8g5oqK5Y+C5pWw5Lyg6L+b5Y67XHJcbiAgICB9LCB3YWl0KTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ3FpdW4tZGF0YS1jaGFydHMnLFxyXG4gIG1peGluczogW3VuaUNsb3VkLm1peGluRGF0YWNvbV0sXHJcbiAgcHJvcHM6IHtcclxuICAgIHR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBudWxsXHJcbiAgICB9LFxyXG4gICAgY2FudmFzSWQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAndWNoYXJ0c2lkJ1xyXG4gICAgfSxcclxuICAgIGNhbnZhczJkOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgYmFja2dyb3VuZDoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICdyZ2JhKDAsMCwwLDApJ1xyXG4gICAgfSxcclxuICAgIGFuaW1hdGlvbjoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgY2hhcnREYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY2F0ZWdvcmllczogW10sXHJcbiAgICAgICAgICBzZXJpZXM6IFtdXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9wdHM6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICBkZWZhdWx0KCkge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2FkaW5nVHlwZToge1xyXG4gICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgIGRlZmF1bHQ6IDJcclxuICAgIH0sXHJcbiAgICBlcnJvclNob3c6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVycm9yUmVsb2FkOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvck1lc3NhZ2U6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBudWxsXHJcbiAgICB9LFxyXG4gICAgaW5TY3JvbGxWaWV3OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgcmVsb2FkOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZGlzYWJsZVNjcm9sbDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9wdHNXYXRjaDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb256b29tOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgb250YXA6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9udG91Y2g6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvbm1vdXNlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBvbm1vdmV0aXA6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlY2hhcnRzSDU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlY2hhcnRzQXBwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcFNob3c6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBGb3JtYXQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICB0b29sdGlwQ3VzdG9tOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgc3RhcnREYXRlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgZW5kRGF0ZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHRleHRFbnVtOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGdyb3VwRW51bToge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBwYWdlU2Nyb2xsVG9wOiB7XHJcbiAgICAgIHR5cGU6IE51bWJlcixcclxuICAgICAgZGVmYXVsdDogMFxyXG4gICAgfSxcclxuICAgIGRpcmVjdG9yeToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcvJ1xyXG4gICAgfSxcclxuICAgIHRhcExlZ2VuZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbWVudXM6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2lkOiAndWNoYXJ0c2lkJyxcclxuICAgICAgaW5XeDogZmFsc2UsXHJcbiAgICAgIGluQWxpOiBmYWxzZSxcclxuICAgICAgaW5UdDogZmFsc2UsXHJcbiAgICAgIGluQmQ6IGZhbHNlLFxyXG4gICAgICBpbkg1OiBmYWxzZSxcclxuICAgICAgaW5BcHA6IGZhbHNlLFxyXG4gICAgICBpbldpbjogZmFsc2UsXHJcbiAgICAgIHR5cGUyZDogdHJ1ZSxcclxuICAgICAgZGlzU2Nyb2xsOiBmYWxzZSxcclxuICAgICAgb3Blbm1vdXNlOiBmYWxzZSxcclxuICAgICAgcGl4ZWw6IDEsXHJcbiAgICAgIGNXaWR0aDogMzc1LFxyXG4gICAgICBjSGVpZ2h0OiAyNTAsXHJcbiAgICAgIHNob3djaGFydDogZmFsc2UsXHJcbiAgICAgIGVjaGFydHM6IGZhbHNlLFxyXG4gICAgICBlY2hhcnRzUmVzaXplOntcclxuICAgICAgICBzdGF0ZTpmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICB1Y2hhcnRzT3B0czoge30sXHJcbiAgICAgIGVjaGFydHNPcHRzOiB7fSxcclxuICAgICAgZHJhd0RhdGE6e30sXHJcbiAgICAgIGxhc3REcmF3VGltZTpudWxsLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKXtcclxuICAgIHRoaXMuY2lkID0gdGhpcy5jYW52YXNJZFxyXG4gICAgaWYgKHRoaXMuY2FudmFzSWQgPT0gJ3VjaGFydHNpZCcgfHwgdGhpcy5jYW52YXNJZCA9PSAnJykge1xyXG4gICAgICBsZXQgdCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J1xyXG4gICAgICBsZXQgbGVuID0gdC5sZW5ndGhcclxuICAgICAgbGV0IGlkID0gJydcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XHJcbiAgICAgICAgaWQgKz0gdC5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGVuKSlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNpZCA9IGlkXHJcbiAgICB9XHJcbiAgICBjb25zdCBzeXN0ZW1JbmZvID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKClcclxuICAgIGlmKHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJyl7XHJcbiAgICAgIHRoaXMuaW5XaW4gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gI2lmZGVmIE1QLVdFSVhJTlxyXG4gICAgdGhpcy5pbld4ID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNhbnZhczJkID09PSBmYWxzZSB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnd2luZG93cycgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ21hYycpIHtcclxuICAgICAgdGhpcy50eXBlMmQgPSBmYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnR5cGUyZCA9IHRydWU7XHJcbiAgICAgIHRoaXMucGl4ZWwgPSBzeXN0ZW1JbmZvLnBpeGVsUmF0aW87XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8v6Z2e5b6u5L+h5bCP56iL5bqP56uv5by65Yi25YWz6ZetY2FudmFzMmTmqKHlvI9cclxuICAgIC8vICNpZm5kZWYgTVAtV0VJWElOXHJcbiAgICB0aGlzLnR5cGUyZCA9IGZhbHNlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgIE1QLVRPVVRJQU8gfHwgTVAtTEFSSyB8fCBNUC1BTElQQVlcclxuICAgIHRoaXMudHlwZTJkID0gdGhpcy5jYW52YXMyZDtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUFMSVBBWVxyXG4gICAgdGhpcy5pbkFsaSA9IHRydWU7XHJcbiAgICB0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtQkFJRFVcclxuICAgIHRoaXMuaW5CZCA9IHRydWU7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1UT1VUSUFPXHJcbiAgICB0aGlzLmluVHQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICB0aGlzLmRpc1Njcm9sbCA9IHRoaXMuZGlzYWJsZVNjcm9sbDtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICAvLyAjaWZkZWYgQVBQLVZVRVxyXG4gICAgdGhpcy5pbkFwcCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5lY2hhcnRzQXBwID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBBUFAtTlZVRVxyXG4gICAgdGhpcy5pbkFwcCA9IHRydWU7XHJcbiAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZVxyXG4gICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBcIuaaguS4jeaUr+aMgU5WVUVcIlxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgSDVcclxuICAgIHRoaXMuaW5INSA9IHRydWU7XHJcbiAgICBpZih0aGlzLmluV2luID09PSB0cnVlKXtcclxuICAgICAgdGhpcy5vcGVubW91c2UgPSB0aGlzLm9ubW91c2U7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lY2hhcnRzSDUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5lY2hhcnRzID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICB9KVxyXG4gICAgLy8gI2lmbmRlZiBNUC1BTElQQVkgfHwgTVAtQkFJRFUgfHwgTVAtVE9VVElBTyB8fCBBUFAtVlVFXHJcbiAgICBjb25zdCB0aW1lID0gdGhpcy5pbkg1ID8gNTAwIDogMjAwO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgdW5pLm9uV2luZG93UmVzaXplKFxyXG4gICAgICBkZWJvdW5jZShmdW5jdGlvbihyZXMpIHtcclxuICAgICAgICBpZiAoX3RoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBlcnJtc2cgPSBfdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgaWYgKGVycm1zZyAhPT0gbnVsbCAmJiBlcnJtc2cgIT09ICdudWxsJyAmJiBlcnJtc2cgIT09ICcnKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChfdGhpcy5lY2hhcnRzKSB7XHJcbiAgICAgICAgICBfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIV90aGlzLmVjaGFydHNSZXNpemUuc3RhdGU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIF90aGlzLnJlc2l6ZUhhbmRsZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRpbWUpXHJcbiAgICApO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICBkZXN0cm95ZWQoKXtcclxuICAgIGlmKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSl7XHJcbiAgICAgIGRlbGV0ZSBjZmUub3B0aW9uW3RoaXMuY2lkXVxyXG4gICAgICBkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMuY2lkXVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGRlbGV0ZSBjZnUub3B0aW9uW3RoaXMuY2lkXVxyXG4gICAgICBkZWxldGUgY2Z1Lmluc3RhbmNlW3RoaXMuY2lkXVxyXG4gICAgfVxyXG4gICAgLy8gI2lmbmRlZiBNUC1BTElQQVkgfHwgTVAtQkFJRFUgfHwgTVAtVE9VVElBT1xyXG4gICAgdW5pLm9mZldpbmRvd1Jlc2l6ZSgoKT0+e30pXHJcbiAgICAvLyAjZW5kaWZcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBjaGFydERhdGFQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jbGVhckNoYXJ0KCk7XHJcbiAgICAgICAgICAgIGlmICh2YWwuc2VyaWVzICYmIHZhbC5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mmNoYXJ0RGF0YeaVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbG9jYWxkYXRhOntcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpKSB7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb3B0c1Byb3BzOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpICYmIHRoaXMuZWNoYXJ0cyA9PT0gZmFsc2UgJiYgdGhpcy5vcHRzV2F0Y2ggPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrRGF0YSh0aGlzLmRyYXdEYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9jbGVhckNoYXJ0KCk7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yab3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZW9wdHNQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mmVvcHRz5pWw5o2u57G75Z6L6ZSZ6K+vJztcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGltbWVkaWF0ZTogZmFsc2UsXHJcbiAgICAgIGRlZXA6IHRydWVcclxuICAgIH0sXHJcbiAgICByZXNob3codmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSAmJiB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmVjaGFydHNSZXNpemUuc3RhdGUgPSAhdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgfSwgMjAwKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHJlbG9hZCh2YWwsIG9sZHZhbCkge1xyXG4gICAgICBpZiAodmFsID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1peGluRGF0YWNvbUVycm9yTWVzc2FnZSh2YWwsIG9sZHZhbCkge1xyXG4gICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZXJyb3InLCBwYXJhbXM6IHt0eXBlOlwiZXJyb3JcIiwgZXJyb3JTaG93OiB0aGlzLmVycm9yU2hvdywgbXNnOiB2YWwsIGlkOiB0aGlzLmNpZH19KTtcclxuICAgICAgICBpZih0aGlzLmVycm9yU2hvdyl7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnW+eni+S6keWbvuihqOe7hOS7tl0nICsgdmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCAmJiB0aGlzLmVycm9yU2hvdyAmJiB2YWwgIT09IG51bGwgJiYgdmFsICE9PSAnbnVsbCcgJiYgdmFsICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSB2YWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIG9wdHNQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRzKSk7XHJcbiAgICB9LFxyXG4gICAgZW9wdHNQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5lb3B0cykpO1xyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YVByb3BzKCkge1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJ0RGF0YSkpO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIGJlZm9yZUluaXQoKXtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2hhcnREYXRhID09PSAnb2JqZWN0JyAmJiB0aGlzLmNoYXJ0RGF0YSAhPSBudWxsICYmIHRoaXMuY2hhcnREYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuY2hhcnREYXRhLnNlcmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy/mi7fotJ3kuIDkuItjaGFydERhdGHvvIzkuLrkuoZvcHRz5Y+Y5pu05ZCO57uf5LiA5pWw5o2u5p2l5rqQXHJcbiAgICAgICAgdGhpcy5kcmF3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5jaGFydERhdGEpO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrRGF0YSh0aGlzLmNoYXJ0RGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMubG9jYWxkYXRhLmxlbmd0aD4wKXtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2NhbGRhdGFJbml0KHRoaXMubG9jYWxkYXRhKTtcclxuICAgICAgfWVsc2UgaWYodGhpcy5jb2xsZWN0aW9uICE9PSAnJyl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZXRDbG91ZERhdGEoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGxvY2FsZGF0YUluaXQocmVzZGF0YSl7XHJcbiAgICAgIC8v5pu/5o2iZW51beexu+Wei+S4uuato+ehrueahOaPj+i/sFxyXG4gICAgICBpZih0aGlzLmdyb3VwRW51bS5sZW5ndGg+MCl7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZ3JvdXBFbnVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGlmKHJlc2RhdGFbaV0uZ3JvdXAgPT09IHRoaXMuZ3JvdXBFbnVtW2pdLnZhbHVlKXtcclxuICAgICAgICAgICAgICByZXNkYXRhW2ldLmdyb3VwID0gdGhpcy5ncm91cEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMudGV4dEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnRleHRFbnVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGlmKHJlc2RhdGFbaV0udGV4dCA9PT0gdGhpcy50ZXh0RW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS50ZXh0ID0gdGhpcy50ZXh0RW51bVtqXS50ZXh0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5lZWRDYXRlZ29yaWVzID0gZmFsc2U7XHJcbiAgICAgIGxldCB0bXBEYXRhID0ge2NhdGVnb3JpZXM6W10sIHNlcmllczpbXX1cclxuICAgICAgbGV0IHRtcGNhdGVnb3JpZXMgPSBbXVxyXG4gICAgICBsZXQgdG1wc2VyaWVzID0gW107XHJcbiAgICAgIC8v5ou85o6lY2F0ZWdvcmllc1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIG5lZWRDYXRlZ29yaWVzID0gY2ZlLmNhdGVnb3JpZXMuaW5jbHVkZXModGhpcy50eXBlKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmdS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfVxyXG4gICAgICBpZihuZWVkQ2F0ZWdvcmllcyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgLy/lpoLmnpxwcm9wc+S4reeahGNoYXJ0RGF0YeW4puaciWNhdGVnb3JpZXPvvIzliJnkvJjlhYjkvb/nlKhjaGFydERhdGHnmoRjYXRlZ29yaWVzXHJcbiAgICAgICAgaWYodGhpcy5jaGFydERhdGEgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcyAmJiB0aGlzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzLmxlbmd0aD4wKXtcclxuICAgICAgICAgIHRtcGNhdGVnb3JpZXMgPSB0aGlzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAvL+WmguaenOaYr+aXpeacn+exu+Wei+eahOaVsOaNru+8jOS4jeeuoeaYr+acrOWcsOaVsOaNrui/mOaYr+S6keaVsOaNru+8jOmDveaMiei1t+atouaXpeacn+iHquWKqOaLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmKHRoaXMuc3RhcnREYXRlICYmIHRoaXMuZW5kRGF0ZSl7XHJcbiAgICAgICAgICAgIGxldCBpZGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKVxyXG4gICAgICAgICAgICBsZXQgZWRhdGUgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpXHJcbiAgICAgICAgICAgIHdoaWxlIChpZGF0ZSA8PSBlZGF0ZSkge1xyXG4gICAgICAgICAgICBcdHRtcGNhdGVnb3JpZXMucHVzaChnZXRGb3JtYXREYXRlKGlkYXRlKSlcclxuICAgICAgICAgICAgXHRpZGF0ZSA9IGlkYXRlLnNldERhdGUoaWRhdGUuZ2V0RGF0ZSgpICsgMSlcclxuICAgICAgICAgICAgXHRpZGF0ZSA9IG5ldyBEYXRlKGlkYXRlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAvL+WQpuWImeS7jue7k+aenOS4reWOu+mHjeW5tuaLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBsZXQgdGVtcGNrZXkgPSB7fTtcclxuICAgICAgICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS50ZXh0ICE9IHVuZGVmaW5lZCAmJiAhdGVtcGNrZXlbaXRlbS50ZXh0XSkge1xyXG4gICAgICAgICAgICAgICAgdG1wY2F0ZWdvcmllcy5wdXNoKGl0ZW0udGV4dClcclxuICAgICAgICAgICAgICAgIHRlbXBja2V5W2l0ZW0udGV4dF0gPSB0cnVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdG1wRGF0YS5jYXRlZ29yaWVzID0gdG1wY2F0ZWdvcmllc1xyXG4gICAgICB9XHJcbiAgICAgIC8v5ou85o6lc2VyaWVzXHJcbiAgICAgIGxldCB0ZW1wc2tleSA9IHt9O1xyXG4gICAgICByZXNkYXRhLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtLmdyb3VwICE9IHVuZGVmaW5lZCAmJiAhdGVtcHNrZXlbaXRlbS5ncm91cF0pIHtcclxuICAgICAgICAgIHRtcHNlcmllcy5wdXNoKHsgbmFtZTogaXRlbS5ncm91cCwgZGF0YTogW10gfSk7XHJcbiAgICAgICAgICB0ZW1wc2tleVtpdGVtLmdyb3VwXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgLy/lpoLmnpzmsqHmnInojrflj5bliLDliIbnu4TlkI3np7Ao5Y+v6IO95piv5bimY2F0ZWdvcmllc+eahOaVsOaNru+8jOS5n+WPr+iDveaYr+S4jeW4pueahOmlvOWbvuexuylcclxuICAgICAgaWYgKHRtcHNlcmllcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRtcHNlcmllcyA9IFt7IG5hbWU6ICfpu5jorqTliIbnu4QnLCBkYXRhOiBbXSB9XTtcclxuICAgICAgICAvL+WmguaenOaYr+mcgOimgWNhdGVnb3JpZXPnmoTlm77ooajnsbvlnotcclxuICAgICAgICBpZihuZWVkQ2F0ZWdvcmllcyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRtcGNhdGVnb3JpZXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBpZiAocmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgIHNlcmllc2RhdGEgPSByZXNkYXRhW2ldLnZhbHVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0bXBzZXJpZXNbMF0uZGF0YS5wdXNoKHNlcmllc2RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIC8v5aaC5p6c5piv6aW85Zu+57G755qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaCh7XCJuYW1lXCI6IHJlc2RhdGFbaV0udGV4dCxcInZhbHVlXCI6IHJlc2RhdGFbaV0udmFsdWV9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIC8v5aaC5p6c5pyJ5YiG57uE5ZCNXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCB0bXBzZXJpZXMubGVuZ3RoOyBrKyspIHtcclxuICAgICAgICAgIC8v5aaC5p6c5pyJY2F0ZWdvcmllc1xyXG4gICAgICAgICAgaWYgKHRtcGNhdGVnb3JpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRtcGNhdGVnb3JpZXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgc2VyaWVzZGF0YSA9IDA7XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodG1wc2VyaWVzW2tdLm5hbWUgPT0gcmVzZGF0YVtpXS5ncm91cCAmJiByZXNkYXRhW2ldLnRleHQgPT0gdG1wY2F0ZWdvcmllc1tqXSkge1xyXG4gICAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdG1wc2VyaWVzW2tdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lpoLmnpzkvKDkuoZncm91cOiAjOayoeacieS8oHRleHTvvIzljbPmsqHmnIljYXRlZ29yaWVz77yI5q2j5bi45oOF5Ya15LiL6L+Z56eN5pWw5o2u5piv5LiN56ym5ZCI5pWw5o2u6KaB5rGC6KeE6IyD55qE77yJXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBpZiAodG1wc2VyaWVzW2tdLm5hbWUgPT0gcmVzZGF0YVtpXS5ncm91cCkge1xyXG4gICAgICAgICAgICAgICAgdG1wc2VyaWVzW2tdLmRhdGEucHVzaChyZXNkYXRhW2ldLnZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdG1wRGF0YS5zZXJpZXMgPSB0bXBzZXJpZXNcclxuICAgICAgLy/mi7fotJ3kuIDkuItjaGFydERhdGHvvIzkuLrkuoZvcHRz5Y+Y5pu05ZCO57uf5LiA5pWw5o2u5p2l5rqQXHJcbiAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRtcERhdGEpO1xyXG4gICAgICB0aGlzLmNoZWNrRGF0YSh0bXBEYXRhKVxyXG4gICAgfSxcclxuICAgIHJlbG9hZGluZygpIHtcclxuICAgICAgaWYodGhpcy5lcnJvclJlbG9hZCA9PT0gZmFsc2Upe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb24gIT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgY2hlY2tEYXRhKGFueURhdGEpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIC8v5aSN5L2Nb3B0c+aIlmVvcHRzXHJcbiAgICAgIGlmKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gZGVlcENsb25lQXNzaWduKHt9LCB0aGlzLmVvcHRzKTtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0uaWQgPSBjaWQ7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgJiYgY2Z1LnR5cGUuaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gZGVlcENsb25lQXNzaWduKHt9LCBjZnVbdGhpcy50eXBlXSwgdGhpcy5vcHRzKTtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYW52YXNJZCA9IGNpZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yacHJvcHPlj4LmlbDkuK10eXBl57G75Z6L5LiN5q2j56GuJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcbiAgICAgIGxldCBuZXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCBhbnlEYXRhKTtcclxuICAgICAgaWYgKG5ld0RhdGEuc2VyaWVzICE9PSB1bmRlZmluZWQgJiYgbmV3RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uY2hhcnREYXRhID0gbmV3RGF0YTtcclxuICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNhdGVnb3JpZXMgPSBuZXdEYXRhLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uc2VyaWVzID0gbmV3RGF0YS5zZXJpZXM7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZXNpemVIYW5kbGVyKCkge1xyXG4gICAgICAvL+a4suafk+mYsuaKllxyXG4gICAgICBsZXQgY3VyclRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICBsZXQgbGFzdERyYXdUaW1lID0gdGhpcy5sYXN0RHJhd1RpbWU/dGhpcy5sYXN0RHJhd1RpbWU6Y3VyclRpbWUtMzAwMDtcclxuICAgICAgbGV0IGR1cmF0aW9uID0gY3VyclRpbWUgLSBsYXN0RHJhd1RpbWU7XHJcbiAgICAgIGlmIChkdXJhdGlvbiA8IDEwMDApIHJldHVybjtcclxuICAgICAgbGV0IGNoYXJ0ZG9tID0gdW5pXHJcbiAgICAgICAgLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG4gICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgLmluKHRoaXMpXHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgLnNlbGVjdCgnI0NoYXJ0Qm94SWQnK3RoaXMuY2lkKVxyXG4gICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB0aGlzLmNXaWR0aCB8fCBkYXRhLmhlaWdodCAhPT0gdGhpcy5jSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWMoKTtcclxuICAgIH0sXHJcbiAgICBnZXRDbG91ZERhdGEoKSB7XHJcbiAgICAgIGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1peGluRGF0YWNvbUdldCgpXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tUmVzRGF0YSA9IHJlcy5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfor7fmsYLplJnor6/vvJonICsgZXJyO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIG9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UobmVlZFJlc2V0LCBjaGFuZ2VkKSB7XHJcbiAgICAgIGlmIChuZWVkUmVzZXQgPT0gdHJ1ZSAmJiB0aGlzLmNvbGxlY3Rpb24gIT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfY2xlYXJDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGlmICh0aGlzLmVjaGFydHMgIT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0KSB7XHJcbiAgICAgICAgY29uc3QgY3R4ID0gY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQ7XHJcbiAgICAgICAgaWYodHlwZW9mIGN0eCA9PT0gXCJvYmplY3RcIiAmJiAhISFjZnUub3B0aW9uW2NpZF0udXBkYXRlKXtcclxuICAgICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy5jV2lkdGgqdGhpcy5waXhlbCwgdGhpcy5jSGVpZ2h0KnRoaXMucGl4ZWwpO1xyXG4gICAgICAgICAgY3R4LmRyYXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBpbml0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IGNoYXJ0ZG9tID0gdW5pXHJcbiAgICAgICAgLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG4gICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgLmluKHRoaXMpXHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgLnNlbGVjdCgnI0NoYXJ0Qm94SWQnK2NpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxhc3REcmF3VGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY1dpZHRoID0gZGF0YS53aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5jSGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZWNoYXJ0cyAhPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmQgPT0gJ3JnYmEoMCwwLDAsMCknID8gJyNGRkZGRkYnIDogdGhpcy5iYWNrZ3JvdW5kO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYW52YXMyZCA9IHRoaXMudHlwZTJkO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5waXhlbFJhdGlvID0gdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uYW5pbWF0aW9uID0gdGhpcy5hbmltYXRpb247XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLndpZHRoID0gZGF0YS53aWR0aCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmhlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub256b29tID0gdGhpcy5vbnpvb207XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udGFwID0gdGhpcy5vbnRhcDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub250b3VjaCA9IHRoaXMub250b3VjaDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3VzZSA9IHRoaXMub3Blbm1vdXNlO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbm1vdmV0aXAgPSB0aGlzLm9ubW92ZXRpcDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPSB0aGlzLnRvb2x0aXBTaG93O1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID0gdGhpcy50b29sdGlwRm9ybWF0O1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5pblNjcm9sbFZpZXcgPSB0aGlzLmluU2Nyb2xsVmlldztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ubGFzdERyYXdUaW1lID0gdGhpcy5sYXN0RHJhd1RpbWU7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRhcExlZ2VuZCA9IHRoaXMudGFwTGVnZW5kO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5pivSDXmiJbogIVBcHDnq6/vvIzph4fnlKhyZW5kZXJqc+a4suafk+WbvuihqFxyXG4gICAgICAgICAgICBpZiAodGhpcy5pbkg1IHx8IHRoaXMuaW5BcHApIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lY2hhcnRzID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub25tb3VzZSA9IHRoaXMub3Blbm1vdXNlO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID0gdGhpcy50b29sdGlwRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b20gPSB0aGlzLnRvb2x0aXBDdXN0b207XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ubGFzdERyYXdUaW1lID0gdGhpcy5sYXN0RHJhd1RpbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVjaGFydHNPcHRzID0gZGVlcENsb25lQXNzaWduKHt9LCBjZmUub3B0aW9uW2NpZF0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVjaGFydHNPcHRzID0gZGVlcENsb25lQXNzaWduKHt9LCBjZnUub3B0aW9uW2NpZF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/lpoLmnpzmmK/lsI/nqIvluo/nq6/vvIzph4fnlKh1Q2hhcnRz5riy5p+TXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gZm9ybWF0dGVyQXNzaWduKGNmdS5vcHRpb25bY2lkXSxjZnUuZm9ybWF0dGVyKVxyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGUyZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IHVuaS5jcmVhdGVTZWxlY3RvclF1ZXJ5KCkuaW4odGhpcylcclxuICAgICAgICAgICAgICAgICAgcXVlcnlcclxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0KCcjJyArIGNpZClcclxuICAgICAgICAgICAgICAgICAgICAuZmllbGRzKHsgbm9kZTogdHJ1ZSwgc2l6ZTogdHJ1ZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5leGVjKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzWzBdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IHJlc1swXS5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSBjdHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0YVVDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLl93aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5faGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25ld0NoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LDEwMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77ya5byA5ZCvMmTmqKHlvI/lkI7vvIzmnKrojrflj5bliLBkb23oioLngrnvvIxjYW52YXMtaWQ6JyArIGNpZDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5BbGkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KGNpZCwgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXdDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVzaG93ID09IHRydWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfluIPlsYDplJnor6/vvJrmnKrojrflj5bliLDniLblhYPntKDlrr3pq5jlsLrlr7jvvIFjYW52YXMtaWQ6JyArIGNpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWMoKTtcclxuICAgIH0sXHJcbiAgICBzYXZlSW1hZ2UoKXtcclxuICAgIFx0dW5pLmNhbnZhc1RvVGVtcEZpbGVQYXRoKHtcclxuICAgIFx0ICBjYW52YXNJZDogdGhpcy5jaWQsXHJcbiAgICBcdCAgc3VjY2VzczogcmVzPT57XHJcbiAgICBcdCAgICAvLyNpZmRlZiBINVxyXG4gICAgXHRcdFx0dmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIFx0XHRcdGEuaHJlZiA9IHJlcy50ZW1wRmlsZVBhdGg7XHJcbiAgICBcdFx0XHRhLmRvd25sb2FkID0gdGhpcy5jaWQ7XHJcbiAgICBcdFx0XHRhLnRhcmdldCA9ICdfYmxhbmsnXHJcbiAgICBcdFx0XHRhLmNsaWNrKCk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgICAgLy8jaWZuZGVmIEg1XHJcbiAgICBcdCAgICAgIHVuaS5zYXZlSW1hZ2VUb1Bob3Rvc0FsYnVtKHtcclxuICAgICAgICAgICAgICBmaWxlUGF0aDogcmVzLnRlbXBGaWxlUGF0aCxcclxuICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkv53lrZjmiJDlip8nLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgXHQgICAgICB9KTtcclxuICAgIFx0ICAgIC8vI2VuZGlmXHJcbiAgICBcdCAgfSBcclxuICAgIFx0fSx0aGlzKTtcclxuICAgIH0sXHJcbiAgICBnZXRJbWFnZSgpe1xyXG4gICAgICBpZih0aGlzLnR5cGUyZCA9PSBmYWxzZSl7XHJcbiAgICAgICAgdW5pLmNhbnZhc1RvVGVtcEZpbGVQYXRoKHtcclxuICAgICAgICAgIGNhbnZhc0lkOiB0aGlzLmNpZCxcclxuICAgICAgICAgIHN1Y2Nlc3M6IHJlcz0+e1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbWFnZScsIHBhcmFtczoge3R5cGU6XCJnZXRJbWFnZVwiLCBiYXNlNjQ6IHJlcy50ZW1wRmlsZVBhdGh9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSx0aGlzKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgcXVlcnlcclxuICAgICAgICAgIC5zZWxlY3QoJyMnICsgdGhpcy5jaWQpXHJcbiAgICAgICAgICAuZmllbGRzKHsgbm9kZTogdHJ1ZSwgc2l6ZTogdHJ1ZSB9KVxyXG4gICAgICAgICAgLmV4ZWMocmVzID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IHJlc1swXS5ub2RlO1xyXG4gICAgICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEltYWdlJywgcGFyYW1zOiB7dHlwZTpcImdldEltYWdlXCIsIGJhc2U2NDogY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyl9fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gI2lmbmRlZiBBUFAtVlVFIHx8IEg1XHJcbiAgICBfbmV3Q2hhcnQoY2lkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHMoY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnY29tcGxldGUnLCBwYXJhbXM6IHt0eXBlOlwiY29tcGxldGVcIiwgY29tcGxldGU6IHRydWUsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxMZWZ0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbExlZnRcIiwgc2Nyb2xsTGVmdDogdHJ1ZSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbFJpZ2h0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ3Njcm9sbFJpZ2h0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbFJpZ2h0XCIsIHNjcm9sbFJpZ2h0OiB0cnVlLCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRhVUNoYXJ0KGNpZCkge1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuICAgIH0sXHJcbiAgICBfdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF9zaG93VG9vbHRpcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RhcChlLG1vdmUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXggPSBudWxsO1xyXG4gICAgICBsZXQgbGVnZW5kSW5kZXggPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pblNjcm9sbFZpZXcgPT09IHRydWUgfHwgdGhpcy5pbkFsaSkge1xyXG4gICAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgICAgLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG4gICAgICAgICAgLy8gI2lmbmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgICAgLnNlbGVjdCgnI0NoYXJ0Qm94SWQnK2NpZClcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgLy8gI2lmZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgICAgLnNlbGVjdCgnIycrdGhpcy5jaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXM9W107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluQWxpKSB7XHJcbiAgICAgICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwuY2xpZW50WCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwuY2xpZW50WSAtIGRhdGEudG9wfSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCAtIHRoaXMucGFnZVNjcm9sbFRvcH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy50YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW5kZXgnLCBwYXJhbXM6IHsgdHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwueSAtIGRhdGEudG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZXhlYygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwueCAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRMZWZ0LCB5OiBlLmRldGFpbC55IC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCB9KTtcclxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSwgY3VycmVudEluZGV4OiBjdXJyZW50SW5kZXgsIGxlZ2VuZEluZGV4OiBsZWdlbmRJbmRleCwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsYXN0TW92ZVRpbWU9RGF0ZS5ub3coKTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTonZ2V0VG91Y2hTdGFydCcsIHBhcmFtczp7dHlwZTpcInRvdWNoU3RhcnRcIiwgZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSwgaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgfSxcclxuICAgIF90b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IGN1cnJNb3ZlVGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIGxhc3RNb3ZlVGltZTtcclxuICAgICAgbGV0IHRvdWNoTW92ZUxpbWl0ID0gY2Z1Lm9wdGlvbltjaWRdLnRvdWNoTW92ZUxpbWl0IHx8IDI0O1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyB0b3VjaE1vdmVMaW1pdCkpIHJldHVybjsvL+avj+enkjYw5binXHJcbiAgICAgIGxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLm9udG91Y2ggPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiB0aGlzLm9uem9vbSA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAyKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5kb2J1bGVab29tKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldFRvdWNoTW92ZScsIHBhcmFtczoge3R5cGU6XCJ0b3VjaE1vdmVcIiwgZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgIH0sXHJcbiAgICBfdG91Y2hFbmQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDApe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbEVuZChlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6J2dldFRvdWNoRW5kJywgcGFyYW1zOnt0eXBlOlwidG91Y2hFbmRcIiwgZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSwgaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICBpZih0aGlzLm9udGFwID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IGZhbHNlICYmIHRoaXMub25tb3ZldGlwID09PSB0cnVlKXtcclxuICAgICAgICB0aGlzLl90YXAoZSx0cnVlKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICBfZXJyb3IoZSkge1xyXG4gICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IGUuZGV0YWlsLmVyck1zZztcclxuICAgIH0sXHJcbiAgICBlbWl0TXNnKG1zZykge1xyXG4gICAgICB0aGlzLiRlbWl0KG1zZy5uYW1lLCBtc2cucGFyYW1zKTtcclxuICAgIH0sXHJcbiAgICBnZXRSZW5kZXJUeXBlKCkge1xyXG4gICAgICAvL+mYsuatouWmguaenOW8gOWQr2VjaGFydHPkuJTniLblhYPntKDkuLp2LWlm55qE5oOF5Ya1cmVuZGVyanPnm5HlkKzkuI3liLBwcm9w5Y+Y5YyW55qE6Zeu6aKYXHJcbiAgICAgIGlmKHRoaXMuZWNoYXJ0cz09PXRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nPT09ZmFsc2Upe1xyXG4gICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB0b0pTT04oKXtcclxuICAgICAgcmV0dXJuIHRoaXNcclxuICAgIH1cclxuICB9XHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuPHNjcmlwdCBtb2R1bGU9XCJyZGNoYXJ0c1wiIGxhbmc9XCJyZW5kZXJqc1wiPlxyXG5pbXBvcnQgdUNoYXJ0c1JEIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy91LWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuaW1wb3J0IGNmZSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMnO1xyXG5cclxudmFyIHRoYXQgPSB7fTtcclxudmFyIHJvb3Rkb20gPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gcmRkZWVwQ2xvbmVBc3NpZ24ob3JpZ2luID0ge30sIC4uLmFyZ3MpIHtcclxuICBmb3IgKGxldCBpIGluIGFyZ3MpIHtcclxuICAgIGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcbiAgICAgIGlmIChhcmdzW2ldLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBvcmlnaW5ba2V5XSA9IGFyZ3NbaV1ba2V5XSAmJiB0eXBlb2YgYXJnc1tpXVtrZXldID09PSAnb2JqZWN0JyA/IHJkZGVlcENsb25lQXNzaWduKEFycmF5LmlzQXJyYXkoYXJnc1tpXVtrZXldKSA/IFtdIDoge30sIG9yaWdpbltrZXldLCBhcmdzW2ldW2tleV0pIDogYXJnc1tpXVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvcmlnaW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJkZm9ybWF0dGVyQXNzaWduKGFyZ3MsZm9ybWF0dGVyKSB7XHJcbiAgZm9yIChsZXQga2V5IGluIGFyZ3MpIHtcclxuICAgIGlmKGFyZ3MuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpe1xyXG4gICAgICByZGZvcm1hdHRlckFzc2lnbihhcmdzW2tleV0sZm9ybWF0dGVyKVxyXG4gICAgfWVsc2UgaWYoa2V5ID09PSAnZm9ybWF0JyAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnc3RyaW5nJyl7XHJcbiAgICAgIGFyZ3NbJ2Zvcm1hdHRlciddID0gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gPyBmb3JtYXR0ZXJbYXJnc1trZXldXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFyZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmlkOm51bGxcclxuICAgIH1cclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICByb290ZG9tID0ge3RvcDowLGxlZnQ6MH1cclxuICAgIC8vICNpZmRlZiBINVxyXG4gICAgbGV0IGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLW1haW4nKVswXVxyXG4gICAgaWYoZG0gPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLXBhZ2Utd3JhcHBlcicpWzBdXHJcbiAgICB9XHJcbiAgICByb290ZG9tID0ge3RvcDpkbS5vZmZzZXRUb3AsbGVmdDpkbS5vZmZzZXRMZWZ0fVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgIGlmKHRoaXMucmlkID09PSBudWxsKXtcclxuICAgICAgICB0aGlzLiRvd25lckluc3RhbmNlICYmIHRoaXMuJG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0UmVuZGVyVHlwZScpXHJcbiAgICAgIH1cclxuICAgIH0sMjAwKVxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZnUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivRUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBlY2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGxldCBjaWQgPSBKU09OLnN0cmluZ2lmeShuZXdWYWwuaWQpXHJcbiAgICAgIHRoaXMucmlkID0gY2lkXHJcbiAgICAgIHRoYXRbY2lkXSA9IHRoaXMuJG93bmVySW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgbGV0IGVvcHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG4gICAgICBsZXQgdHlwZSA9IGVvcHRzLnR5cGU7XHJcbiAgICAgIC8v6L295YWl5bm26KaG55uW6buY6K6k6YWN572uXHJcbiAgICAgIGlmICh0eXBlICYmIGNmZS50eXBlLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGNmZVt0eXBlXSwgZW9wdHMpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0gPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgZW9wdHMpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdEYXRhID0gZW9wdHMuY2hhcnREYXRhO1xyXG4gICAgICBpZihuZXdEYXRhKXtcclxuICAgICAgICAvL+aMgui9vWNhdGVnb3JpZXPlkoxzZXJpZXNcclxuICAgICAgICBpZihjZmUub3B0aW9uW2NpZF0ueEF4aXMgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgPT09ICdjYXRlZ29yeScpe1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnlBeGlzICYmIGNmZS5vcHRpb25bY2lkXS55QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS55QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS55QXhpcy5kYXRhID0gbmV3RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXMgPSBbXVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3RGF0YS5zZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA9IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA/IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA6IHt9XHJcbiAgICAgICAgICBsZXQgVGVtcGxhdGUgPSByZGRlZXBDbG9uZUFzc2lnbih7fSxjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUsbmV3RGF0YS5zZXJpZXNbaV0pXHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzLnB1c2goVGVtcGxhdGUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5lY2hhcnRzID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgdGhpcy5uZXdFQ2hhcnQoKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxyXG4gICAgICAgIC8vICNpZmRlZiBBUFAtVlVFXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9ICcuL3VuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvc3RhdGljL2FwcC1wbHVzL2VjaGFydHMubWluLmpzJ1xyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC8vICNpZmRlZiBINVxyXG4gICAgICAgIGNvbnN0IHsgb3JpZ2luIH0gPSB3aW5kb3cubG9jYXRpb25cclxuICAgICAgICBjb25zdCByb290dXJsID0gb3JpZ2luICsgcHJvY2Vzcy5lbnYuQkFTRV9VUkxcclxuICAgICAgICBzY3JpcHQuc3JjID0gcm9vdHVybCArICd1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9oNS9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICBzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVjcmVzaXplKG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdFQ2hhcnQoKXtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLy9vbnRhcOW8gOWQr+WQjuaJjeinpuWPkWNsaWNr5LqL5Lu2XHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdjbGljaycsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICB4OnJlc2RhdGEuZXZlbnQub2Zmc2V0WCx5OnJlc2RhdGEuZXZlbnQub2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIiwgcGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIiwgZXZlbnQ6ZXZlbnQsIGN1cnJlbnRJbmRleDpyZXNkYXRhLmRhdGFJbmRleCwgdmFsdWU6cmVzZGF0YS5kYXRhLCBzZXJpZXNOYW1lOiByZXNkYXRhLnNlcmllc05hbWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignaGlnaGxpZ2h0JywgcmVzZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEhpZ2hsaWdodFwiLCBwYXJhbXM6e3R5cGU6XCJoaWdobGlnaHRcIiwgcmVzOnJlc2RhdGEsIGlkOmNpZH19KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGFFQ2hhcnQoY2lkLGNmZS5vcHRpb25bY2lkXSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51cGRhdGFFQ2hhcnQoY2lkLGNmZS5vcHRpb25bY2lkXSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHVwZGF0YUVDaGFydChjaWQsb3B0aW9uKXtcclxuICAgICAgLy/mm7/mjaJvcHRpb27lhoVmb3JtYXTlsZ7mgKfkuLpmb3JtYXR0ZXLnmoTpooTlrprkuYnmlrnms5VcclxuICAgICAgb3B0aW9uID0gcmRmb3JtYXR0ZXJBc3NpZ24ob3B0aW9uLGNmZS5mb3JtYXR0ZXIpXHJcbiAgICAgIGlmKG9wdGlvbi50b29sdGlwKXtcclxuICAgICAgICBvcHRpb24udG9vbHRpcC5zaG93ID0gb3B0aW9uLnRvb2x0aXBTaG93P3RydWU6ZmFsc2U7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAucG9zaXRpb24gPSB0aGlzLnRvb2x0aXBQb3NpdGlvbigpXHJcbiAgICAgICAgLy90b29sdGlwRm9ybWF05pa55rOV77yM5pu/5o2i57uE5Lu255qEdG9vbHRpcEZvcm1hdOS4umNvbmZpZy1lY2hhcnRzLmpz5YaF5a+55bqU55qE5pa55rOVXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2ZlLmZvcm1hdHRlcltvcHRpb24udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgIG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA9IG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA/IG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA6IGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIOminOiJsua4kOWPmOa3u+WKoOeahOaWueazlVxyXG4gICAgICBpZiAob3B0aW9uLnNlcmllcykge1xyXG4gICAgICBcdGZvciAobGV0IGkgaW4gb3B0aW9uLnNlcmllcykge1xyXG4gICAgICBcdFx0bGV0IGxpbmVhckdyYWRpZW50ID0gb3B0aW9uLnNlcmllc1tpXS5saW5lYXJHcmFkaWVudFxyXG4gICAgICBcdFx0aWYgKGxpbmVhckdyYWRpZW50KSB7XHJcbiAgICAgIFx0XHRcdG9wdGlvbi5zZXJpZXNbaV0uY29sb3IgPSBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KGxpbmVhckdyYWRpZW50WzBdLGxpbmVhckdyYWRpZW50WzFdLGxpbmVhckdyYWRpZW50WzJdLGxpbmVhckdyYWRpZW50WzNdLGxpbmVhckdyYWRpZW50WzRdKVxyXG4gICAgICBcdFx0fVxyXG4gICAgICBcdH1cclxuICAgICAgfVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5zZXRPcHRpb24ob3B0aW9uLCBvcHRpb24ubm90TWVyZ2UpXHJcbiAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdmaW5pc2hlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiY29tcGxldGVcIixwYXJhbXM6e3R5cGU6XCJjb21wbGV0ZVwiLGNvbXBsZXRlOnRydWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgaWYoY2ZlLmluc3RhbmNlW2NpZF0pe1xyXG4gICAgICAgICAgY2ZlLmluc3RhbmNlW2NpZF0ub2ZmKCdmaW5pc2hlZCcpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8v5L+u5aSNaW5pdOWIneWni+WMluWunuS+i+iOt+WPluWuvemrmOS4jeato+ehrumXrumimFxyXG4gICAgICBpZihcclxuICAgICAgICB0eXBlb2YgdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAhPSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICBNYXRoLmFicyggdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldFdpZHRoKCkgKT4zIHx8XHJcbiAgICAgICAgICAgIE1hdGguYWJzKCB0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldEhlaWdodCgpICk+M1xyXG4gICAgICAgICAgKVxyXG4gICAgICApe3RoaXMuZWNyZXNpemUoKTt9XHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcFBvc2l0aW9uKCl7XHJcbiAgICAgIHJldHVybiAocG9pbnQsIHBhcmFtcywgZG9tLCByZWN0LCBzaXplKSA9PiB7XHJcbiAgICAgIFx0bGV0IHggPSBwb2ludFswXVxyXG4gICAgICBcdGxldCB5ID0gcG9pbnRbMV1cclxuICAgICAgXHRsZXQgdmlld1dpZHRoID0gc2l6ZS52aWV3U2l6ZVswXVxyXG4gICAgICBcdGxldCB2aWV3SGVpZ2h0ID0gc2l6ZS52aWV3U2l6ZVsxXVxyXG4gICAgICBcdGxldCBib3hXaWR0aCA9IHNpemUuY29udGVudFNpemVbMF1cclxuICAgICAgXHRsZXQgYm94SGVpZ2h0ID0gc2l6ZS5jb250ZW50U2l6ZVsxXVxyXG4gICAgICBcdGxldCBwb3NYID0geCArIDMwIFxyXG4gICAgICBcdGxldCBwb3NZID0geSArIDMwIFxyXG4gICAgICBcdGlmIChwb3NYICsgYm94V2lkdGggPiB2aWV3V2lkdGgpIHsgXHJcbiAgICAgIFx0XHRwb3NYID0geCAtIGJveFdpZHRoIC0gMzBcclxuICAgICAgXHR9XHJcbiAgICAgIFx0aWYgKHBvc1kgKyBib3hIZWlnaHQgPiB2aWV3SGVpZ2h0KSB7XHJcbiAgICAgIFx0XHRwb3NZID0geSAtIGJveEhlaWdodCAtIDMwXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdHJldHVybiBbcG9zWCwgcG9zWV1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vPT09PT09PT09PT09PT3ku6XkuIvmmK91Q2hhcnRz55qE5pa55rOVPT09PT09PT09PT09PT09PT09PT1cclxuICAgIHVjaW5pdChuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKXtcclxuICAgICAgaWYoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSA9PSBKU09OLnN0cmluZ2lmeShvbGRWYWwpKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYoIW5ld1ZhbC5jYW52YXNJZCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBjaWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1ZhbC5jYW52YXNJZCkpXHJcbiAgICAgIHRoaXMucmlkID0gY2lkXHJcbiAgICAgIHRoYXRbY2lkXSA9IHRoaXMuJG93bmVySW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0gPSByZGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgbGV0IGNhbnZhc2RvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpZClcclxuICAgICAgaWYoY2FudmFzZG9tICYmIGNhbnZhc2RvbS5jaGlsZHJlblswXSl7XHJcbiAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSBjYW52YXNkb20uY2hpbGRyZW5bMF0uZ2V0Q29udGV4dChcIjJkXCIpXHJcbiAgICAgICAgaWYoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpe1xyXG4gICAgICAgICAgdGhpcy51cGRhdGFVQ2hhcnQoKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5uZXdVQ2hhcnQoKVxyXG4gICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbmV3VUNoYXJ0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0gPSBuZXcgdUNoYXJ0c1JEKGNmdS5vcHRpb25bY2lkXSlcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiY29tcGxldGVcIixwYXJhbXM6e3R5cGU6XCJjb21wbGV0ZVwiLGNvbXBsZXRlOnRydWUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJzY3JvbGxMZWZ0XCIscGFyYW1zOnt0eXBlOlwic2Nyb2xsTGVmdFwiLHNjcm9sbExlZnQ6dHJ1ZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbFJpZ2h0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcInNjcm9sbFJpZ2h0XCIscGFyYW1zOnt0eXBlOlwic2Nyb2xsUmlnaHRcIixzY3JvbGxSaWdodDp0cnVlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGFVQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpIHtcclxuICAgICAgaWYgKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSBpdGVtLmRhdGFcclxuICAgICAgICBpZih0eXBlb2YgaXRlbS5kYXRhID09PSBcIm9iamVjdFwiKXtcclxuICAgICAgICAgIGRhdGEgPSBpdGVtLmRhdGEudmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wZXJ0aWVzICYmIGl0ZW0ucHJvcGVydGllcy5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWUgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHNob3dUb29sdGlwKGUsY2lkKSB7XHJcbiAgICAgIGxldCB0YyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tXHJcbiAgICAgIGlmICh0YyAmJiB0YyAhPT0gdW5kZWZpbmVkICYmIHRjICE9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodGMueCA+PSAwICYmIHRjLnkgPj0gMCkge1xyXG4gICAgICAgICAgb2Zmc2V0ID0geyB4OiB0Yy54LCB5OiB0Yy55ICsgMTAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgaW5kZXg6IHRjLmluZGV4LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXHJcbiAgICAgICAgICB0ZXh0TGlzdDogdGMudGV4dExpc3QsXHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdGFwKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRhcCA9IGNmdS5vcHRpb25bY2lkXS5vbnRhcFxyXG4gICAgICBsZXQgdG9vbHRpcFNob3cgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3dcclxuICAgICAgbGV0IHRhcExlZ2VuZCA9IGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmRcclxuICAgICAgaWYob250YXAgPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgbGV0IGN1cnJlbnRJbmRleD1udWxsXHJcbiAgICAgIGxldCBsZWdlbmRJbmRleD1udWxsXHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICBpZihlLmRldGFpbC54KXsvL3RhcOaIluiAhWNsaWNr55qE5LqL5Lu2XHJcbiAgICAgICAgdG1wZSA9IHsgeDogZS5kZXRhaWwueCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuZGV0YWlsLnkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIH1lbHNley8vbW91c2XnmoTkuovku7ZcclxuICAgICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIH1cclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgY3VycmVudEluZGV4PWNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSlcclxuICAgICAgbGVnZW5kSW5kZXg9Y2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpXHJcbiAgICAgIGlmKHRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodG9vbHRpcFNob3c9PXRydWUpe1xyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoZSxjaWQpXHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIixwYXJhbXM6e3R5cGU6XCJnZXRJbmRleFwiLGV2ZW50OnRtcGUsY3VycmVudEluZGV4OmN1cnJlbnRJbmRleCxsZWdlbmRJbmRleDpsZWdlbmRJbmRleCxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaFN0YXJ0KGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hTdGFydFwiLHBhcmFtczp7dHlwZTpcInRvdWNoU3RhcnRcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcbiAgICAgIGlmKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IGZhbHNlICYmIGNmdS5vcHRpb25bY2lkXS5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgICBsZXQgdG1wZSA9IHsgeDogZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZihvbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAyKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5kb2J1bGVab29tKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcInRvdWNoTW92ZVwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgdG91Y2hFbmQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaEVuZFwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgbW91c2VEb3duKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPXRydWU7XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZURvd25cIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIG1vdXNlTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcIm1vdXNlTW92ZVwiLGV2ZW50OnRtcGUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgIH1lbHNlIGlmKGNmdS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1vdXNlVXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbEVuZChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPWZhbHNlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaEVuZFwiLHBhcmFtczp7dHlwZTpcIm1vdXNlVXBcIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjwhLS0gI2VuZGlmIC0tPlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmNoYXJ0c3ZpZXcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDE7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n"); /***/ }), /* 71 */ /*!************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global, wx) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 79)); var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 81)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 74)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 16)); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 82)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 83)); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 85)); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 86)); var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ 87)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24)); var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 91); var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 92)); function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e35) { throw _e35; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e36) { didErr = true; err = _e36; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function 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; } function _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; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self; function n(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } function s(e, t, n) { return e(n = { path: t, exports: {}, require: function require(e, t) { return function () { throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); }(null == t && n.path); } }, n.exports), n.exports; } var r = s(function (e, t) { var n; e.exports = (n = n || function (e, t) { var n = Object.create || function () { function e() {} return function (t) { var n; return e.prototype = t, n = new e(), e.prototype = null, n; }; }(), s = {}, r = s.lib = {}, i = r.Base = { extend: function extend(e) { var t = n(this); return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () { t.$super.init.apply(this, arguments); }), t.init.prototype = t, t.$super = this, t; }, create: function create() { var e = this.extend(); return e.init.apply(e, arguments), e; }, init: function init() {}, mixIn: function mixIn(e) { for (var t in e) { e.hasOwnProperty(t) && (this[t] = e[t]); } e.hasOwnProperty("toString") && (this.toString = e.toString); }, clone: function clone() { return this.init.prototype.extend(this); } }, o = r.WordArray = i.extend({ init: function init(e, n) { e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length; }, toString: function toString(e) { return (e || c).stringify(this); }, concat: function concat(e) { var t = this.words, n = e.words, s = this.sigBytes, r = e.sigBytes; if (this.clamp(), s % 4) for (var i = 0; i < r; i++) { var o = n[i >>> 2] >>> 24 - i % 4 * 8 & 255; t[s + i >>> 2] |= o << 24 - (s + i) % 4 * 8; } else for (i = 0; i < r; i += 4) { t[s + i >>> 2] = n[i >>> 2]; } return this.sigBytes += r, this; }, clamp: function clamp() { var t = this.words, n = this.sigBytes; t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4); }, clone: function clone() { var e = i.clone.call(this); return e.words = this.words.slice(0), e; }, random: function random(t) { for (var n, s = [], r = function r(t) { t = t; var n = 987654321, s = 4294967295; return function () { var r = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s; return r /= 4294967296, (r += .5) * (e.random() > .5 ? 1 : -1); }; }, i = 0; i < t; i += 4) { var a = r(4294967296 * (n || e.random())); n = 987654071 * a(), s.push(4294967296 * a() | 0); } return new o.init(s, t); } }), a = s.enc = {}, c = a.Hex = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push((i >>> 4).toString(16)), s.push((15 & i).toString(16)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s += 2) { n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4; } return new o.init(n, t / 2); } }, u = a.Latin1 = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push(String.fromCharCode(i)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s++) { n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8; } return new o.init(n, t); } }, h = a.Utf8 = { stringify: function stringify(e) { try { return decodeURIComponent(escape(u.stringify(e))); } catch (e) { throw new Error("Malformed UTF-8 data"); } }, parse: function parse(e) { return u.parse(unescape(encodeURIComponent(e))); } }, l = r.BufferedBlockAlgorithm = i.extend({ reset: function reset() { this._data = new o.init(), this._nDataBytes = 0; }, _append: function _append(e) { "string" == typeof e && (e = h.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes; }, _process: function _process(t) { var n = this._data, s = n.words, r = n.sigBytes, i = this.blockSize, a = r / (4 * i), c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * i, u = e.min(4 * c, r); if (c) { for (var h = 0; h < c; h += i) { this._doProcessBlock(s, h); } var l = s.splice(0, c); n.sigBytes -= u; } return new o.init(l, u); }, clone: function clone() { var e = i.clone.call(this); return e._data = this._data.clone(), e; }, _minBufferSize: 0 }); r.Hasher = l.extend({ cfg: i.extend(), init: function init(e) { this.cfg = this.cfg.extend(e), this.reset(); }, reset: function reset() { l.reset.call(this), this._doReset(); }, update: function update(e) { return this._append(e), this._process(), this; }, finalize: function finalize(e) { return e && this._append(e), this._doFinalize(); }, blockSize: 16, _createHelper: function _createHelper(e) { return function (t, n) { return new e.init(n).finalize(t); }; }, _createHmacHelper: function _createHmacHelper(e) { return function (t, n) { return new d.HMAC.init(e, n).finalize(t); }; } }); var d = s.algo = {}; return s; }(Math), n); }), i = r, o = (s(function (e, t) { var n; e.exports = (n = i, function (e) { var t = n, s = t.lib, r = s.WordArray, i = s.Hasher, o = t.algo, a = []; !function () { for (var t = 0; t < 64; t++) { a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0; } }(); var c = o.MD5 = i.extend({ _doReset: function _doReset() { this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function _doProcessBlock(e, t) { for (var n = 0; n < 16; n++) { var s = t + n, r = e[s]; e[s] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8); } var i = this._hash.words, o = e[t + 0], c = e[t + 1], p = e[t + 2], f = e[t + 3], g = e[t + 4], m = e[t + 5], y = e[t + 6], _ = e[t + 7], w = e[t + 8], v = e[t + 9], I = e[t + 10], S = e[t + 11], b = e[t + 12], k = e[t + 13], C = e[t + 14], T = e[t + 15], P = i[0], A = i[1], E = i[2], O = i[3]; P = u(P, A, E, O, o, 7, a[0]), O = u(O, P, A, E, c, 12, a[1]), E = u(E, O, P, A, p, 17, a[2]), A = u(A, E, O, P, f, 22, a[3]), P = u(P, A, E, O, g, 7, a[4]), O = u(O, P, A, E, m, 12, a[5]), E = u(E, O, P, A, y, 17, a[6]), A = u(A, E, O, P, _, 22, a[7]), P = u(P, A, E, O, w, 7, a[8]), O = u(O, P, A, E, v, 12, a[9]), E = u(E, O, P, A, I, 17, a[10]), A = u(A, E, O, P, S, 22, a[11]), P = u(P, A, E, O, b, 7, a[12]), O = u(O, P, A, E, k, 12, a[13]), E = u(E, O, P, A, C, 17, a[14]), P = h(P, A = u(A, E, O, P, T, 22, a[15]), E, O, c, 5, a[16]), O = h(O, P, A, E, y, 9, a[17]), E = h(E, O, P, A, S, 14, a[18]), A = h(A, E, O, P, o, 20, a[19]), P = h(P, A, E, O, m, 5, a[20]), O = h(O, P, A, E, I, 9, a[21]), E = h(E, O, P, A, T, 14, a[22]), A = h(A, E, O, P, g, 20, a[23]), P = h(P, A, E, O, v, 5, a[24]), O = h(O, P, A, E, C, 9, a[25]), E = h(E, O, P, A, f, 14, a[26]), A = h(A, E, O, P, w, 20, a[27]), P = h(P, A, E, O, k, 5, a[28]), O = h(O, P, A, E, p, 9, a[29]), E = h(E, O, P, A, _, 14, a[30]), P = l(P, A = h(A, E, O, P, b, 20, a[31]), E, O, m, 4, a[32]), O = l(O, P, A, E, w, 11, a[33]), E = l(E, O, P, A, S, 16, a[34]), A = l(A, E, O, P, C, 23, a[35]), P = l(P, A, E, O, c, 4, a[36]), O = l(O, P, A, E, g, 11, a[37]), E = l(E, O, P, A, _, 16, a[38]), A = l(A, E, O, P, I, 23, a[39]), P = l(P, A, E, O, k, 4, a[40]), O = l(O, P, A, E, o, 11, a[41]), E = l(E, O, P, A, f, 16, a[42]), A = l(A, E, O, P, y, 23, a[43]), P = l(P, A, E, O, v, 4, a[44]), O = l(O, P, A, E, b, 11, a[45]), E = l(E, O, P, A, T, 16, a[46]), P = d(P, A = l(A, E, O, P, p, 23, a[47]), E, O, o, 6, a[48]), O = d(O, P, A, E, _, 10, a[49]), E = d(E, O, P, A, C, 15, a[50]), A = d(A, E, O, P, m, 21, a[51]), P = d(P, A, E, O, b, 6, a[52]), O = d(O, P, A, E, f, 10, a[53]), E = d(E, O, P, A, I, 15, a[54]), A = d(A, E, O, P, c, 21, a[55]), P = d(P, A, E, O, w, 6, a[56]), O = d(O, P, A, E, T, 10, a[57]), E = d(E, O, P, A, y, 15, a[58]), A = d(A, E, O, P, k, 21, a[59]), P = d(P, A, E, O, g, 6, a[60]), O = d(O, P, A, E, S, 10, a[61]), E = d(E, O, P, A, p, 15, a[62]), A = d(A, E, O, P, v, 21, a[63]), i[0] = i[0] + P | 0, i[1] = i[1] + A | 0, i[2] = i[2] + E | 0, i[3] = i[3] + O | 0; }, _doFinalize: function _doFinalize() { var t = this._data, n = t.words, s = 8 * this._nDataBytes, r = 8 * t.sigBytes; n[r >>> 5] |= 128 << 24 - r % 32; var i = e.floor(s / 4294967296), o = s; n[15 + (r + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), n[14 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), t.sigBytes = 4 * (n.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) { var h = c[u]; c[u] = 16711935 & (h << 8 | h >>> 24) | 4278255360 & (h << 24 | h >>> 8); } return a; }, clone: function clone() { var e = i.clone.call(this); return e._hash = this._hash.clone(), e; } }); function u(e, t, n, s, r, i, o) { var a = e + (t & n | ~t & s) + r + o; return (a << i | a >>> 32 - i) + t; } function h(e, t, n, s, r, i, o) { var a = e + (t & s | n & ~s) + r + o; return (a << i | a >>> 32 - i) + t; } function l(e, t, n, s, r, i, o) { var a = e + (t ^ n ^ s) + r + o; return (a << i | a >>> 32 - i) + t; } function d(e, t, n, s, r, i, o) { var a = e + (n ^ (t | ~s)) + r + o; return (a << i | a >>> 32 - i) + t; } t.MD5 = i._createHelper(c), t.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }), s(function (e, t) { var n; e.exports = (n = i, void function () { var e = n, t = e.lib.Base, s = e.enc.Utf8; e.algo.HMAC = t.extend({ init: function init(e, t) { e = this._hasher = new e.init(), "string" == typeof t && (t = s.parse(t)); var n = e.blockSize, r = 4 * n; t.sigBytes > r && (t = e.finalize(t)), t.clamp(); for (var i = this._oKey = t.clone(), o = this._iKey = t.clone(), a = i.words, c = o.words, u = 0; u < n; u++) { a[u] ^= 1549556828, c[u] ^= 909522486; } i.sigBytes = o.sigBytes = r, this.reset(); }, reset: function reset() { var e = this._hasher; e.reset(), e.update(this._iKey); }, update: function update(e) { return this._hasher.update(e), this; }, finalize: function finalize(e) { var t = this._hasher, n = t.finalize(e); return t.reset(), t.finalize(this._oKey.clone().concat(n)); } }); }()); }), s(function (e, t) { e.exports = i.HmacMD5; })), a = s(function (e, t) { e.exports = i.enc.Utf8; }), c = s(function (e, t) { var n; e.exports = (n = i, function () { var e = n, t = e.lib.WordArray; function s(e, n, s) { for (var r = [], i = 0, o = 0; o < n; o++) { if (o % 4) { var a = s[e.charCodeAt(o - 1)] << o % 4 * 2, c = s[e.charCodeAt(o)] >>> 6 - o % 4 * 2; r[i >>> 2] |= (a | c) << 24 - i % 4 * 8, i++; } } return t.create(r, i); } e.enc.Base64 = { stringify: function stringify(e) { var t = e.words, n = e.sigBytes, s = this._map; e.clamp(); for (var r = [], i = 0; i < n; i += 3) { for (var o = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < n; a++) { r.push(s.charAt(o >>> 6 * (3 - a) & 63)); } } var c = s.charAt(64); if (c) for (; r.length % 4;) { r.push(c); } return r.join(""); }, parse: function parse(e) { var t = e.length, n = this._map, r = this._reverseMap; if (!r) { r = this._reverseMap = []; for (var i = 0; i < n.length; i++) { r[n.charCodeAt(i)] = i; } } var o = n.charAt(64); if (o) { var a = e.indexOf(o); -1 !== a && (t = a); } return s(e, t, r); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; }(), n.enc.Base64); }); var u = "FUNCTION", h = "OBJECT", l = "CLIENT_DB", d = "pending", p = "fullfilled", f = "rejected"; function g(e) { return Object.prototype.toString.call(e).slice(8, -1).toLowerCase(); } function m(e) { return "object" === g(e); } function y(e) { return "function" == typeof e; } function _(e) { return function () { try { return e.apply(e, arguments); } catch (e) { console.error(e); } }; } var w = "REJECTED", v = "NOT_PENDING"; var I = /*#__PURE__*/function () { function I() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref.createPromise, _ref$retryRule = _ref.retryRule, t = _ref$retryRule === void 0 ? w : _ref$retryRule; (0, _classCallCheck2.default)(this, I); this.createPromise = e, this.status = null, this.promise = null, this.retryRule = t; } (0, _createClass2.default)(I, [{ key: "needRetry", get: function get() { if (!this.status) return !0; switch (this.retryRule) { case w: return this.status === f; case v: return this.status !== d; } } }, { key: "exec", value: function exec() { var _this = this; return this.needRetry ? (this.status = d, this.promise = this.createPromise().then(function (e) { return _this.status = p, Promise.resolve(e); }, function (e) { return _this.status = f, Promise.reject(e); }), this.promise) : this.promise; } }]); return I; }(); function S(e) { return e && "string" == typeof e ? JSON.parse(e) : e; } var b = "development" === "development", k = "app-plus", C = "true" === false || !0 === false, T = S([]), P = "h5" === k ? "web" : "app-plus" === k ? "app" : k, A = S(undefined), E = S([]) || [], O = true; var x = ""; try { x = (__webpack_require__(/*! uni-stat-config */ 93).default || __webpack_require__(/*! uni-stat-config */ 93)).appid; } catch (e) {} var R = {}; function U(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n, s; return n = R, s = e, Object.prototype.hasOwnProperty.call(n, s) || (R[e] = t), R[e]; } "app" === P && (R = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); var L = ["invoke", "success", "fail", "complete"], N = U("_globalUniCloudInterceptor"); function D(e, t) { N[e] || (N[e] = {}), m(t) && Object.keys(t).forEach(function (n) { L.indexOf(n) > -1 && function (e, t, n) { var s = N[e][t]; s || (s = N[e][t] = []), -1 === s.indexOf(n) && y(n) && s.push(n); }(e, n, t[n]); }); } function F(e, t) { N[e] || (N[e] = {}), m(t) ? Object.keys(t).forEach(function (n) { L.indexOf(n) > -1 && function (e, t, n) { var s = N[e][t]; if (!s) return; var r = s.indexOf(n); r > -1 && s.splice(r, 1); }(e, n, t[n]); }) : delete N[e]; } function q(e, t) { return e && 0 !== e.length ? e.reduce(function (e, n) { return e.then(function () { return n(t); }); }, Promise.resolve()) : Promise.resolve(); } function M(e, t) { return N[e] && N[e][t] || []; } function K(e) { D("callObject", e); } var j = U("_globalUniCloudListener"), B = "response", $ = "needLogin", W = "refreshToken", z = "clientdb", J = "cloudfunction", H = "cloudobject"; function G(e) { return j[e] || (j[e] = []), j[e]; } function V(e, t) { var n = G(e); n.includes(t) || n.push(t); } function Y(e, t) { var n = G(e), s = n.indexOf(t); -1 !== s && n.splice(s, 1); } function Q(e, t) { var n = G(e); for (var _e2 = 0; _e2 < n.length; _e2++) { (0, n[_e2])(t); } } var X, Z = !1; function ee() { return X || (X = new Promise(function (e) { Z && e(), function t() { if ("function" == typeof getCurrentPages) { var _t2 = getCurrentPages(); _t2 && _t2[0] && (Z = !0, e()); } Z || setTimeout(function () { t(); }, 30); }(); }), X); } function te(e) { var t = {}; for (var _n2 in e) { var _s2 = e[_n2]; y(_s2) && (t[_n2] = _(_s2)); } return t; } var ne = /*#__PURE__*/function (_Error) { (0, _inherits2.default)(ne, _Error); var _super = _createSuper(ne); function ne(e) { var _this2; (0, _classCallCheck2.default)(this, ne); _this2 = _super.call(this, e.message), _this2.errMsg = e.message || e.errMsg || "unknown system error", _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; return _this2; } (0, _createClass2.default)(ne, [{ key: "toJson", value: function toJson() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; if (!(e >= 10)) return e++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e) : this.cause }; } }]); return ne; }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); var se = { request: function request(e) { return uni.request(e); }, uploadFile: function uploadFile(e) { return uni.uploadFile(e); }, setStorageSync: function setStorageSync(e, t) { return uni.setStorageSync(e, t); }, getStorageSync: function getStorageSync(e) { return uni.getStorageSync(e); }, removeStorageSync: function removeStorageSync(e) { return uni.removeStorageSync(e); }, clearStorageSync: function clearStorageSync() { return uni.clearStorageSync(); } }; function re() { return { token: se.getStorageSync("uni_id_token") || se.getStorageSync("uniIdToken"), tokenExpired: se.getStorageSync("uni_id_token_expired") }; } function ie() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref2.token, t = _ref2.tokenExpired; e && se.setStorageSync("uni_id_token", e), t && se.setStorageSync("uni_id_token_expired", t); } var oe, ae; function ce() { return oe || (oe = uni.getSystemInfoSync()), oe; } function ue() { var e, t; try { if (uni.getLaunchOptionsSync) { if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return; var _uni$getLaunchOptions = uni.getLaunchOptionsSync(), _n3 = _uni$getLaunchOptions.scene, _s3 = _uni$getLaunchOptions.channel; e = _s3, t = _n3; } } catch (e) {} return { channel: e, scene: t }; } function he() { var e = uni.getLocale && uni.getLocale() || "en"; if (ae) return _objectSpread(_objectSpread({}, ae), {}, { locale: e, LOCALE: e }); var t = ce(), n = t.deviceId, s = t.osName, r = t.uniPlatform, i = t.appId, o = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"]; for (var _e3 = 0; _e3 < o.length; _e3++) { delete t[o[_e3]]; } return ae = _objectSpread(_objectSpread({ PLATFORM: r, OS: s, APPID: i, DEVICEID: n }, ue()), t), _objectSpread(_objectSpread({}, ae), {}, { locale: e, LOCALE: e }); } var le = { sign: function sign(e, t) { var n = ""; return Object.keys(e).sort().forEach(function (t) { e[t] && (n = n + "&" + t + "=" + e[t]); }), n = n.slice(1), o(n, t).toString(); }, wrappedRequest: function wrappedRequest(e, t) { return new Promise(function (n, s) { t(Object.assign(e, { complete: function complete(e) { e || (e = {}), b && "web" === P && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"]; if (!e.statusCode || e.statusCode >= 400) return s(new ne({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t })); var r = e.data; if (r.error) return s(new ne({ code: r.error.code, message: r.error.message, requestId: t })); r.result = r.data, r.requestId = t, delete r.data, n(r); } })); }); }, toBase64: function toBase64(e) { return c.stringify(a.parse(e)); } }, de = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }; var _e4 = (0, _uniI18n.initVueI18n)({ "zh-Hans": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, "zh-Hant": { "uniCloud.init.paramRequired": "缺少参数:{param}", "uniCloud.uploadFile.fileError": "filePath应为File对象" }, en: de, fr: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, es: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, ja: de }, "zh-Hans"), pe = _e4.t; var fe = /*#__PURE__*/function () { function fe(e) { var _this3 = this; (0, _classCallCheck2.default)(this, fe); ["spaceId", "clientSecret"].forEach(function (t) { if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(pe("uniCloud.init.paramRequired", { param: t })); }), this.config = Object.assign({}, { endpoint: 0 === e.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = se, this._getAccessTokenPromiseHub = new I({ createPromise: function createPromise() { return _this3.requestAuth(_this3.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) { if (!e.result || !e.result.accessToken) throw new ne({ code: "AUTH_FAILED", message: "获取accessToken失败" }); _this3.setAccessToken(e.result.accessToken); }); }, retryRule: v }); } (0, _createClass2.default)(fe, [{ key: "hasAccessToken", get: function get() { return !!this.accessToken; } }, { key: "setAccessToken", value: function setAccessToken(e) { this.accessToken = e; } }, { key: "requestWrapped", value: function requestWrapped(e) { return le.wrappedRequest(e, this.adapter.request); } }, { key: "requestAuth", value: function requestAuth(e) { return this.requestWrapped(e); } }, { key: "request", value: function request(e, t) { var _this4 = this; return Promise.resolve().then(function () { return _this4.hasAccessToken ? t ? _this4.requestWrapped(e) : _this4.requestWrapped(e).catch(function (t) { return new Promise(function (e, n) { !t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e(); }).then(function () { return _this4.getAccessToken(); }).then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }) : _this4.getAccessToken().then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }); } }, { key: "rebuildRequest", value: function rebuildRequest(e) { var t = Object.assign({}, e); return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = le.sign(t.data, this.config.clientSecret), t; } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s }; } }, { key: "getAccessToken", value: function getAccessToken() { return this._getAccessTokenPromiseHub.exec(); } }, { key: "authorize", value: function () { var _authorize = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.getAccessToken(); case 2: case "end": return _context.stop(); } } }, _callee, this); })); function authorize() { return _authorize.apply(this, arguments); } return authorize; }() }, { key: "callFunction", value: function callFunction(e) { var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) }; return this.request(this.setupRequest(t)); } }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) { var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref3) { var _this5 = this; var e = _ref3.url, t = _ref3.formData, n = _ref3.name, s = _ref3.filePath, r = _ref3.fileType, i = _ref3.onUploadProgress; return new Promise(function (o, a) { var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new ne({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "reportOSSUpload", value: function reportOSSUpload(e) { var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFile", value: function () { var _uploadFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref4) { var e, t, _ref4$fileType, n, _ref4$cloudPathAsReal, s, r, i, o, a, c, u, h, l, d, p, f, m, y, _, _e5, w; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e = _ref4.filePath, t = _ref4.cloudPath, _ref4$fileType = _ref4.fileType, n = _ref4$fileType === void 0 ? "image" : _ref4$fileType, _ref4$cloudPathAsReal = _ref4.cloudPathAsRealPath, s = _ref4$cloudPathAsReal === void 0 ? !1 : _ref4$cloudPathAsReal, r = _ref4.onUploadProgress, i = _ref4.config; if (!("string" !== g(t))) { _context2.next = 3; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); case 3: if (t = t.trim()) { _context2.next = 5; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); case 5: if (!/:\/\//.test(t)) { _context2.next = 7; break; } throw new ne({ code: "INVALID_PARAM", message: "cloudPath不合法" }); case 7: o = i && i.envType || this.config.envType; if (!(s && ("/" !== t[0] && (t = "/" + t), t.indexOf("\\") > -1))) { _context2.next = 10; break; } throw new ne({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" }); case 10: _context2.next = 12; return this.getOSSUploadOptionsFromPath({ env: o, filename: s ? t.split("/").pop() : t, fileId: s ? t : void 0 }); case 12: a = _context2.sent.result; c = "https://" + a.cdnDomain + "/" + a.ossPath; u = a.securityToken; h = a.accessKeyId; l = a.signature; d = a.host; p = a.ossPath; f = a.id; m = a.policy; y = a.ossCallbackUrl; _ = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: h, Signature: l, host: d, id: f, key: p, policy: m, success_action_status: 200 }; if (u && (_["x-oss-security-token"] = u), y) { _e5 = JSON.stringify({ callbackUrl: y, callbackBody: JSON.stringify({ fileId: f, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); _.callback = le.toBase64(_e5); } w = { url: "https://" + a.host, formData: _, fileName: "file", name: "file", filePath: e, fileType: n }; _context2.next = 27; return this.uploadFileToOSS(Object.assign({}, w, { onUploadProgress: r })); case 27: if (!y) { _context2.next = 29; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 29: _context2.next = 31; return this.reportOSSUpload({ id: f }); case 31: if (!_context2.sent.success) { _context2.next = 33; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 33: throw new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" }); case 34: case "end": return _context2.stop(); } } }, _callee2, this); })); function uploadFile(_x) { return _uploadFile.apply(this, arguments); } return uploadFile; }() }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref5.fileList; return new Promise(function (t, n) { Array.isArray(e) && 0 !== e.length || n(new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t({ fileList: e.map(function (e) { return { fileID: e, tempFileURL: e }; }) }); }); } }, { key: "getFileInfo", value: function () { var _getFileInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() { var _ref6, e, t, _args3 = arguments; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _ref6 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, e = _ref6.fileList; if (!(!Array.isArray(e) || 0 === e.length)) { _context3.next = 3; break; } throw new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); case 3: t = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e.map(function (e) { return e.split("?")[0]; }).join(",") }) }; _context3.next = 6; return this.request(this.setupRequest(t)); case 6: _context3.t0 = _context3.sent.result; return _context3.abrupt("return", { fileList: _context3.t0 }); case 8: case "end": return _context3.stop(); } } }, _callee3, this); })); function getFileInfo() { return _getFileInfo.apply(this, arguments); } return getFileInfo; }() }]); return fe; }(); var ge = { init: function init(e) { var t = new fe(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }; var me = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:"; var ye; !function (e) { e.local = "local", e.none = "none", e.session = "session"; }(ye || (ye = {})); var _e = function _e() {}; var we = function we() { var e; if (!Promise) { e = function e() {}, e.promise = {}; var _t3 = function _t3() { throw new ne({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' }); }; return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e; } var t = new Promise(function (t, n) { e = function e(_e6, s) { return _e6 ? n(_e6) : t(s); }; }); return e.promise = t, e; }; function ve(e) { return void 0 === e; } function Ie(e) { return "[object Null]" === Object.prototype.toString.call(e); } var Se; function be(e) { var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]); var n; var _iterator = _createForOfIteratorHelper(t), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _e7 = _step.value; var _t4 = _e7.isMatch, _n4 = _e7.genAdapter, _s4 = _e7.runtime; if (_t4()) return { adapter: _n4(), runtime: _s4 }; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } !function (e) { e.WEB = "web", e.WX_MP = "wx_mp"; }(Se || (Se = {})); var ke = { adapter: null, runtime: void 0 }, Ce = ["anonymousUuidKey"]; var Te = /*#__PURE__*/function (_e8) { (0, _inherits2.default)(Te, _e8); var _super2 = _createSuper(Te); function Te() { var _this6; (0, _classCallCheck2.default)(this, Te); _this6 = _super2.call(this), ke.adapter.root.tcbObject || (ke.adapter.root.tcbObject = {}); return _this6; } (0, _createClass2.default)(Te, [{ key: "setItem", value: function setItem(e, t) { ke.adapter.root.tcbObject[e] = t; } }, { key: "getItem", value: function getItem(e) { return ke.adapter.root.tcbObject[e]; } }, { key: "removeItem", value: function removeItem(e) { delete ke.adapter.root.tcbObject[e]; } }, { key: "clear", value: function clear() { delete ke.adapter.root.tcbObject; } }]); return Te; }(_e); function Pe(e, t) { switch (e) { case "local": return t.localStorage || new Te(); case "none": return new Te(); default: return t.sessionStorage || new Te(); } } var Ae = /*#__PURE__*/function () { function Ae(e) { (0, _classCallCheck2.default)(this, Ae); if (!this._storage) { this._persistence = ke.adapter.primaryStorage || e.persistence, this._storage = Pe(this._persistence, ke.adapter); var _t5 = "access_token_".concat(e.env), _n5 = "access_token_expire_".concat(e.env), _s5 = "refresh_token_".concat(e.env), _r = "anonymous_uuid_".concat(e.env), _i = "login_type_".concat(e.env), _o = "user_info_".concat(e.env); this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n5, refreshTokenKey: _s5, anonymousUuidKey: _r, loginTypeKey: _i, userInfoKey: _o }; } } (0, _createClass2.default)(Ae, [{ key: "updatePersistence", value: function updatePersistence(e) { if (e === this._persistence) return; var t = "local" === this._persistence; this._persistence = e; var n = Pe(e, ke.adapter); for (var _e9 in this.keys) { var _s6 = this.keys[_e9]; if (t && Ce.includes(_e9)) continue; var _r2 = this._storage.getItem(_s6); ve(_r2) || Ie(_r2) || (n.setItem(_s6, _r2), this._storage.removeItem(_s6)); } this._storage = n; } }, { key: "setStore", value: function setStore(e, t, n) { if (!this._storage) return; var s = { version: n || "localCachev1", content: t }, r = JSON.stringify(s); try { this._storage.setItem(e, r); } catch (e) { throw e; } } }, { key: "getStore", value: function getStore(e, t) { try { if (!this._storage) return; } catch (e) { return ""; } t = t || "localCachev1"; var n = this._storage.getItem(e); if (!n) return ""; if (n.indexOf(t) >= 0) { return JSON.parse(n).content; } return ""; } }, { key: "removeStore", value: function removeStore(e) { this._storage.removeItem(e); } }]); return Ae; }(); var Ee = {}, Oe = {}; function xe(e) { return Ee[e]; } var Re = /*#__PURE__*/(0, _createClass2.default)(function Re(e, t) { (0, _classCallCheck2.default)(this, Re); this.data = t || null, this.name = e; }); var Ue = /*#__PURE__*/function (_Re) { (0, _inherits2.default)(Ue, _Re); var _super3 = _createSuper(Ue); function Ue(e, t) { var _this7; (0, _classCallCheck2.default)(this, Ue); _this7 = _super3.call(this, "error", { error: e, data: t }), _this7.error = e; return _this7; } return (0, _createClass2.default)(Ue); }(Re); var Le = new ( /*#__PURE__*/function () { function _class() { (0, _classCallCheck2.default)(this, _class); this._listeners = {}; } (0, _createClass2.default)(_class, [{ key: "on", value: function on(e, t) { return function (e, t, n) { n[e] = n[e] || [], n[e].push(t); }(e, t, this._listeners), this; } }, { key: "off", value: function off(e, t) { return function (e, t, n) { if (n && n[e]) { var _s7 = n[e].indexOf(t); -1 !== _s7 && n[e].splice(_s7, 1); } }(e, t, this._listeners), this; } }, { key: "fire", value: function fire(e, t) { if (e instanceof Ue) return console.error(e.error), this; var n = "string" == typeof e ? new Re(e, t || {}) : e; var s = n.name; if (this._listens(s)) { n.target = this; var _e10 = this._listeners[s] ? (0, _toConsumableArray2.default)(this._listeners[s]) : []; var _iterator2 = _createForOfIteratorHelper(_e10), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _t6 = _step2.value; _t6.call(this, n); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } return this; } }, { key: "_listens", value: function _listens(e) { return this._listeners[e] && this._listeners[e].length > 0; } }]); return _class; }())(); function Ne(e, t) { Le.on(e, t); } function De(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; Le.fire(e, t); } function Fe(e, t) { Le.off(e, t); } var qe = "loginStateChanged", Me = "loginStateExpire", Ke = "loginTypeChanged", je = "anonymousConverted", Be = "refreshAccessToken"; var $e; !function (e) { e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL"; }($e || ($e = {})); var We = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" }; function Je(e, t, n) { var s = e[t]; e[t] = function (t) { var r = {}, i = {}; n.forEach(function (n) { var _n$call = n.call(e, t), s = _n$call.data, o = _n$call.headers; Object.assign(r, s), Object.assign(i, o); }); var o = t.data; return o && function () { var e; if (e = o, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, o), r);else for (var _e11 in r) { o.append(_e11, r[_e11]); } }(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), i), s.call(e, t); }; } function He() { var e = Math.random().toString(16).slice(2); return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, ze), {}, { "x-seqid": e }) }; } var Ge = /*#__PURE__*/function () { function Ge() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, Ge); var t; this.config = e, this._reqClass = new ke.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = xe(this.config.env), this._localCache = (t = this.config.env, Oe[t]), Je(this._reqClass, "post", [He]), Je(this._reqClass, "upload", [He]), Je(this._reqClass, "download", [He]); } (0, _createClass2.default)(Ge, [{ key: "post", value: function () { var _post = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(e) { return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._reqClass.post(e); case 2: return _context4.abrupt("return", _context4.sent); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); function post(_x2) { return _post.apply(this, arguments); } return post; }() }, { key: "upload", value: function () { var _upload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e) { return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this._reqClass.upload(e); case 2: return _context5.abrupt("return", _context5.sent); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); function upload(_x3) { return _upload.apply(this, arguments); } return upload; }() }, { key: "download", value: function () { var _download = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(e) { return _regenerator.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._reqClass.download(e); case 2: return _context6.abrupt("return", _context6.sent); case 3: case "end": return _context6.stop(); } } }, _callee6, this); })); function download(_x4) { return _download.apply(this, arguments); } return download; }() }, { key: "refreshAccessToken", value: function () { var _refreshAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() { var e, t; return _regenerator.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); _context7.prev = 1; _context7.next = 4; return this._refreshAccessTokenPromise; case 4: e = _context7.sent; _context7.next = 10; break; case 7: _context7.prev = 7; _context7.t0 = _context7["catch"](1); t = _context7.t0; case 10: if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) { _context7.next = 12; break; } throw t; case 12: return _context7.abrupt("return", e); case 13: case "end": return _context7.stop(); } } }, _callee7, this, [[1, 7]]); })); function refreshAccessToken() { return _refreshAccessToken2.apply(this, arguments); } return refreshAccessToken; }() }, { key: "_refreshAccessToken", value: function () { var _refreshAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { var _this$_cache$keys, e, t, n, s, r, i, o, a, _e12, _e13, _t7, _s8; return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, r = _this$_cache$keys.anonymousUuidKey; this._cache.removeStore(e), this._cache.removeStore(t); i = this._cache.getStore(n); if (i) { _context8.next = 5; break; } throw new ne({ message: "未登录CloudBase" }); case 5: o = { refresh_token: i }; _context8.next = 8; return this.request("auth.fetchAccessTokenWithRefreshToken", o); case 8: a = _context8.sent; if (!a.data.code) { _context8.next = 21; break; } _e12 = a.data.code; if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) { _context8.next = 20; break; } if (!(this._cache.getStore(s) === $e.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) { _context8.next = 19; break; } _e13 = this._cache.getStore(r); _t7 = this._cache.getStore(n); _context8.next = 17; return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 }); case 17: _s8 = _context8.sent; return _context8.abrupt("return", (this.setRefreshToken(_s8.refresh_token), this._refreshAccessToken())); case 19: De(Me), this._cache.removeStore(n); case 20: throw new ne({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) }); case 21: if (!a.data.access_token) { _context8.next = 23; break; } return _context8.abrupt("return", (De(Be), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire })); case 23: a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken()); case 24: case "end": return _context8.stop(); } } }, _callee8, this); })); function _refreshAccessToken() { return _refreshAccessToken3.apply(this, arguments); } return _refreshAccessToken; }() }, { key: "getAccessToken", value: function () { var _getAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { var _this$_cache$keys2, e, t, n, s, r, i; return _regenerator.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey; if (this._cache.getStore(n)) { _context9.next = 3; break; } throw new ne({ message: "refresh token不存在,登录状态异常" }); case 3: s = this._cache.getStore(e), r = this._cache.getStore(t), i = !0; _context9.t0 = this._shouldRefreshAccessTokenHook; if (!_context9.t0) { _context9.next = 9; break; } _context9.next = 8; return this._shouldRefreshAccessTokenHook(s, r); case 8: _context9.t0 = !_context9.sent; case 9: _context9.t1 = _context9.t0; if (!_context9.t1) { _context9.next = 12; break; } i = !1; case 12: return _context9.abrupt("return", (!s || !r || r < Date.now()) && i ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: r }); case 13: case "end": return _context9.stop(); } } }, _callee9, this); })); function getAccessToken() { return _getAccessToken.apply(this, arguments); } return getAccessToken; }() }, { key: "request", value: function () { var _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(e, t, n) { var s, r, i, _e14, o, _e15, _e16, a, c, u, h, l, d, p, f, g; return _regenerator.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: s = "x-tcb-trace_".concat(this.config.env); r = "application/x-www-form-urlencoded"; i = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t); if (!(-1 === We.indexOf(e))) { _context10.next = 10; break; } _e14 = this._cache.keys.refreshTokenKey; _context10.t0 = this._cache.getStore(_e14); if (!_context10.t0) { _context10.next = 10; break; } _context10.next = 9; return this.getAccessToken(); case 9: i.access_token = _context10.sent.accessToken; case 10: if ("storage.uploadFile" === e) { o = new FormData(); for (_e15 in o) { o.hasOwnProperty(_e15) && void 0 !== o[_e15] && o.append(_e15, i[_e15]); } r = "multipart/form-data"; } else { r = "application/json", o = {}; for (_e16 in i) { void 0 !== i[_e16] && (o[_e16] = i[_e16]); } } a = { headers: { "content-type": r } }; n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress); c = this._localCache.getStore(s); c && (a.headers["X-TCB-Trace"] = c); u = t.parse, h = t.inQuery, l = t.search; d = { env: this.config.env }; u && (d.parse = !0), h && (d = _objectSpread(_objectSpread({}, h), d)); p = function (e, t) { var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var s = /\?/.test(t); var r = ""; for (var _e17 in n) { "" === r ? !s && (t += "?") : r += "&", r += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17])); } return /^http(s)?\:\/\//.test(t += r) ? t : "".concat(e).concat(t); }(me, "//tcb-api.tencentcloudapi.com/web", d); l && (p += l); _context10.next = 22; return this.post(_objectSpread({ url: p, data: o }, a)); case 22: f = _context10.sent; g = f.header && f.header["x-tcb-trace"]; if (!(g && this._localCache.setStore(s, g), 200 !== Number(f.status) && 200 !== Number(f.statusCode) || !f.data)) { _context10.next = 26; break; } throw new ne({ code: "NETWORK_ERROR", message: "network request error" }); case 26: return _context10.abrupt("return", f); case 27: case "end": return _context10.stop(); } } }, _callee10, this); })); function request(_x5, _x6, _x7) { return _request.apply(this, arguments); } return request; }() }, { key: "send", value: function () { var _send = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) { var t, n, _n6, _args11 = arguments; return _regenerator.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: t = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {}; _context11.next = 3; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 3: n = _context11.sent; if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === We.indexOf(e))) { _context11.next = 13; break; } _context11.next = 7; return this.refreshAccessToken(); case 7: _context11.next = 9; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 9: _n6 = _context11.sent; if (!_n6.data.code) { _context11.next = 12; break; } throw new ne({ code: _n6.data.code, message: _n6.data.message }); case 12: return _context11.abrupt("return", _n6.data); case 13: if (!n.data.code) { _context11.next = 15; break; } throw new ne({ code: n.data.code, message: n.data.message }); case 15: return _context11.abrupt("return", n.data); case 16: case "end": return _context11.stop(); } } }, _callee11, this); })); function send(_x8) { return _send.apply(this, arguments); } return send; }() }, { key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys3 = this._cache.keys, t = _this$_cache$keys3.accessTokenKey, n = _this$_cache$keys3.accessTokenExpireKey, s = _this$_cache$keys3.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }]); return Ge; }(); var Ve = {}; function Ye(e) { return Ve[e]; } var Qe = /*#__PURE__*/function () { function Qe(e) { (0, _classCallCheck2.default)(this, Qe); this.config = e, this._cache = xe(e.env), this._request = Ye(e.env); } (0, _createClass2.default)(Qe, [{ key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys4 = this._cache.keys, t = _this$_cache$keys4.accessTokenKey, n = _this$_cache$keys4.accessTokenExpireKey, s = _this$_cache$keys4.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }, { key: "setAccessToken", value: function setAccessToken(e, t) { var _this$_cache$keys5 = this._cache.keys, n = _this$_cache$keys5.accessTokenKey, s = _this$_cache$keys5.accessTokenExpireKey; this._cache.setStore(n, e), this._cache.setStore(s, t); } }, { key: "refreshUserInfo", value: function () { var _refreshUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { var _yield$this$_request$, e; return _regenerator.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$ = _context12.sent; e = _yield$this$_request$.data; return _context12.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context12.stop(); } } }, _callee12, this); })); function refreshUserInfo() { return _refreshUserInfo.apply(this, arguments); } return refreshUserInfo; }() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e); } }]); return Qe; }(); var Xe = /*#__PURE__*/function () { function Xe(e) { (0, _classCallCheck2.default)(this, Xe); if (!e) throw new ne({ code: "PARAM_ERROR", message: "envId is not defined" }); this._envId = e, this._cache = xe(this._envId), this._request = Ye(this._envId), this.setUserInfo(); } (0, _createClass2.default)(Xe, [{ key: "linkWithTicket", value: function linkWithTicket(e) { if ("string" != typeof e) throw new ne({ code: "PARAM_ERROR", message: "ticket must be string" }); return this._request.send("auth.linkWithTicket", { ticket: e }); } }, { key: "linkWithRedirect", value: function linkWithRedirect(e) { e.signInWithRedirect(); } }, { key: "updatePassword", value: function updatePassword(e, t) { return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e }); } }, { key: "updateEmail", value: function updateEmail(e) { return this._request.send("auth.updateEmail", { newEmail: e }); } }, { key: "updateUsername", value: function updateUsername(e) { if ("string" != typeof e) throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); return this._request.send("auth.updateUsername", { username: e }); } }, { key: "getLinkedUidList", value: function () { var _getLinkedUidList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() { var _yield$this$_request$2, e, t, n; return _regenerator.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.next = 2; return this._request.send("auth.getLinkedUidList", {}); case 2: _yield$this$_request$2 = _context13.sent; e = _yield$this$_request$2.data; t = !1; n = e.users; return _context13.abrupt("return", (n.forEach(function (e) { e.wxOpenId && e.wxPublicId && (t = !0); }), { users: n, hasPrimaryUid: t })); case 7: case "end": return _context13.stop(); } } }, _callee13, this); })); function getLinkedUidList() { return _getLinkedUidList.apply(this, arguments); } return getLinkedUidList; }() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) { return this._request.send("auth.setPrimaryUid", { uid: e }); } }, { key: "unlink", value: function unlink(e) { return this._request.send("auth.unlink", { platform: e }); } }, { key: "update", value: function () { var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) { var t, n, s, r, i, o, _yield$this$_request$3, a; return _regenerator.default.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: t = e.nickName; n = e.gender; s = e.avatarUrl; r = e.province; i = e.country; o = e.city; _context14.next = 8; return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: r, country: i, city: o }); case 8: _yield$this$_request$3 = _context14.sent; a = _yield$this$_request$3.data; this.setLocalUserInfo(a); case 11: case "end": return _context14.stop(); } } }, _callee14, this); })); function update(_x9) { return _update.apply(this, arguments); } return update; }() }, { key: "refresh", value: function () { var _refresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() { var _yield$this$_request$4, e; return _regenerator.default.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$4 = _context15.sent; e = _yield$this$_request$4.data; return _context15.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context15.stop(); } } }, _callee15, this); })); function refresh() { return _refresh.apply(this, arguments); } return refresh; }() }, { key: "setUserInfo", value: function setUserInfo() { var _this8 = this; var e = this._cache.keys.userInfoKey, t = this._cache.getStore(e); ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) { _this8[e] = t[e]; }), this.location = { country: t.country, province: t.province, city: t.city }; } }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e), this.setUserInfo(); } }]); return Xe; }(); var Ze = /*#__PURE__*/function () { function Ze(e) { (0, _classCallCheck2.default)(this, Ze); if (!e) throw new ne({ code: "PARAM_ERROR", message: "envId is not defined" }); this._cache = xe(e); var _this$_cache$keys6 = this._cache.keys, t = _this$_cache$keys6.refreshTokenKey, n = _this$_cache$keys6.accessTokenKey, s = _this$_cache$keys6.accessTokenExpireKey, r = this._cache.getStore(t), i = this._cache.getStore(n), o = this._cache.getStore(s); this.credential = { refreshToken: r, accessToken: i, accessTokenExpire: o }, this.user = new Xe(e); } (0, _createClass2.default)(Ze, [{ key: "isAnonymousAuth", get: function get() { return this.loginType === $e.ANONYMOUS; } }, { key: "isCustomAuth", get: function get() { return this.loginType === $e.CUSTOM; } }, { key: "isWeixinAuth", get: function get() { return this.loginType === $e.WECHAT || this.loginType === $e.WECHAT_OPEN || this.loginType === $e.WECHAT_PUBLIC; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }]); return Ze; }(); var et = /*#__PURE__*/function (_Qe) { (0, _inherits2.default)(et, _Qe); var _super4 = _createSuper(et); function et() { (0, _classCallCheck2.default)(this, et); return _super4.apply(this, arguments); } (0, _createClass2.default)(et, [{ key: "signIn", value: function () { var _signIn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() { var _this$_cache$keys7, e, t, n, s, r, _e18; return _regenerator.default.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: this._cache.updatePersistence("local"); _this$_cache$keys7 = this._cache.keys; e = _this$_cache$keys7.anonymousUuidKey; t = _this$_cache$keys7.refreshTokenKey; n = this._cache.getStore(e) || void 0; s = this._cache.getStore(t) || void 0; _context16.next = 8; return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s }); case 8: r = _context16.sent; if (!(r.uuid && r.refresh_token)) { _context16.next = 20; break; } this._setAnonymousUUID(r.uuid); this.setRefreshToken(r.refresh_token); _context16.next = 14; return this._request.refreshAccessToken(); case 14: De(qe); De(Ke, { env: this.config.env, loginType: $e.ANONYMOUS, persistence: "local" }); _e18 = new Ze(this.config.env); _context16.next = 19; return _e18.user.refresh(); case 19: return _context16.abrupt("return", _e18); case 20: throw new ne({ message: "匿名登录失败" }); case 21: case "end": return _context16.stop(); } } }, _callee16, this); })); function signIn() { return _signIn.apply(this, arguments); } return signIn; }() }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) { var _this$_cache$keys8, t, n, s, r, i; return _regenerator.default.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _this$_cache$keys8 = this._cache.keys; t = _this$_cache$keys8.anonymousUuidKey; n = _this$_cache$keys8.refreshTokenKey; s = this._cache.getStore(t); r = this._cache.getStore(n); _context17.next = 7; return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: r, ticket: e }); case 7: i = _context17.sent; if (!i.refresh_token) { _context17.next = 16; break; } this._clearAnonymousUUID(); this.setRefreshToken(i.refresh_token); _context17.next = 13; return this._request.refreshAccessToken(); case 13: De(je, { env: this.config.env }); De(Ke, { loginType: $e.CUSTOM, persistence: "local" }); return _context17.abrupt("return", { credential: { refreshToken: i.refresh_token } }); case 16: throw new ne({ message: "匿名转化失败" }); case 17: case "end": return _context17.stop(); } } }, _callee17, this); })); function linkAndRetrieveDataWithTicket(_x10) { return _linkAndRetrieveDataWithTicket.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) { var _this$_cache$keys9 = this._cache.keys, t = _this$_cache$keys9.anonymousUuidKey, n = _this$_cache$keys9.loginTypeKey; this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, $e.ANONYMOUS); } }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() { this._cache.removeStore(this._cache.keys.anonymousUuidKey); } }]); return et; }(Qe); var tt = /*#__PURE__*/function (_Qe2) { (0, _inherits2.default)(tt, _Qe2); var _super5 = _createSuper(tt); function tt() { (0, _classCallCheck2.default)(this, tt); return _super5.apply(this, arguments); } (0, _createClass2.default)(tt, [{ key: "signIn", value: function () { var _signIn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(e) { var t, n; return _regenerator.default.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: if (!("string" != typeof e)) { _context18.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "ticket must be a string" }); case 2: t = this._cache.keys.refreshTokenKey; _context18.next = 5; return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" }); case 5: n = _context18.sent; if (!n.refresh_token) { _context18.next = 15; break; } this.setRefreshToken(n.refresh_token); _context18.next = 10; return this._request.refreshAccessToken(); case 10: De(qe); De(Ke, { env: this.config.env, loginType: $e.CUSTOM, persistence: this.config.persistence }); _context18.next = 14; return this.refreshUserInfo(); case 14: return _context18.abrupt("return", new Ze(this.config.env)); case 15: throw new ne({ message: "自定义登录失败" }); case 16: case "end": return _context18.stop(); } } }, _callee18, this); })); function signIn(_x11) { return _signIn2.apply(this, arguments); } return signIn; }() }]); return tt; }(Qe); var nt = /*#__PURE__*/function (_Qe3) { (0, _inherits2.default)(nt, _Qe3); var _super6 = _createSuper(nt); function nt() { (0, _classCallCheck2.default)(this, nt); return _super6.apply(this, arguments); } (0, _createClass2.default)(nt, [{ key: "signIn", value: function () { var _signIn3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: if (!("string" != typeof e)) { _context19.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "email must be a string" }); case 2: n = this._cache.keys.refreshTokenKey; _context19.next = 5; return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 5: s = _context19.sent; r = s.refresh_token; i = s.access_token; o = s.access_token_expire; if (!r) { _context19.next = 22; break; } this.setRefreshToken(r); if (!(i && o)) { _context19.next = 15; break; } this.setAccessToken(i, o); _context19.next = 17; break; case 15: _context19.next = 17; return this._request.refreshAccessToken(); case 17: _context19.next = 19; return this.refreshUserInfo(); case 19: De(qe); De(Ke, { env: this.config.env, loginType: $e.EMAIL, persistence: this.config.persistence }); return _context19.abrupt("return", new Ze(this.config.env)); case 22: throw s.code ? new ne({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new ne({ message: "邮箱登录失败" }); case 23: case "end": return _context19.stop(); } } }, _callee19, this); })); function signIn(_x12, _x13) { return _signIn3.apply(this, arguments); } return signIn; }() }, { key: "activate", value: function () { var _activate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(e) { return _regenerator.default.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: return _context20.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e })); case 1: case "end": return _context20.stop(); } } }, _callee20, this); })); function activate(_x14) { return _activate.apply(this, arguments); } return activate; }() }, { key: "resetPasswordWithToken", value: function () { var _resetPasswordWithToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) { return _regenerator.default.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: return _context21.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t })); case 1: case "end": return _context21.stop(); } } }, _callee21, this); })); function resetPasswordWithToken(_x15, _x16) { return _resetPasswordWithToken.apply(this, arguments); } return resetPasswordWithToken; }() }]); return nt; }(Qe); var st = /*#__PURE__*/function (_Qe4) { (0, _inherits2.default)(st, _Qe4); var _super7 = _createSuper(st); function st() { (0, _classCallCheck2.default)(this, st); return _super7.apply(this, arguments); } (0, _createClass2.default)(st, [{ key: "signIn", value: function () { var _signIn4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee22$(_context22) { while (1) { switch (_context22.prev = _context22.next) { case 0: if (!("string" != typeof e)) { _context22.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: "string" != typeof t && (t = "", console.warn("password is empty")); n = this._cache.keys.refreshTokenKey; _context22.next = 6; return this._request.send("auth.signIn", { loginType: $e.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 6: s = _context22.sent; r = s.refresh_token; i = s.access_token_expire; o = s.access_token; if (!r) { _context22.next = 23; break; } this.setRefreshToken(r); if (!(o && i)) { _context22.next = 16; break; } this.setAccessToken(o, i); _context22.next = 18; break; case 16: _context22.next = 18; return this._request.refreshAccessToken(); case 18: _context22.next = 20; return this.refreshUserInfo(); case 20: De(qe); De(Ke, { env: this.config.env, loginType: $e.USERNAME, persistence: this.config.persistence }); return _context22.abrupt("return", new Ze(this.config.env)); case 23: throw s.code ? new ne({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new ne({ message: "用户名密码登录失败" }); case 24: case "end": return _context22.stop(); } } }, _callee22, this); })); function signIn(_x17, _x18) { return _signIn4.apply(this, arguments); } return signIn; }() }]); return st; }(Qe); var rt = /*#__PURE__*/function () { function rt(e) { (0, _classCallCheck2.default)(this, rt); this.config = e, this._cache = xe(e.env), this._request = Ye(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), Ne(Ke, this._onLoginTypeChanged); } (0, _createClass2.default)(rt, [{ key: "currentUser", get: function get() { var e = this.hasLoginState(); return e && e.user || null; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }, { key: "anonymousAuthProvider", value: function anonymousAuthProvider() { return new et(this.config); } }, { key: "customAuthProvider", value: function customAuthProvider() { return new tt(this.config); } }, { key: "emailAuthProvider", value: function emailAuthProvider() { return new nt(this.config); } }, { key: "usernameAuthProvider", value: function usernameAuthProvider() { return new st(this.config); } }, { key: "signInAnonymously", value: function () { var _signInAnonymously = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() { return _regenerator.default.wrap(function _callee23$(_context23) { while (1) { switch (_context23.prev = _context23.next) { case 0: return _context23.abrupt("return", new et(this.config).signIn()); case 1: case "end": return _context23.stop(); } } }, _callee23, this); })); function signInAnonymously() { return _signInAnonymously.apply(this, arguments); } return signInAnonymously; }() }, { key: "signInWithEmailAndPassword", value: function () { var _signInWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) { return _regenerator.default.wrap(function _callee24$(_context24) { while (1) { switch (_context24.prev = _context24.next) { case 0: return _context24.abrupt("return", new nt(this.config).signIn(e, t)); case 1: case "end": return _context24.stop(); } } }, _callee24, this); })); function signInWithEmailAndPassword(_x19, _x20) { return _signInWithEmailAndPassword.apply(this, arguments); } return signInWithEmailAndPassword; }() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) { return new st(this.config).signIn(e, t); } }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) { return _regenerator.default.wrap(function _callee25$(_context25) { while (1) { switch (_context25.prev = _context25.next) { case 0: this._anonymousAuthProvider || (this._anonymousAuthProvider = new et(this.config)), Ne(je, this._onAnonymousConverted); _context25.next = 3; return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e); case 3: return _context25.abrupt("return", _context25.sent); case 4: case "end": return _context25.stop(); } } }, _callee25, this); })); function linkAndRetrieveDataWithTicket(_x21) { return _linkAndRetrieveDataWithTicket2.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "signOut", value: function () { var _signOut = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() { var _this$_cache$keys10, e, t, n, s, r; return _regenerator.default.wrap(function _callee26$(_context26) { while (1) { switch (_context26.prev = _context26.next) { case 0: if (!(this.loginType === $e.ANONYMOUS)) { _context26.next = 2; break; } throw new ne({ message: "匿名用户不支持登出操作" }); case 2: _this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e); if (s) { _context26.next = 5; break; } return _context26.abrupt("return"); case 5: _context26.next = 7; return this._request.send("auth.logout", { refresh_token: s }); case 7: r = _context26.sent; return _context26.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), De(qe), De(Ke, { env: this.config.env, loginType: $e.NULL, persistence: this.config.persistence }), r)); case 9: case "end": return _context26.stop(); } } }, _callee26, this); })); function signOut() { return _signOut.apply(this, arguments); } return signOut; }() }, { key: "signUpWithEmailAndPassword", value: function () { var _signUpWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(e, t) { return _regenerator.default.wrap(function _callee27$(_context27) { while (1) { switch (_context27.prev = _context27.next) { case 0: return _context27.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t })); case 1: case "end": return _context27.stop(); } } }, _callee27, this); })); function signUpWithEmailAndPassword(_x22, _x23) { return _signUpWithEmailAndPassword.apply(this, arguments); } return signUpWithEmailAndPassword; }() }, { key: "sendPasswordResetEmail", value: function () { var _sendPasswordResetEmail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) { return _regenerator.default.wrap(function _callee28$(_context28) { while (1) { switch (_context28.prev = _context28.next) { case 0: return _context28.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e })); case 1: case "end": return _context28.stop(); } } }, _callee28, this); })); function sendPasswordResetEmail(_x24) { return _sendPasswordResetEmail.apply(this, arguments); } return sendPasswordResetEmail; }() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) { var _this9 = this; Ne(qe, function () { var t = _this9.hasLoginState(); e.call(_this9, t); }); var t = this.hasLoginState(); e.call(this, t); } }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) { Ne(Me, e.bind(this)); } }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) { Ne(Be, e.bind(this)); } }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) { Ne(je, e.bind(this)); } }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) { var _this10 = this; Ne(Ke, function () { var t = _this10.hasLoginState(); e.call(_this10, t); }); } }, { key: "getAccessToken", value: function () { var _getAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() { return _regenerator.default.wrap(function _callee29$(_context29) { while (1) { switch (_context29.prev = _context29.next) { case 0: _context29.next = 2; return this._request.getAccessToken(); case 2: _context29.t0 = _context29.sent.accessToken; _context29.t1 = this.config.env; return _context29.abrupt("return", { accessToken: _context29.t0, env: _context29.t1 }); case 5: case "end": return _context29.stop(); } } }, _callee29, this); })); function getAccessToken() { return _getAccessToken2.apply(this, arguments); } return getAccessToken; }() }, { key: "hasLoginState", value: function hasLoginState() { var e = this._cache.keys.refreshTokenKey; return this._cache.getStore(e) ? new Ze(this.config.env) : null; } }, { key: "isUsernameRegistered", value: function () { var _isUsernameRegistered = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(e) { var _yield$this$_request$5, t; return _regenerator.default.wrap(function _callee30$(_context30) { while (1) { switch (_context30.prev = _context30.next) { case 0: if (!("string" != typeof e)) { _context30.next = 2; break; } throw new ne({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: _context30.next = 4; return this._request.send("auth.isUsernameRegistered", { username: e }); case 4: _yield$this$_request$5 = _context30.sent; t = _yield$this$_request$5.data; return _context30.abrupt("return", t && t.isRegistered); case 7: case "end": return _context30.stop(); } } }, _callee30, this); })); function isUsernameRegistered(_x25) { return _isUsernameRegistered.apply(this, arguments); } return isUsernameRegistered; }() }, { key: "getLoginState", value: function getLoginState() { return Promise.resolve(this.hasLoginState()); } }, { key: "signInWithTicket", value: function () { var _signInWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(e) { return _regenerator.default.wrap(function _callee31$(_context31) { while (1) { switch (_context31.prev = _context31.next) { case 0: return _context31.abrupt("return", new tt(this.config).signIn(e)); case 1: case "end": return _context31.stop(); } } }, _callee31, this); })); function signInWithTicket(_x26) { return _signInWithTicket.apply(this, arguments); } return signInWithTicket; }() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) { this._request._shouldRefreshAccessTokenHook = e.bind(this); } }, { key: "getUserInfo", value: function getUserInfo() { return this._request.send("auth.getUserInfo", {}).then(function (e) { return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId }); }); } }, { key: "getAuthHeader", value: function getAuthHeader() { var _this$_cache$keys11 = this._cache.keys, e = _this$_cache$keys11.refreshTokenKey, t = _this$_cache$keys11.accessTokenKey, n = this._cache.getStore(e); return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n }; } }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) { var t = e.data.env; t === this.config.env && this._cache.updatePersistence(this.config.persistence); } }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) { var _e$data = e.data, t = _e$data.loginType, n = _e$data.persistence, s = _e$data.env; s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t)); } }]); return rt; }(); var it = function it(e, t) { t = t || we(); var n = Ye(this.config.env), s = e.cloudPath, r = e.filePath, i = e.onUploadProgress, _e$fileType = e.fileType, o = _e$fileType === void 0 ? "image" : _e$fileType; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { var _e$data2 = e.data, a = _e$data2.url, c = _e$data2.authorization, u = _e$data2.token, h = _e$data2.fileId, l = _e$data2.cosFileId, d = e.requestId, p = { key: s, signature: c, "x-cos-meta-fileid": l, success_action_status: "201", "x-cos-security-token": u }; n.upload({ url: a, data: p, file: r, name: s, fileType: o, onUploadProgress: i }).then(function (e) { 201 === e.statusCode ? t(null, { fileID: h, requestId: d }) : t(new ne({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) })); }).catch(function (e) { t(e); }); }).catch(function (e) { t(e); }), t.promise; }, ot = function ot(e, t) { t = t || we(); var n = Ye(this.config.env), s = e.cloudPath; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { t(null, e); }).catch(function (e) { t(e); }), t.promise; }, at = function at(_ref7, t) { var e = _ref7.fileList; if (t = t || we(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; var _iterator3 = _createForOfIteratorHelper(e), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var _t8 = _step3.value; if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } var n = { fileid_list: e }; return Ye(this.config.env).send("storage.batchDeleteFile", n).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ct = function ct(_ref8, t) { var e = _ref8.fileList; t = t || we(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); var n = []; var _iterator4 = _createForOfIteratorHelper(e), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var _s9 = _step4.value; "object" == (0, _typeof2.default)(_s9) ? (_s9.hasOwnProperty("fileID") && _s9.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ fileid: _s9.fileID, max_age: _s9.maxAge })) : "string" == typeof _s9 ? n.push({ fileid: _s9 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" }); } } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } var s = { file_list: n }; return Ye(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ut = /*#__PURE__*/function () { var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(_ref9, t) { var e, n, s, r; return _regenerator.default.wrap(function _callee32$(_context32) { while (1) { switch (_context32.prev = _context32.next) { case 0: e = _ref9.fileID; _context32.next = 3; return ct.call(this, { fileList: [{ fileID: e, maxAge: 600 }] }); case 3: n = _context32.sent.fileList[0]; if (!("SUCCESS" !== n.code)) { _context32.next = 6; break; } return _context32.abrupt("return", t ? t(n) : new Promise(function (e) { e(n); })); case 6: s = Ye(this.config.env); r = n.download_url; if (!(r = encodeURI(r), !t)) { _context32.next = 10; break; } return _context32.abrupt("return", s.download({ url: r })); case 10: _context32.t0 = t; _context32.next = 13; return s.download({ url: r }); case 13: _context32.t1 = _context32.sent; (0, _context32.t0)(_context32.t1); case 15: case "end": return _context32.stop(); } } }, _callee32, this); })); return function ut(_x27, _x28) { return _ref10.apply(this, arguments); }; }(), ht = function ht(_ref11, i) { var e = _ref11.name, t = _ref11.data, n = _ref11.query, s = _ref11.parse, r = _ref11.search; var o = i || we(); var a; try { a = t ? JSON.stringify(t) : ""; } catch (e) { return Promise.reject(e); } if (!e) return Promise.reject(new ne({ code: "PARAM_ERROR", message: "函数名不能为空" })); var c = { inQuery: n, parse: s, search: r, function_name: e, request_data: a }; return Ye(this.config.env).send("functions.invokeFunction", c).then(function (e) { if (e.code) o(null, e);else { var _t9 = e.data.response_data; if (s) o(null, { result: _t9, requestId: e.requestId });else try { _t9 = JSON.parse(e.data.response_data), o(null, { result: _t9, requestId: e.requestId }); } catch (e) { o(new ne({ message: "response data must be json" })); } } return o.promise; }).catch(function (e) { o(e); }), o.promise; }, lt = { timeout: 15e3, persistence: "session" }, dt = {}; var pt = /*#__PURE__*/function () { function pt(e) { (0, _classCallCheck2.default)(this, pt); this.config = e || this.config, this.authObj = void 0; } (0, _createClass2.default)(pt, [{ key: "init", value: function init(e) { switch (ke.adapter || (this.requestClient = new ke.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, lt), e), !0) { case this.config.timeout > 6e5: console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; break; case this.config.timeout < 100: console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; } return new pt(this.config); } }, { key: "auth", value: function auth() { var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref12.persistence; if (this.authObj) return this.authObj; var t = e || ke.adapter.primaryStorage || lt.persistence; var n; return t !== this.config.persistence && (this.config.persistence = t), function (e) { var t = e.env; Ee[t] = new Ae(e), Oe[t] = new Ae(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" })); }(this.config), n = this.config, Ve[n.env] = new Ge(n), this.authObj = new rt(this.config), this.authObj; } }, { key: "on", value: function on(e, t) { return Ne.apply(this, [e, t]); } }, { key: "off", value: function off(e, t) { return Fe.apply(this, [e, t]); } }, { key: "callFunction", value: function callFunction(e, t) { return ht.apply(this, [e, t]); } }, { key: "deleteFile", value: function deleteFile(e, t) { return at.apply(this, [e, t]); } }, { key: "getTempFileURL", value: function getTempFileURL(e, t) { return ct.apply(this, [e, t]); } }, { key: "downloadFile", value: function downloadFile(e, t) { return ut.apply(this, [e, t]); } }, { key: "uploadFile", value: function uploadFile(e, t) { return it.apply(this, [e, t]); } }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) { return ot.apply(this, [e, t]); } }, { key: "registerExtension", value: function registerExtension(e) { dt[e.name] = e; } }, { key: "invokeExtension", value: function () { var _invokeExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(e, t) { var n; return _regenerator.default.wrap(function _callee33$(_context33) { while (1) { switch (_context33.prev = _context33.next) { case 0: n = dt[e]; if (n) { _context33.next = 3; break; } throw new ne({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") }); case 3: _context33.next = 5; return n.invoke(t, this); case 5: return _context33.abrupt("return", _context33.sent); case 6: case "end": return _context33.stop(); } } }, _callee33, this); })); function invokeExtension(_x29, _x30) { return _invokeExtension.apply(this, arguments); } return invokeExtension; }() }, { key: "useAdapters", value: function useAdapters(e) { var _ref13 = be(e) || {}, t = _ref13.adapter, n = _ref13.runtime; t && (ke.adapter = t), n && (ke.runtime = n); } }]); return pt; }(); var ft = new pt(); function gt(e, t, n) { void 0 === n && (n = {}); var s = /\?/.test(t), r = ""; for (var i in n) { "" === r ? !s && (t += "?") : r += "&", r += i + "=" + encodeURIComponent(n[i]); } return /^http(s)?:\/\//.test(t += r) ? t : "" + e + t; } var mt = /*#__PURE__*/function () { function mt() { (0, _classCallCheck2.default)(this, mt); } (0, _createClass2.default)(mt, [{ key: "post", value: function post(e) { var t = e.url, n = e.data, s = e.headers; return new Promise(function (e, r) { se.request({ url: gt("https:", t), data: n, method: "POST", header: s, success: function success(t) { e(t); }, fail: function fail(e) { r(e); } }); }); } }, { key: "upload", value: function upload(e) { return new Promise(function (t, n) { var s = e.url, r = e.file, i = e.data, o = e.headers, a = e.fileType, c = se.uploadFile({ url: gt("https:", s), name: "file", formData: Object.assign({}, i), filePath: r, fileType: a, header: o, success: function success(e) { var n = { statusCode: e.statusCode, data: e.data || {} }; 200 === e.statusCode && i.success_action_status && (n.statusCode = parseInt(i.success_action_status, 10)), t(n); }, fail: function fail(e) { n(new Error(e.errMsg || "uploadFile:fail")); } }); "function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) { e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend }); }); }); } }]); return mt; }(); var yt = { setItem: function setItem(e, t) { se.setStorageSync(e, t); }, getItem: function getItem(e) { return se.getStorageSync(e); }, removeItem: function removeItem(e) { se.removeStorageSync(e); }, clear: function clear() { se.clearStorageSync(); } }; var _t = { genAdapter: function genAdapter() { return { root: {}, reqClass: mt, localStorage: yt, primaryStorage: "local" }; }, isMatch: function isMatch() { return !0; }, runtime: "uni_app" }; ft.useAdapters(_t); var wt = ft, vt = wt.init; wt.init = function (e) { e.env = e.spaceId; var t = vt.call(this, e); t.config.provider = "tencent", t.config.spaceId = e.spaceId; var n = t.auth; return t.auth = function (e) { var t = n.call(this, e); return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) { var n; t[e] = (n = t[e], function (e) { e = e || {}; var _te = te(e), t = _te.success, s = _te.fail, r = _te.complete; if (!(t || s || r)) return n.call(this, e); n.call(this, e).then(function (e) { t && t(e), r && r(e); }, function (e) { s && s(e), r && r(e); }); }).bind(t); }), t; }, t.customAuth = t.auth, t; }; var It = wt; var St = /*#__PURE__*/function (_fe) { (0, _inherits2.default)(St, _fe); var _super8 = _createSuper(St); function St() { (0, _classCallCheck2.default)(this, St); return _super8.apply(this, arguments); } (0, _createClass2.default)(St, [{ key: "getAccessToken", value: function getAccessToken() { var _this11 = this; return new Promise(function (e, t) { var n = "Anonymous_Access_token"; _this11.setAccessToken(n), e(n); }); } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret); var r = he(); s["x-client-info"] = encodeURIComponent(JSON.stringify(r)); var _re = re(), i = _re.token; return s["x-client-token"] = i, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) }; } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref14) { var _this12 = this; var e = _ref14.url, t = _ref14.formData, n = _ref14.name, s = _ref14.filePath, r = _ref14.fileType, i = _ref14.onUploadProgress; return new Promise(function (o, a) { var c = _this12.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new ne({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "uploadFile", value: function uploadFile(_ref15) { var _this13 = this; var e = _ref15.filePath, t = _ref15.cloudPath, _ref15$fileType = _ref15.fileType, n = _ref15$fileType === void 0 ? "image" : _ref15$fileType, s = _ref15.onUploadProgress; if (!t) throw new ne({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); var r; return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) { var _t$result = t.result, i = _t$result.url, o = _t$result.formData, a = _t$result.name; r = t.result.fileUrl; var c = { url: i, formData: o, name: a, filePath: e, fileType: n }; return _this13.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s })); }).then(function () { return _this13.reportOSSUpload({ cloudPath: t }); }).then(function (t) { return new Promise(function (n, s) { t.success ? n({ success: !0, filePath: e, fileID: r }) : s(new ne({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }); }); } }, { key: "deleteFile", value: function deleteFile(_ref16) { var e = _ref16.fileList; var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) }; return this.request(this.setupRequest(t)).then(function (e) { if (e.success) return e.result; throw new ne({ code: "DELETE_FILE_FAILED", message: "删除文件失败" }); }); } }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref17.fileList; if (!Array.isArray(e) || 0 === e.length) throw new ne({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) }; return this.request(this.setupRequest(t)).then(function (e) { if (e.success) return { fileList: e.result.fileList.map(function (e) { return { fileID: e.fileID, tempFileURL: e.tempFileURL }; }) }; throw new ne({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" }); }); } }]); return St; }(fe); var bt = { init: function init(e) { var t = new St(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }; function kt(_ref18) { var e = _ref18.data; var t; t = he(); var n = JSON.parse(JSON.stringify(e || {})); if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) { var _re2 = re(), _e19 = _re2.token; _e19 && (n.uniIdToken = _e19); } return n; } function Ct() { return _Ct.apply(this, arguments); } function _Ct() { _Ct = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee54() { var _this26 = this; var _ref60, e, t, _this$__dev__, n, s, r, i, o, a, _args6 = arguments; return _regenerator.default.wrap(function _callee54$(_context54) { while (1) { switch (_context54.prev = _context54.next) { case 0: _ref60 = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, e = _ref60.name, t = _ref60.data; _context54.next = 3; return this.__dev__.initLocalNetwork(); case 3: _this$__dev__ = this.__dev__, n = _this$__dev__.localAddress, s = _this$__dev__.localPort, r = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider], i = this.config.spaceId, o = "http://".concat(n, ":").concat(s, "/system/check-function"), a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e); return _context54.abrupt("return", new Promise(function (t, n) { se.request({ method: "POST", url: o, data: { name: e, platform: P, provider: r, spaceId: i }, timeout: 3e3, success: function success(e) { t(e); }, fail: function fail() { t({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } }); } }); }).then(function () { var _ref61 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref61.data; var _ref62 = e || {}, t = _ref62.code, n = _ref62.message; return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" }; }).then(function (_ref63) { var n = _ref63.code, s = _ref63.message; if (0 !== n) { switch (n) { case "MODULE_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "FUNCTION_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "ACTION_ENCRYPTED": console.error(s || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); break; case "NETWORK_ERROR": { var _e31 = "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"; throw console.error(_e31), new Error(_e31); } case "SWITCH_TO_CLOUD": break; default: { var _e32 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5"); throw console.error(_e32), new Error(_e32); } } return _this26._callCloudFunction({ name: e, data: t }); } return new Promise(function (e, n) { var s = kt.call(_this26, { data: t }); se.request({ method: "POST", url: a, data: { provider: r, platform: P, param: s }, success: function success() { var _ref64 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref64.statusCode, s = _ref64.data; return !t || t >= 400 ? n(new ne({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s }); }, fail: function fail(e) { n(new ne({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" })); } }); }); })); case 5: case "end": return _context54.stop(); } } }, _callee54, this); })); return _Ct.apply(this, arguments); } var Tt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; var Pt = /[\\^$.*+?()[\]{}|]/g, At = RegExp(Pt.source); function Et(e, t, n) { return e.replace(new RegExp((s = t) && At.test(s) ? s.replace(Pt, "\\$&") : s, "g"), n); var s; } var Ot = "none", xt = "request", Rt = "response", Ut = "both"; var Lt = /*#__PURE__*/function () { function Lt() { var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref19.secretType, t = _ref19.uniCloudIns; (0, _classCallCheck2.default)(this, Lt); this.clientType = "", this.secretType = e || Ot, this.uniCloudIns = t; var _this$uniCloudIns$con = this.uniCloudIns.config, n = _this$uniCloudIns$con.provider, s = _this$uniCloudIns$con.spaceId; var r; this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, U("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", r.config.spaceId))); } (0, _createClass2.default)(Lt, [{ key: "getSystemInfo", value: function getSystemInfo() { return this._systemInfo || (this._systemInfo = ce()), this._systemInfo; } }, { key: "appId", get: function get() { return this.getSystemInfo().appId; } }, { key: "deviceId", get: function get() { return this.getSystemInfo().deviceId; } }, { key: "encryptData", value: function () { var _encryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(e) { return _regenerator.default.wrap(function _callee34$(_context34) { while (1) { switch (_context34.prev = _context34.next) { case 0: return _context34.abrupt("return", this.secretType === Ot ? e : this.platformEncryptData(e)); case 1: case "end": return _context34.stop(); } } }, _callee34, this); })); function encryptData(_x31) { return _encryptData.apply(this, arguments); } return encryptData; }() }, { key: "decryptResult", value: function () { var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(e) { var _ref20, t, n; return _regenerator.default.wrap(function _callee35$(_context35) { while (1) { switch (_context35.prev = _context35.next) { case 0: if (!(this.secretType === Ot)) { _context35.next = 2; break; } return _context35.abrupt("return", e); case 2: _ref20 = e || {}, t = _ref20.errCode, n = _ref20.content; return _context35.abrupt("return", t || !n ? e : this.secretType === xt ? n : this.platformDecryptResult(e)); case 4: case "end": return _context35.stop(); } } }, _callee35, this); })); function decryptResult(_x32) { return _decryptResult.apply(this, arguments); } return decryptResult; }() }, { key: "wrapVerifyClientCallFunction", value: function wrapVerifyClientCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36() { var _ref22, n, _ref22$data, s, r, _args36 = arguments; return _regenerator.default.wrap(function _callee36$(_context36) { while (1) { switch (_context36.prev = _context36.next) { case 0: _ref22 = _args36.length > 0 && _args36[0] !== undefined ? _args36[0] : {}, n = _ref22.name, _ref22$data = _ref22.data, s = _ref22$data === void 0 ? {} : _ref22$data; _context36.next = 3; return t.prepare(); case 3: _context36.next = 5; return t.platformGetSignOption(); case 5: (s = JSON.parse(JSON.stringify(s)))._uniCloudOptions = _context36.sent; _context36.next = 8; return e({ name: n, data: s }); case 8: r = _context36.sent; _context36.t0 = t.isClientKeyNotFound(r); if (!_context36.t0) { _context36.next = 19; break; } _context36.next = 13; return t.prepare({ forceUpdate: !0 }); case 13: _context36.next = 15; return t.platformGetSignOption(); case 15: s._uniCloudOptions = _context36.sent; _context36.next = 18; return e({ name: n, data: s }); case 18: r = _context36.sent; case 19: return _context36.abrupt("return", r); case 20: case "end": return _context36.stop(); } } }, _callee36); })); } }, { key: "wrapEncryptDataCallFunction", value: function wrapEncryptDataCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37() { var _ref24, n, _ref24$data, s, r, i, _r3, _args37 = arguments; return _regenerator.default.wrap(function _callee37$(_context37) { while (1) { switch (_context37.prev = _context37.next) { case 0: _ref24 = _args37.length > 0 && _args37[0] !== undefined ? _args37[0] : {}, n = _ref24.name, _ref24$data = _ref24.data, s = _ref24$data === void 0 ? {} : _ref24$data; _context37.next = 3; return t.prepare(); case 3: _context37.next = 5; return t.encryptData(s); case 5: r = _context37.sent; _context37.next = 8; return e({ name: n, data: r }); case 8: i = _context37.sent; if (!t.isClientKeyNotFound(i)) { _context37.next = 21; break; } _context37.next = 12; return t.prepare({ forceUpdate: !0 }); case 12: _context37.next = 14; return t.encryptData(s); case 14: _r3 = _context37.sent; _context37.next = 17; return t.platformGetSignOption(); case 17: s._uniCloudOptions = _context37.sent; _context37.next = 20; return e({ name: n, data: _r3 }); case 20: i = _context37.sent; case 21: _context37.next = 23; return t.decryptResult(i.result); case 23: i.result = _context37.sent; return _context37.abrupt("return", i); case 25: case "end": return _context37.stop(); } } }, _callee37); })); } }]); return Lt; }(); /*! MIT License. Copyright 2015-2018 Richard Moore . See LICENSE.txt. */ function Nt(e) { return parseInt(e) === e; } function Dt(e) { if (!Nt(e.length)) return !1; for (var t = 0; t < e.length; t++) { if (!Nt(e[t]) || e[t] < 0 || e[t] > 255) return !1; } return !0; } function Ft(e, t) { if (e.buffer && "Uint8Array" === e.name) return t && (e = e.slice ? e.slice() : Array.prototype.slice.call(e)), e; if (Array.isArray(e)) { if (!Dt(e)) throw new Error("Array contains invalid value: " + e); return new Uint8Array(e); } if (Nt(e.length) && Dt(e)) return new Uint8Array(e); throw new Error("unsupported array-like object"); } function qt(e) { return new Uint8Array(e); } function Mt(e, t, n, s, r) { null == s && null == r || (e = e.slice ? e.slice(s, r) : Array.prototype.slice.call(e, s, r)), t.set(e, n); } var Kt, jt = { toBytes: function toBytes(e) { var t = [], n = 0; for (e = encodeURI(e); n < e.length;) { var s = e.charCodeAt(n++); 37 === s ? (t.push(parseInt(e.substr(n, 2), 16)), n += 2) : t.push(s); } return Ft(t); }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length;) { var s = e[n]; s < 128 ? (t.push(String.fromCharCode(s)), n++) : s > 191 && s < 224 ? (t.push(String.fromCharCode((31 & s) << 6 | 63 & e[n + 1])), n += 2) : (t.push(String.fromCharCode((15 & s) << 12 | (63 & e[n + 1]) << 6 | 63 & e[n + 2])), n += 3); } return t.join(""); } }, Bt = (Kt = "0123456789abcdef", { toBytes: function toBytes(e) { for (var t = [], n = 0; n < e.length; n += 2) { t.push(parseInt(e.substr(n, 2), 16)); } return t; }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length; n++) { var s = e[n]; t.push(Kt[(240 & s) >> 4] + Kt[15 & s]); } return t.join(""); } }), $t = { 16: 10, 24: 12, 32: 14 }, Wt = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], zt = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], Jt = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], Ht = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], Gt = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], Vt = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], Yt = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], Qt = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], Xt = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], Zt = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], en = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], tn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], nn = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], sn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], rn = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; function on(e) { for (var t = [], n = 0; n < e.length; n += 4) { t.push(e[n] << 24 | e[n + 1] << 16 | e[n + 2] << 8 | e[n + 3]); } return t; } var an = /*#__PURE__*/function () { function an(e) { (0, _classCallCheck2.default)(this, an); if (!(this instanceof an)) throw Error("AES must be instanitated with `new`"); Object.defineProperty(this, "key", { value: Ft(e, !0) }), this._prepare(); } (0, _createClass2.default)(an, [{ key: "_prepare", value: function _prepare() { var e = $t[this.key.length]; if (null == e) throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); this._Ke = [], this._Kd = []; for (var t = 0; t <= e; t++) { this._Ke.push([0, 0, 0, 0]), this._Kd.push([0, 0, 0, 0]); } var n, s = 4 * (e + 1), r = this.key.length / 4, i = on(this.key); for (t = 0; t < r; t++) { n = t >> 2, this._Ke[n][t % 4] = i[t], this._Kd[e - n][t % 4] = i[t]; } for (var o, a = 0, c = r; c < s;) { if (o = i[r - 1], i[0] ^= zt[o >> 16 & 255] << 24 ^ zt[o >> 8 & 255] << 16 ^ zt[255 & o] << 8 ^ zt[o >> 24 & 255] ^ Wt[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { i[t] ^= i[t - 1]; } else { for (t = 1; t < r / 2; t++) { i[t] ^= i[t - 1]; } o = i[r / 2 - 1], i[r / 2] ^= zt[255 & o] ^ zt[o >> 8 & 255] << 8 ^ zt[o >> 16 & 255] << 16 ^ zt[o >> 24 & 255] << 24; for (t = r / 2 + 1; t < r; t++) { i[t] ^= i[t - 1]; } } for (t = 0; t < r && c < s;) { u = c >> 2, h = c % 4, this._Ke[u][h] = i[t], this._Kd[e - u][h] = i[t++], c++; } } for (var u = 1; u < e; u++) { for (var h = 0; h < 4; h++) { o = this._Kd[u][h], this._Kd[u][h] = tn[o >> 24 & 255] ^ nn[o >> 16 & 255] ^ sn[o >> 8 & 255] ^ rn[255 & o]; } } } }, { key: "encrypt", value: function encrypt(e) { if (16 != e.length) throw new Error("invalid plaintext size (must be 16 bytes)"); for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = on(e), r = 0; r < 4; r++) { s[r] ^= this._Ke[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = Ht[s[r] >> 24 & 255] ^ Gt[s[(r + 1) % 4] >> 16 & 255] ^ Vt[s[(r + 2) % 4] >> 8 & 255] ^ Yt[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; } s = n.slice(); } var o, a = qt(16); for (r = 0; r < 4; r++) { o = this._Ke[t][r], a[4 * r] = 255 & (zt[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (zt[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (zt[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (zt[255 & s[(r + 3) % 4]] ^ o); } return a; } }, { key: "decrypt", value: function decrypt(e) { if (16 != e.length) throw new Error("invalid ciphertext size (must be 16 bytes)"); for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = on(e), r = 0; r < 4; r++) { s[r] ^= this._Kd[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = Qt[s[r] >> 24 & 255] ^ Xt[s[(r + 3) % 4] >> 16 & 255] ^ Zt[s[(r + 2) % 4] >> 8 & 255] ^ en[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; } s = n.slice(); } var o, a = qt(16); for (r = 0; r < 4; r++) { o = this._Kd[t][r], a[4 * r] = 255 & (Jt[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (Jt[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (Jt[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (Jt[255 & s[(r + 1) % 4]] ^ o); } return a; } }]); return an; }(); var cn = /*#__PURE__*/function () { function cn(e) { (0, _classCallCheck2.default)(this, cn); if (!(this instanceof cn)) throw Error("AES must be instanitated with `new`"); this.description = "Electronic Code Block", this.name = "ecb", this._aes = new an(e); } (0, _createClass2.default)(cn, [{ key: "encrypt", value: function encrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), Mt(n = this._aes.encrypt(n), t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), Mt(n = this._aes.decrypt(n), t, s); } return t; } }]); return cn; }(); var un = /*#__PURE__*/function () { function un(e, t) { (0, _classCallCheck2.default)(this, un); if (!(this instanceof un)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Block Chaining", this.name = "cbc", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = qt(16); this._lastCipherblock = Ft(t, !0), this._aes = new an(e); } (0, _createClass2.default)(un, [{ key: "encrypt", value: function encrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16); for (var r = 0; r < 16; r++) { n[r] ^= this._lastCipherblock[r]; } this._lastCipherblock = this._aes.encrypt(n), Mt(this._lastCipherblock, t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Ft(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = qt(e.length), n = qt(16), s = 0; s < e.length; s += 16) { Mt(e, n, 0, s, s + 16), n = this._aes.decrypt(n); for (var r = 0; r < 16; r++) { t[s + r] = n[r] ^ this._lastCipherblock[r]; } Mt(e, this._lastCipherblock, 0, s, s + 16); } return t; } }]); return un; }(); var hn = /*#__PURE__*/function () { function hn(e, t, n) { (0, _classCallCheck2.default)(this, hn); if (!(this instanceof hn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Feedback", this.name = "cfb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 size)"); } else t = qt(16); n || (n = 1), this.segmentSize = n, this._shiftRegister = Ft(t, !0), this._aes = new an(e); } (0, _createClass2.default)(hn, [{ key: "encrypt", value: function encrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid plaintext size (must be segmentSize bytes)"); for (var t, n = Ft(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Mt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Mt(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }, { key: "decrypt", value: function decrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid ciphertext size (must be segmentSize bytes)"); for (var t, n = Ft(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Mt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Mt(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }]); return hn; }(); var ln = /*#__PURE__*/function () { function ln(e, t) { (0, _classCallCheck2.default)(this, ln); if (!(this instanceof ln)) throw Error("AES must be instanitated with `new`"); if (this.description = "Output Feedback", this.name = "ofb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = qt(16); this._lastPrecipher = Ft(t, !0), this._lastPrecipherIndex = 16, this._aes = new an(e); } (0, _createClass2.default)(ln, [{ key: "encrypt", value: function encrypt(e) { for (var t = Ft(e, !0), n = 0; n < t.length; n++) { 16 === this._lastPrecipherIndex && (this._lastPrecipher = this._aes.encrypt(this._lastPrecipher), this._lastPrecipherIndex = 0), t[n] ^= this._lastPrecipher[this._lastPrecipherIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return ln; }(); var dn = /*#__PURE__*/function () { function dn(e) { (0, _classCallCheck2.default)(this, dn); if (!(this instanceof dn)) throw Error("Counter must be instanitated with `new`"); 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = qt(16), this.setValue(e)) : this.setBytes(e); } (0, _createClass2.default)(dn, [{ key: "setValue", value: function setValue(e) { if ("number" != typeof e || parseInt(e) != e) throw new Error("invalid counter value (must be an integer)"); if (e > Number.MAX_SAFE_INTEGER) throw new Error("integer value out of safe range"); for (var t = 15; t >= 0; --t) { this._counter[t] = e % 256, e = parseInt(e / 256); } } }, { key: "setBytes", value: function setBytes(e) { if (16 != (e = Ft(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); this._counter = e; } }, { key: "increment", value: function increment() { for (var e = 15; e >= 0; e--) { if (255 !== this._counter[e]) { this._counter[e]++; break; } this._counter[e] = 0; } } }]); return dn; }(); var pn = /*#__PURE__*/function () { function pn(e, t) { (0, _classCallCheck2.default)(this, pn); if (!(this instanceof pn)) throw Error("AES must be instanitated with `new`"); this.description = "Counter", this.name = "ctr", t instanceof dn || (t = new dn(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new an(e); } (0, _createClass2.default)(pn, [{ key: "encrypt", value: function encrypt(e) { for (var t = Ft(e, !0), n = 0; n < t.length; n++) { 16 === this._remainingCounterIndex && (this._remainingCounter = this._aes.encrypt(this._counter._counter), this._remainingCounterIndex = 0, this._counter.increment()), t[n] ^= this._remainingCounter[this._remainingCounterIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return pn; }(); var fn = { AES: an, Counter: dn, ModeOfOperation: { ecb: cn, cbc: un, cfb: hn, ofb: ln, ctr: pn }, utils: { hex: Bt, utf8: jt }, padding: { pkcs7: { pad: function pad(e) { var t = 16 - (e = Ft(e, !0)).length % 16, n = qt(e.length + t); Mt(e, n); for (var s = e.length; s < n.length; s++) { n[s] = t; } return n; }, strip: function strip(e) { if ((e = Ft(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); var t = e[e.length - 1]; if (t > 16) throw new Error("PKCS#7 padding byte out of range"); for (var n = e.length - t, s = 0; s < t; s++) { if (e[n + s] !== t) throw new Error("PKCS#7 invalid padding byte"); } var r = qt(n); return Mt(e, r, 0, 0, n), r; } } }, _arrayTest: { coerceArray: Ft, createArray: qt, copyArray: Mt } }; function gn(e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(t)), r = fn.utils.utf8.toBytes(n), i = fn.utils.utf8.toBytes(e), o = new fn.ModeOfOperation.cbc(s, r), a = fn.padding.pkcs7.pad(i), c = o.encrypt(a); return uni.arrayBufferToBase64(c); } var mn = { code: 2e4, message: "System error" }, yn = { code: 20101, message: "Invalid client" }, _n = { code: 20102, message: "Get encrypt key failed" }, wn = { 10001: "Secure network is not supported on current playground or unimpsdk", 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", 10009: "Encrypt payload failed", 10010: "Decrypt response failed" }; function vn(e) { var _ref25 = e || {}, t = _ref25.errSubject, n = _ref25.subject, s = _ref25.errCode, r = _ref25.errMsg, i = _ref25.code, o = _ref25.message, a = _ref25.cause; return new ne({ subject: t || n || "uni-secure-network", code: s || i || mn.code, message: r || o, cause: a }); } var In, Sn, bn = null; var kn = /*#__PURE__*/function (_Lt) { (0, _inherits2.default)(kn, _Lt); var _super9 = _createSuper(kn); function kn(e) { var _this14; (0, _classCallCheck2.default)(this, kn); _this14 = _super9.call(this, e), _this14.clientType = "mp-weixin", _this14.userEncryptKey = null; return _this14; } (0, _createClass2.default)(kn, [{ key: "isLogin", value: function isLogin() { return !!this.scopedGlobalCache.mpWeixinCode || !!this.scopedGlobalCache.mpWeixinOpenid; } }, { key: "prepare", value: function () { var _prepare2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38() { return _regenerator.default.wrap(function _callee38$(_context38) { while (1) { switch (_context38.prev = _context38.next) { case 0: if (this.isLogin()) { _context38.next = 7; break; } if (this.scopedGlobalCache.initPromise) { _context38.next = 3; break; } throw new Error("`uniCloud.initSecureNetworkByWeixin` has not yet been called"); case 3: _context38.next = 5; return this.scopedGlobalCache.initPromise; case 5: if (this.isLogin()) { _context38.next = 7; break; } throw new Error("uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted"); case 7: case "end": return _context38.stop(); } } }, _callee38, this); })); function prepare() { return _prepare2.apply(this, arguments); } return prepare; }() }, { key: "getUserEncryptKey", value: function () { var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() { var _this15 = this; var e; return _regenerator.default.wrap(function _callee39$(_context39) { while (1) { switch (_context39.prev = _context39.next) { case 0: if (!this.userEncryptKey) { _context39.next = 2; break; } return _context39.abrupt("return", this.userEncryptKey); case 2: if (!(bn && bn.expireTime)) { _context39.next = 6; break; } e = Date.now(); if (!(bn.expireTime - e > 0)) { _context39.next = 6; break; } return _context39.abrupt("return", (this.userEncryptKey = bn, this.userEncryptKey)); case 6: return _context39.abrupt("return", new Promise(function (e, t) { uni.getUserCryptoManager().getLatestUserKey({ success: function success(t) { bn = t, _this15.userEncryptKey = t, e(_this15.userEncryptKey); }, fail: function fail(e) { t(vn(_objectSpread(_objectSpread({}, _n), {}, { cause: e }))); } }); })); case 7: case "end": return _context39.stop(); } } }, _callee39, this); })); function getUserEncryptKey() { return _getUserEncryptKey.apply(this, arguments); } return getUserEncryptKey; }() }, { key: "getWxAppId", value: function getWxAppId() { return wx.getAccountInfoSync().miniProgram.appId; } }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40() { var _yield$this$getUserEn, e, t, n; return _regenerator.default.wrap(function _callee40$(_context40) { while (1) { switch (_context40.prev = _context40.next) { case 0: _context40.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn = _context40.sent; e = _yield$this$getUserEn.encryptKey; t = _yield$this$getUserEn.iv; n = _yield$this$getUserEn.version; return _context40.abrupt("return", { verifyClientSign: gn(JSON.stringify({ data: JSON.stringify({}), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ce().platform, timestamp: Date.now() }), e, t), encryptKeyId: n, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }); case 7: case "end": return _context40.stop(); } } }, _callee40, this); })); function platformGetSignOption() { return _platformGetSignOption.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(e) { var _yield$this$getUserEn2, t, n, s, r; return _regenerator.default.wrap(function _callee41$(_context41) { while (1) { switch (_context41.prev = _context41.next) { case 0: _context41.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn2 = _context41.sent; t = _yield$this$getUserEn2.encryptKey; n = _yield$this$getUserEn2.iv; s = _yield$this$getUserEn2.version; r = { secretType: this.secretType, encryptKeyId: s, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }; return _context41.abrupt("return", this.secretType === Rt ? { content: e, _uniCloudOptions: r } : { content: gn(JSON.stringify({ data: JSON.stringify(e), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ce().platform, timestamp: Date.now() }), t, n), _uniCloudOptions: r }); case 8: case "end": return _context41.stop(); } } }, _callee41, this); })); function platformEncryptData(_x33) { return _platformEncryptData.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42(e) { var t, _yield$this$getUserEn3, n, s; return _regenerator.default.wrap(function _callee42$(_context42) { while (1) { switch (_context42.prev = _context42.next) { case 0: t = e.content; _context42.next = 3; return this.getUserEncryptKey(); case 3: _yield$this$getUserEn3 = _context42.sent; n = _yield$this$getUserEn3.encryptKey; s = _yield$this$getUserEn3.iv; return _context42.abrupt("return", JSON.parse(function (e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(e)), r = new Uint8Array(uni.base64ToArrayBuffer(t)), i = fn.utils.utf8.toBytes(n), o = new fn.ModeOfOperation.cbc(r, i), a = fn.padding.pkcs7.strip(o.decrypt(s)); return fn.utils.utf8.fromBytes(a); }(t, n, s))); case 7: case "end": return _context42.stop(); } } }, _callee42, this); })); function platformDecryptResult(_x34) { return _platformDecryptResult.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { return !1; } }]); return kn; }(Lt); function Cn(e) { var t = ["hasClientKey", "encryptGetClientKeyPayload", "setClientKey", "encrypt", "decrypt"], n = {}; var _loop = function _loop(_s10) { var r = t[_s10]; n[r] = function () { for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) { t[_key] = arguments[_key]; } return new Promise(function (n, s) { "function" == typeof e[r] ? e[r].apply(e, t.concat([function () { var _ref26 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref26.type, t = _ref26.data, r = _ref26.errCode, i = _ref26.errMsg, o = _ref26.errSubject, a = _ref26.message; "success" === e ? n(t) : s(vn({ errCode: r, errMsg: wn[r] || i || a, errSubject: o })); }])) : s(vn({ message: "请检查manifest.json内是否开启安全网络模块,另外注意标准基座不支持安全网络模块" })); }); }; }; for (var _s10 = 0; _s10 < t.length; _s10++) { _loop(_s10); } return n; } var Tn = /*#__PURE__*/function (_Lt2) { (0, _inherits2.default)(Tn, _Lt2); var _super10 = _createSuper(Tn); function Tn(e) { var _this16; (0, _classCallCheck2.default)(this, Tn); _this16 = _super10.call(this, e), _this16.clientType = "app", _this16.appUtils = _objectSpread({}, Cn(uni.requireNativePlugin("plus"))), _this16.systemInfo = In || (In = ce()); return _this16; } (0, _createClass2.default)(Tn, [{ key: "hasClientKey", value: function () { var _hasClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43() { return _regenerator.default.wrap(function _callee43$(_context43) { while (1) { switch (_context43.prev = _context43.next) { case 0: _context43.next = 2; return this.appUtils.hasClientKey({ provider: this.provider, spaceId: this.spaceId }); case 2: this._hasClientKey = _context43.sent; return _context43.abrupt("return", this._hasClientKey); case 4: case "end": return _context43.stop(); } } }, _callee43, this); })); function hasClientKey() { return _hasClientKey.apply(this, arguments); } return hasClientKey; }() }, { key: "getAppClientKey", value: function () { var _getAppClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44() { var _yield$this$appUtils$, e, t, n, s, r; return _regenerator.default.wrap(function _callee44$(_context44) { while (1) { switch (_context44.prev = _context44.next) { case 0: _context44.next = 2; return this.appUtils.encryptGetClientKeyPayload({ data: JSON.stringify({}) }); case 2: _yield$this$appUtils$ = _context44.sent; e = _yield$this$appUtils$.data; t = _yield$this$appUtils$.key; _context44.next = 7; return this.uniCloudIns.callFunction({ name: "DCloud-clientDB", data: { redirectTo: "encryption", action: "getAppClientKey", data: e, key: t } }); case 7: _context44.t0 = _context44.sent.result; if (_context44.t0) { _context44.next = 10; break; } _context44.t0 = {}; case 10: n = _context44.t0; if (!(0 !== n.errCode)) { _context44.next = 13; break; } throw function (e) { return new ne({ subject: e.errSubject || "uni-secure-network", code: e.errCode || e.code || mn.code, message: e.errMsg || e.message }); }(n); case 13: s = n.clientKey, r = n.key; _context44.next = 16; return this.appUtils.setClientKey({ provider: this.provider, spaceId: this.spaceId, clientKey: s, key: r }); case 16: case "end": return _context44.stop(); } } }, _callee44, this); })); function getAppClientKey() { return _getAppClientKey.apply(this, arguments); } return getAppClientKey; }() }, { key: "ensureClientKey", value: function () { var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee45() { var _this17 = this; var _ref27, _ref27$forceUpdate, e, _args45 = arguments; return _regenerator.default.wrap(function _callee45$(_context45) { while (1) { switch (_context45.prev = _context45.next) { case 0: _ref27 = _args45.length > 0 && _args45[0] !== undefined ? _args45[0] : {}, _ref27$forceUpdate = _ref27.forceUpdate, e = _ref27$forceUpdate === void 0 ? !1 : _ref27$forceUpdate; _context45.t1 = !0; _context45.next = 4; return this.hasClientKey(); case 4: _context45.t2 = _context45.sent; _context45.t0 = _context45.t1 !== _context45.t2; if (_context45.t0) { _context45.next = 8; break; } _context45.t0 = e; case 8: if (!_context45.t0) { _context45.next = 10; break; } return _context45.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === d || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== f || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { _this17.scopedGlobalCache.initStatus = p; }).catch(function (e) { throw _this17.scopedGlobalCache.initStatus = f, e; }), this.scopedGlobalCache.initStatus = d), this.scopedGlobalCache.initPromise)); case 10: case "end": return _context45.stop(); } } }, _callee45, this); })); function ensureClientKey() { return _ensureClientKey.apply(this, arguments); } return ensureClientKey; }() }, { key: "prepare", value: function () { var _prepare3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46() { var _ref28, _ref28$forceUpdate, e, _args46 = arguments; return _regenerator.default.wrap(function _callee46$(_context46) { while (1) { switch (_context46.prev = _context46.next) { case 0: _ref28 = _args46.length > 0 && _args46[0] !== undefined ? _args46[0] : {}, _ref28$forceUpdate = _ref28.forceUpdate, e = _ref28$forceUpdate === void 0 ? !1 : _ref28$forceUpdate; _context46.next = 3; return this.ensureClientKey({ forceUpdate: e }); case 3: case "end": return _context46.stop(); } } }, _callee46, this); })); function prepare() { return _prepare3.apply(this, arguments); } return prepare; }() }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee47() { var _yield$this$appUtils$2, e, t; return _regenerator.default.wrap(function _callee47$(_context47) { while (1) { switch (_context47.prev = _context47.next) { case 0: _context47.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify({}) }); case 2: _yield$this$appUtils$2 = _context47.sent; e = _yield$this$appUtils$2.data; t = _yield$this$appUtils$2.key; return _context47.abrupt("return", { verifyClientSign: e, encryptKeyId: t }); case 6: case "end": return _context47.stop(); } } }, _callee47, this); })); function platformGetSignOption() { return _platformGetSignOption2.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee48(e) { var _yield$this$appUtils$3, t, n, s; return _regenerator.default.wrap(function _callee48$(_context48) { while (1) { switch (_context48.prev = _context48.next) { case 0: _context48.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify(e) }); case 2: _yield$this$appUtils$3 = _context48.sent; t = _yield$this$appUtils$3.data; n = _yield$this$appUtils$3.key; s = { secretType: this.secretType, encryptKeyId: n }; return _context48.abrupt("return", this.secretType === Rt ? { content: e, _uniCloudOptions: s } : { content: t, _uniCloudOptions: s }); case 7: case "end": return _context48.stop(); } } }, _callee48, this); })); function platformEncryptData(_x35) { return _platformEncryptData2.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49(e) { var t, _e$_uniCloudOptions, n, s, r; return _regenerator.default.wrap(function _callee49$(_context49) { while (1) { switch (_context49.prev = _context49.next) { case 0: t = e.content; _e$_uniCloudOptions = e._uniCloudOptions; n = _e$_uniCloudOptions === void 0 ? {} : _e$_uniCloudOptions; s = n.encryptKeyId; _context49.next = 6; return this.appUtils.decrypt({ provider: this.provider, spaceId: this.spaceId, data: t, key: s }); case 6: r = _context49.sent; return _context49.abrupt("return", JSON.parse(r.data)); case 8: case "end": return _context49.stop(); } } }, _callee49, this); })); function platformDecryptResult(_x36) { return _platformDecryptResult2.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = e.result || {}; return 70009 === t.errCode && "uni-secure-network" === t.errSubject; } }]); return Tn; }(Lt); function Pn() { var _ref29 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref29.secretType; return e === xt || e === Rt || e === Ut; } function An() { var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref30.name, _ref30$data = _ref30.data, t = _ref30$data === void 0 ? {} : _ref30$data; return "app" === P && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; } function En() { var _ref31 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref31.provider, t = _ref31.spaceId, n = _ref31.functionName; var _ce = ce(), s = _ce.appId, r = _ce.uniPlatform, i = _ce.osName; var o = r; "app" === r && (o = i); var a = function () { var _ref32 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref32.provider, t = _ref32.spaceId; var n = T; if (!n) return {}; e = function (e) { return "tencent" === e ? "tcb" : e; }(e); var s = n.find(function (n) { return n.provider === e && n.spaceId === t; }); return s && s.config; }({ provider: e, spaceId: t }); if (!a || !a.accessControl || !a.accessControl.enable) return !1; var c = a.accessControl.function || {}, u = Object.keys(c); if (0 === u.length) return !0; var h = function (e, t) { var n, s, r; for (var _i2 = 0; _i2 < e.length; _i2++) { var _o2 = e[_i2]; _o2 !== t ? "*" !== _o2 ? _o2.split(",").map(function (e) { return e.trim(); }).indexOf(t) > -1 && (s = _o2) : r = _o2 : n = _o2; } return n || s || r; }(u, n); if (!h) return !1; if ((c[h] || []).find(function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return e.appId === s && (e.platform || "").toLowerCase() === o.toLowerCase(); })) return !0; throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), vn(yn); } function On(_ref33) { var e = _ref33.functionName, t = _ref33.result, n = _ref33.logPvd; if (b && this.__dev__.debugLog && t && t.requestId) { var _s11 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId }); console.log("[".concat(n, "-request]").concat(_s11, "[/").concat(n, "-request]")); } } function xn(e) { var t = e.callFunction, n = function n(_n7) { var _this18 = this; var s = _n7.name; _n7.data = kt.call(e, { data: _n7.data }); var r = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider], i = Pn(_n7), o = An(_n7), a = i || o; return t.call(this, _n7).then(function (e) { return e.errCode = 0, !a && On.call(_this18, { functionName: s, result: e, logPvd: r }), Promise.resolve(e); }, function (e) { return !a && On.call(_this18, { functionName: s, result: e, logPvd: r }), e && e.message && (e.message = function () { var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref34$message = _ref34.message, e = _ref34$message === void 0 ? "" : _ref34$message, _ref34$extraInfo = _ref34.extraInfo, t = _ref34$extraInfo === void 0 ? {} : _ref34$extraInfo, _ref34$formatter = _ref34.formatter, n = _ref34$formatter === void 0 ? [] : _ref34$formatter; for (var _s12 = 0; _s12 < n.length; _s12++) { var _n$_s = n[_s12], _r4 = _n$_s.rule, _i3 = _n$_s.content, _o3 = _n$_s.mode, _a = e.match(_r4); if (!_a) continue; var _c = _i3; for (var _e20 = 1; _e20 < _a.length; _e20++) { _c = Et(_c, "{$".concat(_e20, "}"), _a[_e20]); } for (var _e21 in t) { _c = Et(_c, "{".concat(_e21, "}"), t[_e21]); } return "replace" === _o3 ? _c : e + _c; } return e; }({ message: "[".concat(_n7.name, "]: ").concat(e.message), formatter: Tt, extraInfo: { functionName: s } })), Promise.reject(e); }); }; e.callFunction = function (t) { var _e$config = e.config, s = _e$config.provider, r = _e$config.spaceId, i = t.name; var o, a; if (t.data = t.data || {}, b && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && E ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = Ct), o = Ct) : o = n, o = o.bind(e), An(t)) a = n.call(e, t);else if (function (_ref35) { var e = _ref35.name, _ref35$data = _ref35.data, t = _ref35$data === void 0 ? {} : _ref35$data; return "mp-weixin" === P && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; }(t)) a = o.call(e, t);else if (Pn(t)) { a = new Sn({ secretType: t.secretType, uniCloudIns: e }).wrapEncryptDataCallFunction(n.bind(e))(t); } else if (En({ provider: s, spaceId: r, functionName: i })) { a = new Sn({ secretType: t.secretType, uniCloudIns: e }).wrapVerifyClientCallFunction(n.bind(e))(t); } else a = o(t); return Object.defineProperty(a, "result", { get: function get() { return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}; } }), a; }; } Sn = "mp-weixin" !== P && "app" !== P ? /*#__PURE__*/function () { function _class2() { (0, _classCallCheck2.default)(this, _class2); throw vn({ message: "Platform ".concat(P, " is not supported by secure network") }); } return (0, _createClass2.default)(_class2); }() : C ? "mp-weixin" === P ? kn : Tn : /*#__PURE__*/function () { function _class3() { (0, _classCallCheck2.default)(this, _class3); throw vn({ message: "Platform ".concat(P, " is not enabled, please check whether secure network module is enabled in your manifest.json") }); } return (0, _createClass2.default)(_class3); }(); var Rn = Symbol("CLIENT_DB_INTERNAL"); function Un(e, t) { return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = Rn, e.inspect = null, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) { if ("_uniClient" === n) return null; if ("symbol" == (0, _typeof2.default)(n)) return e[n]; if (n in e || "string" != typeof n) { var _t10 = e[n]; return "function" == typeof _t10 ? _t10.bind(e) : _t10; } return t.get(e, n, s); } }); } function Ln(e) { return { on: function on(t, n) { e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n); }, off: function off(t, n) { e[t] = e[t] || []; var s = e[t].indexOf(n); -1 !== s && e[t].splice(s, 1); } }; } var Nn = ["db.Geo", "db.command", "command.aggregate"]; function Dn(e, t) { return Nn.indexOf("".concat(e, ".").concat(t)) > -1; } function Fn(e) { switch (g(e)) { case "array": return e.map(function (e) { return Fn(e); }); case "object": return e._internalType === Rn || Object.keys(e).forEach(function (t) { e[t] = Fn(e[t]); }), e; case "regexp": return { $regexp: { source: e.source, flags: e.flags } }; case "date": return { $date: e.toISOString() }; default: return e; } } function qn(e) { return e && e.content && e.content.$method; } var Mn = /*#__PURE__*/function () { function Mn(e, t, n) { (0, _classCallCheck2.default)(this, Mn); this.content = e, this.prevStage = t || null, this.udb = null, this._database = n; } (0, _createClass2.default)(Mn, [{ key: "toJSON", value: function toJSON() { var e = this; var t = [e.content]; for (; e.prevStage;) { e = e.prevStage, t.push(e.content); } return { $db: t.reverse().map(function (e) { return { $method: e.$method, $param: Fn(e.$param) }; }) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }, { key: "getAction", value: function getAction() { var e = this.toJSON().$db.find(function (e) { return "action" === e.$method; }); return e && e.$param && e.$param[0]; } }, { key: "getCommand", value: function getCommand() { return { $db: this.toJSON().$db.filter(function (e) { return "action" !== e.$method; }) }; } }, { key: "isAggregate", get: function get() { var e = this; for (; e;) { var t = qn(e), _n8 = qn(e.prevStage); if ("aggregate" === t && "collection" === _n8 || "pipeline" === t) return !0; e = e.prevStage; } return !1; } }, { key: "isCommand", get: function get() { var e = this; for (; e;) { if ("command" === qn(e)) return !0; e = e.prevStage; } return !1; } }, { key: "isAggregateCommand", get: function get() { var e = this; for (; e;) { var t = qn(e), _n9 = qn(e.prevStage); if ("aggregate" === t && "command" === _n9) return !0; e = e.prevStage; } return !1; } }, { key: "getNextStageFn", value: function getNextStageFn(e) { var t = this; return function () { return Kn({ $method: e, $param: Fn(Array.from(arguments)) }, t, t._database); }; } }, { key: "count", get: function get() { return this.isAggregate ? this.getNextStageFn("count") : function () { return this._send("count", Array.from(arguments)); }; } }, { key: "remove", get: function get() { return this.isCommand ? this.getNextStageFn("remove") : function () { return this._send("remove", Array.from(arguments)); }; } }, { key: "get", value: function get() { return this._send("get", Array.from(arguments)); } }, { key: "add", get: function get() { return this.isCommand ? this.getNextStageFn("add") : function () { return this._send("add", Array.from(arguments)); }; } }, { key: "update", value: function update() { return this._send("update", Array.from(arguments)); } }, { key: "end", value: function end() { return this._send("end", Array.from(arguments)); } }, { key: "set", get: function get() { return this.isCommand ? this.getNextStageFn("set") : function () { throw new Error("JQL禁止使用set方法"); }; } }, { key: "_send", value: function _send(e, t) { var n = this.getAction(), s = this.getCommand(); if (s.$db.push({ $method: e, $param: Fn(t) }), b) { var _e22 = s.$db.find(function (e) { return "collection" === e.$method; }), _t11 = _e22 && _e22.$param; _t11 && 1 === _t11.length && "string" == typeof _e22.$param[0] && _e22.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); } return this._database._callCloudFunction({ action: n, command: s }); } }]); return Mn; }(); function Kn(e, t, n) { return Un(new Mn(e, t, n), { get: function get(e, t) { var s = "db"; return e && e.content && (s = e.content.$method), Dn(s, t) ? Kn({ $method: t }, e, n) : function () { return Kn({ $method: t, $param: Fn(Array.from(arguments)) }, e, n); }; } }); } function jn(_ref36) { var e = _ref36.path, t = _ref36.method; return /*#__PURE__*/function () { function _class4() { (0, _classCallCheck2.default)(this, _class4); this.param = Array.from(arguments); } (0, _createClass2.default)(_class4, [{ key: "toJSON", value: function toJSON() { return { $newDb: [].concat((0, _toConsumableArray2.default)(e.map(function (e) { return { $method: e }; })), [{ $method: t, $param: this.param }]) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }]); return _class4; }(); } function Bn(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return Un(new e(t), { get: function get(e, t) { return Dn("db", t) ? Kn({ $method: t }, null, e) : function () { return Kn({ $method: t, $param: Fn(Array.from(arguments)) }, null, e); }; } }); } var $n = /*#__PURE__*/function (_ref37) { (0, _inherits2.default)($n, _ref37); var _super11 = _createSuper($n); function $n() { (0, _classCallCheck2.default)(this, $n); return _super11.apply(this, arguments); } (0, _createClass2.default)($n, [{ key: "_parseResult", value: function _parseResult(e) { return this._isJQL ? e.result : e; } }, { key: "_callCloudFunction", value: function _callCloudFunction(_ref38) { var _this19 = this; var e = _ref38.action, t = _ref38.command, n = _ref38.multiCommand, s = _ref38.queryList; function r(e, t) { if (n && s) for (var _n10 = 0; _n10 < s.length; _n10++) { var _r5 = s[_n10]; _r5.udb && "function" == typeof _r5.udb.setResult && (t ? _r5.udb.setResult(t) : _r5.udb.setResult(e.result.dataList[_n10])); } } var i = this, o = this._isJQL ? "databaseForJQL" : "database"; function a(e) { return i._callback("error", [e]), q(M(o, "fail"), e).then(function () { return q(M(o, "complete"), e); }).then(function () { return r(null, e), Q(B, { type: z, content: e }), Promise.reject(e); }); } var c = q(M(o, "invoke")), u = this._uniClient; return c.then(function () { return u.callFunction({ name: "DCloud-clientDB", type: l, data: { action: e, command: t, multiCommand: n } }); }).then(function (e) { var _e$result = e.result, t = _e$result.code, n = _e$result.message, s = _e$result.token, c = _e$result.tokenExpired, _e$result$systemInfo = _e$result.systemInfo, u = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo; if (u) for (var _e23 = 0; _e23 < u.length; _e23++) { var _u$_e = u[_e23], _t12 = _u$_e.level, _n11 = _u$_e.message, _s13 = _u$_e.detail, _r6 = console["app" === P && "warn" === _t12 ? "error" : _t12] || console.log; var _i4 = "[System Info]" + _n11; _s13 && (_i4 = "".concat(_i4, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s13)), _r6(_i4); } if (t) { return a(new ne({ code: t, message: n, requestId: e.requestId })); } e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (ie({ token: s, tokenExpired: c }), _this19._callbackAuth("refreshToken", [{ token: s, tokenExpired: c }]), _this19._callback("refreshToken", [{ token: s, tokenExpired: c }]), Q(W, { token: s, tokenExpired: c })); var h = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }]; var _loop2 = function _loop2(_t13) { var _h$_t = h[_t13], n = _h$_t.prop, s = _h$_t.tips; if (n in e.result) { var _t14 = e.result[n]; Object.defineProperty(e.result, n, { get: function get() { return console.warn(s), _t14; } }); } }; for (var _t13 = 0; _t13 < h.length; _t13++) { _loop2(_t13); } return function (e) { return q(M(o, "success"), e).then(function () { return q(M(o, "complete"), e); }).then(function () { r(e, null); var t = i._parseResult(e); return Q(B, { type: z, content: t }), Promise.resolve(t); }); }(e); }, function (e) { /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); return a(new ne({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId })); }); } }]); return $n; }( /*#__PURE__*/function () { function _class5() { var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref39$uniClient = _ref39.uniClient, e = _ref39$uniClient === void 0 ? {} : _ref39$uniClient, _ref39$isJQL = _ref39.isJQL, t = _ref39$isJQL === void 0 ? !1 : _ref39$isJQL; (0, _classCallCheck2.default)(this, _class5); this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e._isDefault && (this._dbCallBacks = U("_globalUniCloudDatabaseCallback")), t || (this.auth = Ln(this._authCallBacks)), this._isJQL = t, Object.assign(this, Ln(this._dbCallBacks)), this.env = Un({}, { get: function get(e, t) { return { $env: t }; } }), this.Geo = Un({}, { get: function get(e, t) { return jn({ path: ["Geo"], method: t }); } }), this.serverDate = jn({ path: [], method: "serverDate" }), this.RegExp = jn({ path: [], method: "RegExp" }); } (0, _createClass2.default)(_class5, [{ key: "getCloudEnv", value: function getCloudEnv(e) { if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv参数错误"); return { $env: e.replace("$cloudEnv_", "") }; } }, { key: "_callback", value: function _callback(e, t) { var n = this._dbCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "_callbackAuth", value: function _callbackAuth(e, t) { var n = this._authCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "multiSend", value: function multiSend() { var e = Array.from(arguments), t = e.map(function (e) { var t = e.getAction(), n = e.getCommand(); if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend只支持子命令内使用getTemp"); return { action: t, command: n }; }); return this._callCloudFunction({ multiCommand: t, queryList: e }); } }]); return _class5; }()); var Wn = "token无效,跳转登录页面", zn = "token过期,跳转登录页面", Jn = { TOKEN_INVALID_TOKEN_EXPIRED: zn, TOKEN_INVALID_INVALID_CLIENTID: Wn, TOKEN_INVALID: Wn, TOKEN_INVALID_WRONG_TOKEN: Wn, TOKEN_INVALID_ANONYMOUS_USER: Wn }, Hn = { "uni-id-token-expired": zn, "uni-id-check-token-failed": Wn, "uni-id-token-not-exist": Wn, "uni-id-check-device-feature-failed": Wn }; function Gn(e, t) { var n = ""; return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, ""); } function Vn() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; var n = [], s = []; return e.forEach(function (e) { !0 === e.needLogin ? n.push(Gn(t, e.path)) : !1 === e.needLogin && s.push(Gn(t, e.path)); }), { needLoginPage: n, notNeedLoginPage: s }; } function Yn(e) { return e.split("?")[0].replace(/^\//, ""); } function Qn() { return function (e) { var t = e && e.$page && e.$page.fullPath || ""; return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t; }(function () { var e = getCurrentPages(); return e[e.length - 1]; }()); } function Xn() { return Yn(Qn()); } function Zn() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!e) return !1; if (!(t && t.list && t.list.length)) return !1; var n = t.list, s = Yn(e); return n.some(function (e) { return e.pagePath === s; }); } var es = !!_pages.default.uniIdRouter; var _ref40 = function () { var _ref21 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, _ref21$pages = _ref21.pages, e = _ref21$pages === void 0 ? [] : _ref21$pages, _ref21$subPackages = _ref21.subPackages, n = _ref21$subPackages === void 0 ? [] : _ref21$subPackages, _ref21$uniIdRouter = _ref21.uniIdRouter, s = _ref21$uniIdRouter === void 0 ? {} : _ref21$uniIdRouter, _ref21$tabBar = _ref21.tabBar, r = _ref21$tabBar === void 0 ? {} : _ref21$tabBar; var i = s.loginPage, _s$needLogin = s.needLogin, o = _s$needLogin === void 0 ? [] : _s$needLogin, _s$resToLogin = s.resToLogin, a = _s$resToLogin === void 0 ? !0 : _s$resToLogin, _Vn = Vn(e), c = _Vn.needLoginPage, u = _Vn.notNeedLoginPage, _ref23 = function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = [], n = []; return e.forEach(function (e) { var s = e.root, _e$pages = e.pages, r = _e$pages === void 0 ? [] : _e$pages, _Vn2 = Vn(r, s), i = _Vn2.needLoginPage, o = _Vn2.notNeedLoginPage; t.push.apply(t, (0, _toConsumableArray2.default)(i)), n.push.apply(n, (0, _toConsumableArray2.default)(o)); }), { needLoginPage: t, notNeedLoginPage: n }; }(n), h = _ref23.needLoginPage, l = _ref23.notNeedLoginPage; return { loginPage: i, routerNeedLogin: o, resToLogin: a, needLoginPage: [].concat((0, _toConsumableArray2.default)(c), (0, _toConsumableArray2.default)(h)), notNeedLoginPage: [].concat((0, _toConsumableArray2.default)(u), (0, _toConsumableArray2.default)(l)), loginPageInTabBar: Zn(i, r) }; }(), ts = _ref40.loginPage, ns = _ref40.routerNeedLogin, ss = _ref40.resToLogin, rs = _ref40.needLoginPage, is = _ref40.notNeedLoginPage, os = _ref40.loginPageInTabBar; if (rs.indexOf(ts) > -1) throw new Error("Login page [".concat(ts, "] should not be \"needLogin\", please check your pages.json")); function as(e) { var t = Xn(); if ("/" === e.charAt(0)) return e; var _e$split = e.split("?"), _e$split2 = (0, _slicedToArray2.default)(_e$split, 2), n = _e$split2[0], s = _e$split2[1], r = n.replace(/^\//, "").split("/"), i = t.split("/"); i.pop(); for (var _e24 = 0; _e24 < r.length; _e24++) { var _t15 = r[_e24]; ".." === _t15 ? i.pop() : "." !== _t15 && i.push(_t15); } return "" === i[0] && i.shift(), "/" + i.join("/") + (s ? "?" + s : ""); } function cs(e) { var t = Yn(as(e)); return !(is.indexOf(t) > -1) && (rs.indexOf(t) > -1 || ns.some(function (t) { return function (e, t) { return new RegExp(t).test(e); }(e, t); })); } function us(_ref41) { var e = _ref41.redirect; var t = Yn(e), n = Yn(ts); return Xn() !== n && t !== n; } function hs() { var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref42.api, t = _ref42.redirect; if (!t || !us({ redirect: t })) return; var n = function (e, t) { return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e; }(ts, t); os ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); var s = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch }; setTimeout(function () { s[e]({ url: n }); }); } function ls() { var _ref43 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref43.url; var t = { abortLoginPageJump: !1, autoToLoginPage: !1 }, n = function () { var _re3 = re(), e = _re3.token, t = _re3.tokenExpired; var n; if (e) { if (t < Date.now()) { var _e25 = "uni-id-token-expired"; n = { errCode: _e25, errMsg: Hn[_e25] }; } } else { var _e26 = "uni-id-check-token-failed"; n = { errCode: _e26, errMsg: Hn[_e26] }; } return n; }(); if (cs(e) && n) { n.uniIdRedirectUrl = e; if (G($).length > 0) return setTimeout(function () { Q($, n); }, 0), t.abortLoginPageJump = !0, t; t.autoToLoginPage = !0; } return t; } function ds() { !function () { var e = Qn(), _ls = ls({ url: e }), t = _ls.abortLoginPageJump, n = _ls.autoToLoginPage; t || n && hs({ api: "redirectTo", redirect: e }); }(); var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; var _loop3 = function _loop3(_t16) { var n = e[_t16]; uni.addInterceptor(n, { invoke: function invoke(e) { var _ls2 = ls({ url: e.url }), t = _ls2.abortLoginPageJump, s = _ls2.autoToLoginPage; return t ? e : s ? (hs({ api: n, redirect: as(e.url) }), !1) : e; } }); }; for (var _t16 = 0; _t16 < e.length; _t16++) { _loop3(_t16); } } function ps() { this.onResponse(function (e) { var t = e.type, n = e.content; var s = !1; switch (t) { case "cloudobject": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref44 = e || {}, t = _ref44.errCode; return t in Hn; }(n); break; case "clientdb": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref45 = e || {}, t = _ref45.errCode; return t in Jn; }(n); } s && function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = G($); ee().then(function () { var n = Qn(); if (n && us({ redirect: n })) return t.length > 0 ? Q($, Object.assign({ uniIdRedirectUrl: n }, e)) : void (ts && hs({ api: "navigateTo", redirect: n })); }); }(n); }); } function fs(e) { !function (e) { e.onResponse = function (e) { V(B, e); }, e.offResponse = function (e) { Y(B, e); }; }(e), function (e) { e.onNeedLogin = function (e) { V($, e); }, e.offNeedLogin = function (e) { Y($, e); }, es && (U("_globalUniCloudStatus").needLoginInit || (U("_globalUniCloudStatus").needLoginInit = !0, ee().then(function () { ds.call(e); }), ss && ps.call(e))); }(e), function (e) { e.onRefreshToken = function (e) { V(W, e); }, e.offRefreshToken = function (e) { Y(W, e); }; }(e); } var gs; var ms = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", ys = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; function _s() { var e = re().token || "", t = e.split("."); if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 }; var n; try { n = JSON.parse((s = t[1], decodeURIComponent(gs(s).split("").map(function (e) { return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e) { throw new Error("获取当前用户信息出错,详细错误信息为:" + e.message); } var s; return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n; } gs = "function" != typeof atob ? function (e) { if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !ys.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); var t; e += "==".slice(2 - (3 & e.length)); for (var n, s, r = "", i = 0; i < e.length;) { t = ms.indexOf(e.charAt(i++)) << 18 | ms.indexOf(e.charAt(i++)) << 12 | (n = ms.indexOf(e.charAt(i++))) << 6 | (s = ms.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t); } return r; } : atob; var ws = s(function (e, t) { Object.defineProperty(t, "__esModule", { value: !0 }); var n = "chooseAndUploadFile:ok", s = "chooseAndUploadFile:fail"; function r(e, t) { return e.tempFiles.forEach(function (e, n) { e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf(".")); }), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) { return e.path; })), e; } function i(e, t, _ref46) { var s = _ref46.onChooseFile, r = _ref46.onUploadProgress; return t.then(function (e) { if (s) { var _t17 = s(e); if (void 0 !== _t17) return Promise.resolve(_t17).then(function (t) { return void 0 === t ? e : t; }); } return e; }).then(function (t) { return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) { var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5; var r = arguments.length > 3 ? arguments[3] : undefined; (t = Object.assign({}, t)).errMsg = n; var i = t.tempFiles, o = i.length; var a = 0; return new Promise(function (n) { for (; a < s;) { c(); } function c() { var s = a++; if (s >= o) return void (!i.find(function (e) { return !e.url && !e.errMsg; }) && n(t)); var u = i[s]; e.uploadFile({ filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, onUploadProgress: function onUploadProgress(e) { e.index = s, e.tempFile = u, e.tempFilePath = u.path, r && r(e); } }).then(function (e) { u.url = e.fileID, s < o && c(); }).catch(function (e) { u.errMsg = e.errMsg || e.message, s < o && c(); }); } }); }(e, t, 5, r); }); } t.initChooseAndUploadFile = function (e) { return function () { var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" }; return "image" === t.type ? i(e, function (e) { var t = e.count, n = e.sizeType, _e$sourceType = e.sourceType, i = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType, o = e.extension; return new Promise(function (e, a) { uni.chooseImage({ count: t, sizeType: n, sourceType: i, extension: o, success: function success(t) { e(r(t, "image")); }, fail: function fail(e) { a({ errMsg: e.errMsg.replace("chooseImage:fail", s) }); } }); }); }(t), t) : "video" === t.type ? i(e, function (e) { var t = e.camera, n = e.compressed, i = e.maxDuration, _e$sourceType2 = e.sourceType, o = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2, a = e.extension; return new Promise(function (e, c) { uni.chooseVideo({ camera: t, compressed: n, maxDuration: i, sourceType: o, extension: a, success: function success(t) { var n = t.tempFilePath, s = t.duration, i = t.size, o = t.height, a = t.width; e(r({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: i, type: t.tempFile && t.tempFile.type || "", width: a, height: o, duration: s, fileType: "video", cloudPath: "" }] }, "video")); }, fail: function fail(e) { c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) }); } }); }); }(t), t) : i(e, function (e) { var t = e.count, n = e.extension; return new Promise(function (e, i) { var o = uni.chooseFile; if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o = wx.chooseMessageFile), "function" != typeof o) return i({ errMsg: s + " 请指定 type 类型,该平台仅支持选择 image 或 video。" }); o({ type: "all", count: t, extension: n, success: function success(t) { e(r(t)); }, fail: function fail(e) { i({ errMsg: e.errMsg.replace("chooseFile:fail", s) }); } }); }); }(t), t); }; }; }), vs = n(ws); var Is = "manual"; function Ss(e) { return { props: { localdata: { type: Array, default: function _default() { return []; } }, options: { type: [Object, Array], default: function _default() { return {}; } }, spaceInfo: { type: Object, default: function _default() { return {}; } }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() { return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} }; }, created: function created() { var _this20 = this; this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () { var e = []; return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) { e.push(_this20[t]); }), e; }, function (e, t) { if (_this20.loadtime === Is) return; var n = !1; var s = []; for (var _r7 = 2; _r7 < e.length; _r7++) { e[_r7] !== t[_r7] && (s.push(e[_r7]), n = !0); } e[0] !== t[0] && (_this20.mixinDatacomPage.current = _this20.pageCurrent), _this20.mixinDatacomPage.size = _this20.pageSize, _this20.onMixinDatacomPropsChange(n, s); }); }, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() { var _this21 = this; var _ref47 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref47$getone = _ref47.getone, e = _ref47$getone === void 0 ? !1 : _ref47$getone, t = _ref47.success, n = _ref47.fail; this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) { _this21.mixinDatacomLoading = !1; var _n$result = n.result, s = _n$result.data, r = _n$result.count; _this21.getcount && (_this21.mixinDatacomPage.count = r), _this21.mixinDatacomHasMore = s.length < _this21.pageSize; var i = e ? s.length ? s[0] : void 0 : s; _this21.mixinDatacomResData = i, t && t(i); }).catch(function (e) { _this21.mixinDatacomLoading = !1, _this21.mixinDatacomErrorMessage = e, n && n(e); })); }, mixinDatacomGet: function mixinDatacomGet() { var _n12; var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var n = e.database(this.spaceInfo); var s = t.action || this.action; s && (n = n.action(s)); var r = t.collection || this.collection; n = Array.isArray(r) ? (_n12 = n).collection.apply(_n12, (0, _toConsumableArray2.default)(r)) : n.collection(r); var i = t.where || this.where; i && Object.keys(i).length && (n = n.where(i)); var o = t.field || this.field; o && (n = n.field(o)); var a = t.foreignKey || this.foreignKey; a && (n = n.foreignKey(a)); var c = t.groupby || this.groupby; c && (n = n.groupBy(c)); var u = t.groupField || this.groupField; u && (n = n.groupField(u)); !0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct()); var h = t.orderby || this.orderby; h && (n = n.orderBy(h)); var l = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current, d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size, p = void 0 !== t.getcount ? t.getcount : this.getcount, f = void 0 !== t.gettree ? t.gettree : this.gettree, g = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath, m = { getCount: p }, y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith }; return f && (m.getTree = y), g && (m.getTreePath = y), n = n.skip(d * (l - 1)).limit(d).get(m), n; } } }; } function bs(e) { return function (t) { var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; n = function (e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return e.customUI = t.customUI || e.customUI, e.parseSystemError = t.parseSystemError || e.parseSystemError, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == (0, _typeof2.default)(t.secretMethods) && (e.secretMethods = t.secretMethods), e; }({ customUI: !1, loadingOptions: { title: "加载中...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n); var _n13 = n, s = _n13.customUI, r = _n13.loadingOptions, i = _n13.errorOptions, o = _n13.parseSystemError, a = !s; return new Proxy({}, { get: function get(s, c) { return function () { var _ref48 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref48.fn, t = _ref48.interceptorName, n = _ref48.getCallbackArgs; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { var _len2, s, _key2, r, i, o, _args = arguments; return _regenerator.default.wrap(function _callee50$(_context50) { while (1) { switch (_context50.prev = _context50.next) { case 0: for (_len2 = _args.length, s = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { s[_key2] = _args[_key2]; } r = n ? n({ params: s }) : {}; _context50.prev = 2; _context50.next = 5; return q(M(t, "invoke"), _objectSpread({}, r)); case 5: _context50.next = 7; return e.apply(void 0, s); case 7: i = _context50.sent; _context50.next = 10; return q(M(t, "success"), _objectSpread(_objectSpread({}, r), {}, { result: i })); case 10: return _context50.abrupt("return", i); case 13: _context50.prev = 13; _context50.t0 = _context50["catch"](2); o = _context50.t0; _context50.next = 18; return q(M(t, "fail"), _objectSpread(_objectSpread({}, r), {}, { error: o })); case 18: throw o; case 19: _context50.prev = 19; _context50.next = 22; return q(M(t, "complete"), o ? _objectSpread(_objectSpread({}, r), {}, { error: o }) : _objectSpread(_objectSpread({}, r), {}, { result: i })); case 22: return _context50.finish(19); case 23: case "end": return _context50.stop(); } } }, _callee50, null, [[2, 13, 19, 23]]); })); }({ fn: function () { var _s14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee52() { var l, _len3, u, _key3, d, p, _ref50, f, g, m, y, _e27, _yield, _t18, _n14, _args4 = arguments; return _regenerator.default.wrap(function _callee52$(_context52) { while (1) { switch (_context52.prev = _context52.next) { case 0: a && uni.showLoading({ title: r.title, mask: r.mask }); for (_len3 = _args4.length, u = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { u[_key3] = _args4[_key3]; } d = { name: t, type: h, data: { method: c, params: u } }; "object" == (0, _typeof2.default)(n.secretMethods) && function (e, t) { var n = t.data.method, s = e.secretMethods || {}, r = s[n] || s["*"]; r && (t.secretType = r); }(n, d); p = !1; _context52.prev = 5; _context52.next = 8; return e.callFunction(d); case 8: l = _context52.sent; _context52.next = 14; break; case 11: _context52.prev = 11; _context52.t0 = _context52["catch"](5); p = !0, l = { result: new ne(_context52.t0) }; case 14: _ref50 = l.result || {}, f = _ref50.errSubject, g = _ref50.errCode, m = _ref50.errMsg, y = _ref50.newToken; if (!(a && uni.hideLoading(), y && y.token && y.tokenExpired && (ie(y), Q(W, _objectSpread({}, y))), g)) { _context52.next = 39; break; } _e27 = m; if (!(p && o)) { _context52.next = 24; break; } _context52.next = 20; return o({ objectName: t, methodName: c, params: u, errSubject: f, errCode: g, errMsg: m }); case 20: _context52.t1 = _context52.sent.errMsg; if (_context52.t1) { _context52.next = 23; break; } _context52.t1 = m; case 23: _e27 = _context52.t1; case 24: if (!a) { _context52.next = 37; break; } if (!("toast" === i.type)) { _context52.next = 29; break; } uni.showToast({ title: _e27, icon: "none" }); _context52.next = 37; break; case 29: if (!("modal" !== i.type)) { _context52.next = 31; break; } throw new Error("Invalid errorOptions.type: ".concat(i.type)); case 31: _context52.next = 33; return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51() { var _ref52, e, t, n, s, r, _args2 = arguments; return _regenerator.default.wrap(function _callee51$(_context51) { while (1) { switch (_context51.prev = _context51.next) { case 0: _ref52 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, e = _ref52.title, t = _ref52.content, n = _ref52.showCancel, s = _ref52.cancelText, r = _ref52.confirmText; return _context51.abrupt("return", new Promise(function (i, o) { uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: r, success: function success(e) { i(e); }, fail: function fail() { i({ confirm: !1, cancel: !0 }); } }); })); case 2: case "end": return _context51.stop(); } } }, _callee51); }))({ title: "提示", content: _e27, showCancel: i.retry, cancelText: "取消", confirmText: i.retry ? "重试" : "确定" }); case 33: _yield = _context52.sent; _t18 = _yield.confirm; if (!(i.retry && _t18)) { _context52.next = 37; break; } return _context52.abrupt("return", s.apply(void 0, u)); case 37: _n14 = new ne({ subject: f, code: g, message: m, requestId: l.requestId }); throw _n14.detail = l.result, Q(B, { type: H, content: _n14 }), _n14; case 39: return _context52.abrupt("return", (Q(B, { type: H, content: l.result }), l.result)); case 40: case "end": return _context52.stop(); } } }, _callee52, null, [[5, 11]]); })); function s() { return _s14.apply(this, arguments); } return s; }(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() { var _ref53 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref53.params; return { objectName: t, methodName: c, params: e }; } }); } }); }; } function ks(e) { return U("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e.config.spaceId)); } function Cs() { return _Cs.apply(this, arguments); } function _Cs() { _Cs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee55() { var _ref65, e, _ref65$callLoginByWei, t, n, s, r, _args7 = arguments; return _regenerator.default.wrap(function _callee55$(_context55) { while (1) { switch (_context55.prev = _context55.next) { case 0: _ref65 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, e = _ref65.openid, _ref65$callLoginByWei = _ref65.callLoginByWeixin, t = _ref65$callLoginByWei === void 0 ? !1 : _ref65$callLoginByWei; n = ks(this); if (!("mp-weixin" !== P)) { _context55.next = 4; break; } throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(P, "`")); case 4: if (!(e && t)) { _context55.next = 6; break; } throw new Error("[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time"); case 6: if (!e) { _context55.next = 8; break; } return _context55.abrupt("return", (n.mpWeixinOpenid = e, {})); case 8: _context55.next = 10; return new Promise(function (e, t) { uni.login({ success: function success(t) { e(t.code); }, fail: function fail(e) { t(new Error(e.errMsg)); } }); }); case 10: s = _context55.sent; r = this.importObject("uni-id-co", { customUI: !0 }); _context55.next = 14; return r.secureNetworkHandshakeByWeixin({ code: s, callLoginByWeixin: t }); case 14: n.mpWeixinCode = s; return _context55.abrupt("return", { code: s }); case 16: case "end": return _context55.stop(); } } }, _callee55, this); })); return _Cs.apply(this, arguments); } function Ts(_x37) { return _Ts.apply(this, arguments); } function _Ts() { _Ts = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee56(e) { var t; return _regenerator.default.wrap(function _callee56$(_context56) { while (1) { switch (_context56.prev = _context56.next) { case 0: t = ks(this); return _context56.abrupt("return", (t.initPromise || (t.initPromise = Cs.call(this, e)), t.initPromise)); case 2: case "end": return _context56.stop(); } } }, _callee56, this); })); return _Ts.apply(this, arguments); } function Ps(e) { return function () { var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref54.openid, _ref54$callLoginByWei = _ref54.callLoginByWeixin, n = _ref54$callLoginByWei === void 0 ? !1 : _ref54$callLoginByWei; return Ts.call(e, { openid: t, callLoginByWeixin: n }); }; } function As(e) { var t = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId }; return function (n) { return new Promise(function (s, r) { t[e](_objectSpread(_objectSpread({}, n), {}, { success: function success(e) { s(e); }, fail: function fail(e) { r(e); } })); }); }; } var Es = /*#__PURE__*/function (_ref55) { (0, _inherits2.default)(Es, _ref55); var _super12 = _createSuper(Es); function Es() { var _this22; (0, _classCallCheck2.default)(this, Es); _this22 = _super12.call(this), _this22._uniPushMessageCallback = _this22._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this22)), _this22._currentMessageId = -1, _this22._payloadQueue = []; return _this22; } (0, _createClass2.default)(Es, [{ key: "init", value: function init() { var _this23 = this; return Promise.all([As("getSystemInfo")(), As("getPushClientId")()]).then(function () { var _ref56 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], _ref57 = (0, _slicedToArray2.default)(_ref56, 2), _ref57$ = _ref57[0]; _ref57$ = _ref57$ === void 0 ? {} : _ref57$; var e = _ref57$.appId, _ref57$2 = _ref57[1]; _ref57$2 = _ref57$2 === void 0 ? {} : _ref57$2; var t = _ref57$2.cid; if (!e) throw new Error("Invalid appId, please check the manifest.json file"); if (!t) throw new Error("Invalid push client id"); _this23._appId = e, _this23._pushClientId = t, _this23._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this23.emit("open"), _this23._initMessageListener(); }, function (e) { throw _this23.emit("error", e), _this23.close(), e; }); } }, { key: "open", value: function () { var _open = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { return _regenerator.default.wrap(function _callee53$(_context53) { while (1) { switch (_context53.prev = _context53.next) { case 0: return _context53.abrupt("return", this.init()); case 1: case "end": return _context53.stop(); } } }, _callee53, this); })); function open() { return _open.apply(this, arguments); } return open; }() }, { key: "_isUniCloudSSE", value: function _isUniCloudSSE(e) { if ("receive" !== e.type) return !1; var t = e && e.data && e.data.payload; return !(!t || "UNI_CLOUD_SSE" !== t.channel || t.seqId !== this._seqId); } }, { key: "_receivePushMessage", value: function _receivePushMessage(e) { if (!this._isUniCloudSSE(e)) return; var t = e && e.data && e.data.payload, n = t.action, s = t.messageId, r = t.message; this._payloadQueue.push({ action: n, messageId: s, message: r }), this._consumMessage(); } }, { key: "_consumMessage", value: function _consumMessage() { var _this24 = this; for (;;) { var _e28 = this._payloadQueue.find(function (e) { return e.messageId === _this24._currentMessageId + 1; }); if (!_e28) break; this._currentMessageId++, this._parseMessagePayload(_e28); } } }, { key: "_parseMessagePayload", value: function _parseMessagePayload(e) { var t = e.action, n = e.messageId, s = e.message; "end" === t ? this._end({ messageId: n, message: s }) : "message" === t && this._appendMessage({ messageId: n, message: s }); } }, { key: "_appendMessage", value: function _appendMessage() { var _ref58 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref58.messageId, t = _ref58.message; this.emit("message", t); } }, { key: "_end", value: function _end() { var _ref59 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref59.messageId, t = _ref59.message; this.emit("end", t), this.close(); } }, { key: "_initMessageListener", value: function _initMessageListener() { uni.onPushMessage(this._uniPushMessageCallback); } }, { key: "_destroy", value: function _destroy() { uni.offPushMessage(this._uniPushMessageCallback); } }, { key: "toJSON", value: function toJSON() { return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId }; } }, { key: "close", value: function close() { this._destroy(), this.emit("close"); } }]); return Es; }( /*#__PURE__*/function () { function _class6() { (0, _classCallCheck2.default)(this, _class6); this._callback = {}; } (0, _createClass2.default)(_class6, [{ key: "addListener", value: function addListener(e, t) { this._callback[e] || (this._callback[e] = []), this._callback[e].push(t); } }, { key: "on", value: function on(e, t) { return this.addListener(e, t); } }, { key: "removeListener", value: function removeListener(e, t) { if (!t) throw new Error('The "listener" argument must be of type function. Received undefined'); var n = this._callback[e]; if (!n) return; var s = function (e, t) { for (var _n15 = e.length - 1; _n15 >= 0; _n15--) { if (e[_n15] === t) return _n15; } return -1; }(n, t); n.splice(s, 1); } }, { key: "off", value: function off(e, t) { return this.removeListener(e, t); } }, { key: "removeAllListener", value: function removeAllListener(e) { delete this._callback[e]; } }, { key: "emit", value: function emit(e) { var n = this._callback[e]; for (var _len4 = arguments.length, t = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { t[_key4 - 1] = arguments[_key4]; } if (n) for (var _e29 = 0; _e29 < n.length; _e29++) { n[_e29].apply(n, t); } } }]); return _class6; }()); function Os(_x38, _x39) { return _Os.apply(this, arguments); } function _Os() { _Os = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee57(e, t) { var n, _e33, s; return _regenerator.default.wrap(function _callee57$(_context57) { while (1) { switch (_context57.prev = _context57.next) { case 0: n = "http://".concat(e, ":").concat(t, "/system/ping"); _context57.prev = 1; _context57.next = 4; return s = { url: n, timeout: 500 }, new Promise(function (e, t) { se.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) { e(t); }, fail: function fail(e) { t(e); } })); }); case 4: _e33 = _context57.sent; return _context57.abrupt("return", !(!_e33.data || 0 !== _e33.data.code)); case 8: _context57.prev = 8; _context57.t0 = _context57["catch"](1); return _context57.abrupt("return", !1); case 11: case "end": return _context57.stop(); } } }, _callee57, null, [[1, 8]]); })); return _Os.apply(this, arguments); } function xs(_x40) { return _xs.apply(this, arguments); } function _xs() { _xs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59(e) { var _ce2, _e34, _t20, t, _t$debugInfo, n, s, _yield2, r, i, o; return _regenerator.default.wrap(function _callee59$(_context59) { while (1) { switch (_context59.prev = _context59.next) { case 0: if (b) { _context59.next = 2; break; } return _context59.abrupt("return", Promise.resolve()); case 2: if ("app" === P) { _ce2 = ce(), _e34 = _ce2.osName, _t20 = _ce2.osVersion; "ios" === _e34 && function (e) { if (!e || "string" != typeof e) return 0; var t = e.match(/^(\d+)./); return t && t[1] ? parseInt(t[1]) : 0; }(_t20) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)"); } t = e.__dev__; if (t.debugInfo) { _context59.next = 6; break; } return _context59.abrupt("return"); case 6: _t$debugInfo = t.debugInfo; n = _t$debugInfo.address; s = _t$debugInfo.servePort; _context59.next = 11; return function () { var _ref66 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee58(e, t) { var n, _s15, _r8; return _regenerator.default.wrap(function _callee58$(_context58) { while (1) { switch (_context58.prev = _context58.next) { case 0: _s15 = 0; case 1: if (!(_s15 < e.length)) { _context58.next = 11; break; } _r8 = e[_s15]; _context58.next = 5; return Os(_r8, t); case 5: if (!_context58.sent) { _context58.next = 8; break; } n = _r8; return _context58.abrupt("break", 11); case 8: _s15++; _context58.next = 1; break; case 11: return _context58.abrupt("return", { address: n, port: t }); case 12: case "end": return _context58.stop(); } } }, _callee58); })); return function (_x41, _x42) { return _ref66.apply(this, arguments); }; }()(n, s); case 11: _yield2 = _context59.sent; r = _yield2.address; if (!r) { _context59.next = 15; break; } return _context59.abrupt("return", (t.localAddress = r, void (t.localPort = s))); case 15: i = console["app" === P ? "error" : "warn"]; o = ""; if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", "web" === P && (o += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === P.indexOf("mp-") && (o += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { _context59.next = 19; break; } throw new Error(o); case 19: i(o); case 20: case "end": return _context59.stop(); } } }, _callee59); })); return _xs.apply(this, arguments); } function Rs(e) { e._initPromiseHub || (e._initPromiseHub = new I({ createPromise: function createPromise() { var t = Promise.resolve(); var n; n = 1, t = new Promise(function (e) { setTimeout(function () { e(); }, n); }); var s = e.auth(); return t.then(function () { return s.getLoginState(); }).then(function (e) { return e ? Promise.resolve() : s.signInAnonymously(); }); } })); } var Us = { tcb: It, tencent: It, aliyun: ge, private: bt }; var Ls = new ( /*#__PURE__*/function () { function _class7() { (0, _classCallCheck2.default)(this, _class7); } (0, _createClass2.default)(_class7, [{ key: "init", value: function init(e) { var t = {}; var n = Us[e.provider]; if (!n) throw new Error("未提供正确的provider参数"); t = n.init(e), b && function (e) { if (!b) return; var t = {}; e.__dev__ = t, t.debugLog = b && ("web" === P && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === P); var n = A; n && !n.code && (t.debugInfo = n); var s = new I({ createPromise: function createPromise() { return xs(e); } }); t.initLocalNetwork = function () { return s.exec(); }; }(t), Rs(t), xn(t), function (e) { var t = e.uploadFile; e.uploadFile = function (e) { return t.call(this, e); }; }(t), function (e) { e.database = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).database(); if (this._database) return this._database; var n = Bn($n, { uniClient: e }); return this._database = n, n; }, e.databaseForJQL = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).databaseForJQL(); if (this._databaseForJQL) return this._databaseForJQL; var n = Bn($n, { uniClient: e, isJQL: !0 }); return this._databaseForJQL = n, n; }; }(t), function (e) { e.getCurrentUserInfo = _s, e.chooseAndUploadFile = vs.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() { return Ss(e); } }), e.SSEChannel = Es, e.initSecureNetworkByWeixin = Ps(e), e.importObject = bs(e); }(t); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) { if (!t[e]) return; var n = t[e]; t[e] = function () { return n.apply(t, Array.from(arguments)); }, t[e] = function (e, t) { return function (n) { var _this25 = this; var s = !1; if ("callFunction" === t) { var _e30 = n && n.type || u; s = _e30 !== u; } var r = "callFunction" === t && !s, i = this._initPromiseHub.exec(); n = n || {}; var _te2 = te(n), o = _te2.success, a = _te2.fail, c = _te2.complete, h = i.then(function () { return s ? Promise.resolve() : q(M(t, "invoke"), n); }).then(function () { return e.call(_this25, n); }).then(function (e) { return s ? Promise.resolve(e) : q(M(t, "success"), e).then(function () { return q(M(t, "complete"), e); }).then(function () { return r && Q(B, { type: J, content: e }), Promise.resolve(e); }); }, function (e) { return s ? Promise.reject(e) : q(M(t, "fail"), e).then(function () { return q(M(t, "complete"), e); }).then(function () { return Q(B, { type: J, content: e }), Promise.reject(e); }); }); if (!(o || a || c)) return h; h.then(function (e) { o && o(e), c && c(e), r && Q(B, { type: J, content: e }); }, function (e) { a && a(e), c && c(e), r && Q(B, { type: J, content: e }); }); }; }(t[e], e).bind(t); }), t.init = this.init, t; } }]); return _class7; }())(); (function () { var e = E; var t = {}; if (e && 1 === e.length) t = e[0], Ls = Ls.init(t), Ls._isDefault = !0;else { var _t19 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; var _n16; _n16 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : O ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t19.forEach(function (e) { Ls[e] = function () { return console.error(_n16), Promise.reject(new ne({ code: "SYS_ERR", message: _n16 })); }; }); } Object.assign(Ls, { get mixinDatacom() { return Ss(Ls); } }), fs(Ls), Ls.addInterceptor = D, Ls.removeInterceptor = F, Ls.interceptObject = K, b && "web" === P && (window.uniCloud = Ls); })(); var Ns = Ls; exports.default = Ns; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 72), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 73)["default"])) /***/ }), /* 72 */ /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 73 */ /*!*********************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/mp.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.Behavior = Behavior; exports.Component = Component; exports.Page = Page; exports.nextTick = exports.default = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 74)); var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 78)); var _PROP_DEFAULT_VALUES; function parseData(data, vueComponentOptions) { if (!data) { return; } vueComponentOptions.mpOptions.data = data; } function parseComponents(vueComponentOptions) { vueComponentOptions.components = global.__wxVueOptions.components; } var _toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; function isFn(fn) { return typeof fn === 'function'; } function isPlainObject(obj) { return _toString.call(obj) === '[object Object]'; } function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } function noop() {} /** * Create a cached version of a pure function. */ function cached(fn) { var cache = Object.create(null); return function cachedFn(str) { var hit = cache[str]; return hit || (cache[str] = fn(str)); }; } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }); }); var SOURCE_KEY = '__data__'; var COMPONENT_LIFECYCLE = { created: 'onServiceCreated', attached: 'onServiceAttached', ready: 'mounted', moved: 'moved', detached: 'destroyed' }; var COMPONENT_LIFECYCLE_KEYS = Object.keys(COMPONENT_LIFECYCLE); var PAGE_LIFETIMES = { show: 'onPageShow', hide: 'onPageHide', resize: 'onPageResize' }; var PAGE_LIFETIMES_KEYS = Object.keys(PAGE_LIFETIMES); var PAGE_LIFECYCLE = ['onLoad', 'onShow', 'onReady', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onPageScroll', 'onResize', 'onTabItemTap']; function parsePageMethods(mpComponentOptions, vueComponentOptions) { var methods = Object.create(null); Object.keys(mpComponentOptions).forEach(function (key) { var value = mpComponentOptions[key]; if (isFn(value) && PAGE_LIFECYCLE.indexOf(key) === -1) { methods[key] = value; } }); vueComponentOptions.methods = methods; } function parsePageLifecycle(mpComponentOptions, vueComponentOptions) { Object.keys(mpComponentOptions).forEach(function (key) { if (PAGE_LIFECYCLE.indexOf(key) !== -1) { vueComponentOptions[key] = mpComponentOptions[key]; } }); } function parsePage(mpComponentOptions) { var vueComponentOptions = { mixins: [], mpOptions: {} }; parseComponents(vueComponentOptions); parseData(mpComponentOptions.data, vueComponentOptions); parsePageMethods(mpComponentOptions, vueComponentOptions); parsePageLifecycle(mpComponentOptions, vueComponentOptions); return vueComponentOptions; } function parseProperties(properties, vueComponentOptions) { if (!properties) { return; } vueComponentOptions.mpOptions.properties = properties; } function parseOptions(options, vueComponentOptions) { if (!options) { return; } vueComponentOptions.mpOptions.options = options; } function parseMethods(methods, vueComponentOptions) { if (!methods) { return; } if (methods.$emit) { console.warn('Method "$emit" conflicts with an existing Vue instance method'); delete methods.$emit; } vueComponentOptions.methods = methods; } function parseLifecycle(mpComponentOptions, vueComponentOptions) { COMPONENT_LIFECYCLE_KEYS.forEach(function (name) { if (hasOwn(mpComponentOptions, name)) { (vueComponentOptions[COMPONENT_LIFECYCLE[name]] || (vueComponentOptions[COMPONENT_LIFECYCLE[name]] = [])).push(mpComponentOptions[name]); } }); } var mpBehaviors = { 'wx://form-field': {}, 'wx://component-export': {} }; function callDefinitionFilter(mpComponentOptions) { var behaviors = mpComponentOptions.behaviors, definitionFilter = mpComponentOptions.definitionFilter; var behaviorDefinitionFilters = []; if (Array.isArray(behaviors)) { behaviors.forEach(function (behavior) { behavior = typeof behavior === 'string' ? mpBehaviors[behavior] : behavior; if (behavior.definitionFilter) { behaviorDefinitionFilters.push(behavior.definitionFilter); behavior.definitionFilter.call(null, mpComponentOptions, []); } }); } if (isFn(definitionFilter)) { return function (defFields) { definitionFilter(defFields, behaviorDefinitionFilters); }; } } function parseDefinitionFilter(mpComponentOptions, vueComponentOptions) { callDefinitionFilter(mpComponentOptions); } function parseBehavior(behavior) { var data = behavior.data, methods = behavior.methods, behaviors = behavior.behaviors, properties = behavior.properties; var vueComponentOptions = { watch: {}, mpOptions: { mpObservers: [] } }; parseData(data, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseProperties(properties, vueComponentOptions); parseLifecycle(behavior, vueComponentOptions); parseDefinitionFilter(behavior); return vueComponentOptions; } var BEHAVIORS = { 'wx://form-field': { beforeCreate: function beforeCreate() { var mpOptions = this.$options.mpOptions; if (!mpOptions.properties) { mpOptions.properties = Object.create(null); } var props = mpOptions.properties; // TODO form submit,reset if (!hasOwn(props, 'name')) { props.name = { type: String }; } if (!hasOwn(props, 'value')) { props.value = { type: String // 默认类型调整为 String,否则默认值为 null,导致一些自定义 input 显示不正确 }; } } } }; function parseBehaviors(behaviors, vueComponentOptions) { if (!behaviors) { return; } behaviors.forEach(function (behavior) { if (typeof behavior === 'string') { BEHAVIORS[behavior] && vueComponentOptions.mixins.push(BEHAVIORS[behavior]); } else { vueComponentOptions.mixins.push(parseBehavior(behavior)); } }); } function parseSinglePath(path) { return path.split('.'); } function parseMultiPaths(paths) { return paths.split(',').map(function (path) { return parseSinglePath(path); }); } function parseObservers(observers, vueComponentOptions) { if (!observers) { return; } var mpObservers = vueComponentOptions.mpOptions.mpObservers; Object.keys(observers).forEach(function (path) { mpObservers.push({ paths: parseMultiPaths(path), observer: observers[path] }); }); } function relative(from, to) { if (to.indexOf('/') === 0) { from = ''; } var fromArr = from.split('/'); var toArr = to.split('/'); fromArr.pop(); while (toArr.length) { var part = toArr.shift(); if (part !== '' && part !== '.') { if (part !== '..') { fromArr.push(part); } else { fromArr.pop(); } } } return fromArr.join('/'); } function parseRelations(relations, vueComponentOptions) { if (!relations) { return; } Object.keys(relations).forEach(function (name) { var relation = relations[name]; relation.name = name; relation.target = relation.target ? String(relation.target) : relative(global.__wxRoute, name); }); vueComponentOptions.mpOptions.relations = relations; } function parseExternalClasses(externalClasses, vueComponentOptions) { if (!externalClasses) { return; } if (!Array.isArray(externalClasses)) { externalClasses = [externalClasses]; } vueComponentOptions.mpOptions.externalClasses = externalClasses; if (!vueComponentOptions.mpOptions.properties) { vueComponentOptions.mpOptions.properties = Object.create(null); } externalClasses.forEach(function (externalClass) { vueComponentOptions.mpOptions.properties[camelize(externalClass)] = { type: String, value: '' }; }); } function parseLifetimes(lifetimes, vueComponentOptions) { if (!lifetimes) { return; } parseLifecycle(lifetimes, vueComponentOptions); } function parsePageLifetimes(pageLifetimes, vueComponentOptions) { if (!pageLifetimes) { return; } PAGE_LIFETIMES_KEYS.forEach(function (key) { var lifetimeFn = pageLifetimes[key]; isFn(lifetimeFn) && (vueComponentOptions[PAGE_LIFETIMES[key]] = lifetimeFn); }); } function parseComponent(mpComponentOptions) { var data = mpComponentOptions.data, options = mpComponentOptions.options, methods = mpComponentOptions.methods, behaviors = mpComponentOptions.behaviors, lifetimes = mpComponentOptions.lifetimes, observers = mpComponentOptions.observers, relations = mpComponentOptions.relations, properties = mpComponentOptions.properties, pageLifetimes = mpComponentOptions.pageLifetimes, externalClasses = mpComponentOptions.externalClasses; var vueComponentOptions = { mixins: [], props: {}, watch: {}, mpOptions: { mpObservers: [] } }; parseComponents(vueComponentOptions); parseData(data, vueComponentOptions); parseOptions(options, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseLifetimes(lifetimes, vueComponentOptions); parseObservers(observers, vueComponentOptions); parseRelations(relations, vueComponentOptions); parseProperties(properties, vueComponentOptions); parsePageLifetimes(pageLifetimes, vueComponentOptions); parseExternalClasses(externalClasses, vueComponentOptions); parseLifecycle(mpComponentOptions, vueComponentOptions); parseDefinitionFilter(mpComponentOptions); return vueComponentOptions; } function initRelationHandlers(type, handler, target, ctx) { if (!handler) { return; } var name = "_$".concat(type, "Handlers"); (ctx[name] || (ctx[name] = [])).push(function () { handler.call(ctx, target); }); } function initLinkedHandlers(relation, target, ctx) { var type = 'linked'; var name = relation.name; var relationNodes = ctx._$relationNodes || (ctx._$relationNodes = Object.create(null)); (relationNodes[name] || (relationNodes[name] = [])).push(target); initRelationHandlers(type, relation[type], target, ctx); } function initUnlinkedHandlers(relation, target, ctx) { var type = 'unlinked'; initRelationHandlers(type, relation[type], target, ctx); } function findParentRelation(parentVm, target, type) { var relations = parentVm && parentVm.$options.mpOptions && parentVm.$options.mpOptions.relations; if (!relations) { return []; } var name = Object.keys(relations).find(function (name) { var relation = relations[name]; return relation.target === target && relation.type === type; }); if (!name) { return []; } return [relations[name], parentVm]; } function initParentRelation(vm, childRelation, match) { var _match = match(vm, vm.$options.mpOptions.path), _match2 = (0, _slicedToArray2.default)(_match, 2), parentRelation = _match2[0], parentVm = _match2[1]; if (!parentRelation) { return; } initLinkedHandlers(parentRelation, vm, parentVm); initLinkedHandlers(childRelation, parentVm, vm); initUnlinkedHandlers(parentRelation, vm, parentVm); initUnlinkedHandlers(childRelation, parentVm, vm); } function initRelation(relation, vm) { var type = relation.type; if (type === 'parent') { initParentRelation(vm, relation, function matchParent(vm, target) { return findParentRelation(vm.$parent, target, 'child'); }); } else if (type === 'ancestor') { initParentRelation(vm, relation, function matchAncestor(vm, target) { var $parent = vm.$parent; while ($parent) { var ret = findParentRelation($parent, target, 'descendant'); if (ret.length) { return ret; } $parent = $parent.$parent; } return []; }); } } function initRelations(vm) { var _ref = vm.$options.mpOptions || {}, relations = _ref.relations; if (!relations) { return; } Object.keys(relations).forEach(function (name) { initRelation(relations[name], vm); }); } function handleRelations(vm, type) { // TODO 需要移除 relationNodes var handlers = vm["_$".concat(type, "Handlers")]; if (!handlers) { return; } handlers.forEach(function (handler) { return handler(); }); } var sharedPropertyDefinition = { enumerable: true, configurable: true, get: noop, set: noop }; function proxy(target, sourceKey, key) { sharedPropertyDefinition.get = function proxyGetter() { return this[sourceKey][key]; }; sharedPropertyDefinition.set = function proxySetter(val) { this[sourceKey][key] = val; }; Object.defineProperty(target, key, sharedPropertyDefinition); } function setDataByExprPath(exprPath, value, data) { var keys = exprPath.replace(/\[(\d+?)\]/g, '.$1').split('.'); keys.reduce(function (obj, key, idx) { if (idx === keys.length - 1) { obj[key] = value; } else { if (typeof obj[key] === 'undefined') { obj[key] = {}; } return obj[key]; } }, data); return keys.length === 1; } function setData(data, callback) { var _this = this; if (!isPlainObject(data)) { return; } Object.keys(data).forEach(function (key) { if (setDataByExprPath(key, data[key], _this.data)) { !hasOwn(_this, key) && proxy(_this, SOURCE_KEY, key); } }); this.$forceUpdate(); isFn(callback) && this.$nextTick(callback); } /** * https://github.com/swan-team/swan-js/blob/61e2a63f7aa576b5daafbe77fdfa7c65b977060c/src/utils/index.js */ var _toString$1 = Object.prototype.toString; /** * 深度assign的函数 * @param {Object} targetObject 要被拷贝的目标对象 * @param {Object} originObject 拷贝的源对象 * @return {Object} merge后的对象 */ var deepAssign = function deepAssign() { var targetObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var originObject = arguments.length > 1 ? arguments[1] : undefined; var originType = _toString$1.call(originObject); if (originType === '[object Array]') { targetObject = originObject.slice(0); return targetObject; } else if (originType === '[object Object]') { for (var key in originObject) { targetObject[key] = deepAssign(targetObject[key], originObject[key]); } return targetObject; } else if (originType === '[object Date]') { return new Date(originObject.getTime()); } else if (originType === '[object RegExp]') { var target = String(originObject); var lastIndex = target.lastIndexOf('/'); return new RegExp(target.slice(1, lastIndex), target.slice(lastIndex + 1)); } return originObject; }; /** * 深度拷贝逻辑,不同于lodash等库,但是与微信一致 * @param {*} [originObj] 原对象 * @return {Object|Array} 拷贝结果 */ var deepClone = function deepClone(originObj) { return deepAssign(_toString$1.call(originObj) === '[object Array]' ? [] : {}, originObj); }; var PROP_DEFAULT_VALUES = (_PROP_DEFAULT_VALUES = {}, (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, String, ''), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Number, 0), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Boolean, false), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Object, null), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Array, []), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, null, null), _PROP_DEFAULT_VALUES); function getDefaultVal(propType) { return PROP_DEFAULT_VALUES[propType]; } function getPropertyVal(options) { if (isPlainObject(options)) { if (hasOwn(options, 'value')) { return options.value; } return getDefaultVal(options.type); } return getDefaultVal(options); } function getType(propOptions) { return isPlainObject(propOptions) ? propOptions.type : propOptions; } function validateProp(key, propsOptions, propsData, vm) { var value = propsData[key]; if (value !== undefined) { var propOptions = propsOptions[key]; var type = getType(propOptions); value = formatVal(value, type); var observer = propOptions && propOptions.observer; if (observer) { // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 setTimeout(function () { observe(observer, vm, value); }, 4); } return value; } return getPropertyVal(propsOptions[key]); } function formatVal(val, type) { if (type === Boolean) { return !!val; } else if (type === String) { return String(val); } return val; } function observe(observer, vm, newVal, oldVal) { try { if (typeof observer === 'function') { observer.call(vm, newVal, oldVal); } else if (typeof observer === 'string' && typeof vm[observer] === 'function') { vm[observer](newVal, oldVal); } } catch (err) { console.error("execute observer ".concat(observer, " callback fail! err: ").concat(err)); } } function initProperties(vm, instanceData) { var properties = vm.$options.mpOptions.properties; if (!properties) { return; } var propsData = deepClone(vm.$options.propsData) || {}; var _loop = function _loop(key) { var observer = isPlainObject(properties[key]) ? properties[key].observer : false; var value = validateProp(key, properties, propsData, vm); Object.defineProperty(instanceData, key, { enumerable: true, configurable: true, get: function get() { return value; }, set: function set(newVal) { var oldVal = value; /* eslint-disable no-self-compare */ if (newVal === value || newVal !== newVal && value !== value) { return; } // TODO 临时方案,clone array value = Array.isArray(newVal) ? newVal.slice(0) : newVal; if (observer) { observe(observer, vm, newVal, oldVal); } // 触发渲染 vm.$forceUpdate(); } }); }; for (var key in properties) { _loop(key); } } function updateProperties(vm) { var properties = vm.$options.mpOptions && vm.$options.mpOptions.properties; var propsData = vm.$options.propsData; if (propsData && properties) { Object.keys(properties).forEach(function (key) { if (hasOwn(propsData, key)) { vm[key] = formatVal(propsData[key], getType(properties[key])); } }); } } function initState(vm) { var instanceData = JSON.parse(JSON.stringify(vm.$options.mpOptions.data || {})); vm[SOURCE_KEY] = instanceData; var propertyDefinition = { get: function get() { return vm[SOURCE_KEY]; }, set: function set(value) { vm[SOURCE_KEY] = value; } }; Object.defineProperties(vm, { data: propertyDefinition, properties: propertyDefinition }); vm.setData = setData; initProperties(vm, instanceData); Object.keys(instanceData).forEach(function (key) { proxy(vm, SOURCE_KEY, key); }); } function initMethods(vm) { var oldEmit = vm.$emit; vm.triggerEvent = function (eventName, detail, options) { var target = { dataset: vm.$el.dataset }; var event = { target: target, currentTarget: target, detail: detail, preventDefault: noop, stopPropagation: noop }; oldEmit.call(vm, eventName, event); }; // 主要是Vant 自己封装了 $emit,放到 methods 中会触发 Vue 的警告,索性,框架直接重写该方法 vm.$emit = function () { vm.triggerEvent.apply(vm, arguments); }; vm.getRelationNodes = function (relationKey) { // 需要过滤已被销毁的vm /* eslint-disable no-mixed-operators */ return (vm._$relationNodes && vm._$relationNodes[relationKey] || []).filter(function (vm) { return !vm._isDestroyed; }); }; vm._$updateProperties = updateProperties; } function handleObservers(vm) { var watch = vm.$options.watch; if (!watch) { return; } Object.keys(watch).forEach(function (name) { var observer = watch[name]; if (observer.mounted) { var val = vm[name]; var handler = observer.handler; if (typeof handler === 'string') { handler = vm[handler]; } handler && handler.call(vm, val, val); } }); } var polyfill = { beforeCreate: function beforeCreate() { // 取消 development 时的 Proxy,避免小程序组件模板中使用尚未定义的属性告警 this._renderProxy = this; this._$self = this; this._$noop = noop; }, created: function created() { // properties 中可能会访问 methods,故需要在 created 中初始化 initState(this); initMethods(this); initRelations(this); }, mounted: function mounted() { handleObservers(this); }, destroyed: function destroyed() { handleRelations(this, 'unlinked'); } }; global.__wxRoute = ''; global.__wxComponents = Object.create(null); global.__wxVueOptions = Object.create(null); function Page(options) { var pageOptions = parsePage(options); pageOptions.mixins.unshift(polyfill); pageOptions.mpOptions.path = global.__wxRoute; global.__wxComponents[global.__wxRoute] = pageOptions; } function initRelationsHandler(vueComponentOptions) { // linked 需要在当前组件 attached 之后再执行 if (!vueComponentOptions.onServiceAttached) { vueComponentOptions.onServiceAttached = []; } vueComponentOptions.onServiceAttached.push(function onServiceAttached() { handleRelations(this, 'linked'); }); } function Component(options) { var componentOptions = parseComponent(options); componentOptions.mixins.unshift(polyfill); componentOptions.mpOptions.path = global.__wxRoute; initRelationsHandler(componentOptions); global.__wxComponents[global.__wxRoute] = componentOptions; } function Behavior(options) { return options; } var nextTick = _vue.default.nextTick; exports.nextTick = nextTick; var index = uni.__$wx__; var _default = index; exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 72))) /***/ }), /* 74 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ 75); var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ 76); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 20); var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ 77); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); } module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 75 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 76 */ /*!*********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 77 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 78 */ /*!**********************!*\ !*** external "Vue" ***! \**********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = Vue; /***/ }), /* 79 */ /*!**********************************************************!*\ !*** ./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 */ 80)(); 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); } } /***/ }), /* 80 */ /*!*******************************************************************!*\ !*** ./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 exports; }, module.exports.__esModule = true, module.exports["default"] = module.exports; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 81 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 82 */ /*!*****************************************************************!*\ !*** ./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; /***/ }), /* 83 */ /*!*********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 84); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) setPrototypeOf(subClass, superClass); } module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 84 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _setPrototypeOf(o, p) { module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _setPrototypeOf(o, p); } module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 85 */ /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ 81); function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return assertThisInitialized(self); } module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 86 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _getPrototypeOf(o) { module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _getPrototypeOf(o); } module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 87 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ 86); var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 84); var isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ 88); var construct = __webpack_require__(/*! ./construct.js */ 89); function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return construct(Class, arguments, getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return setPrototypeOf(Wrapper, Class); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _wrapNativeSuper(Class); } module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 88 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 89 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/construct.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 84); var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ 90); function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; } else { module.exports = _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) setPrototypeOf(instance, Class.prototype); return instance; }, module.exports.__esModule = true, module.exports["default"] = module.exports; } return _construct.apply(null, arguments); } module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 90 */ /*!*************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 91 */ /*!*************************************************************!*\ !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0; exports.compileI18nJsonStr = compileI18nJsonStr; exports.hasI18nJson = hasI18nJson; exports.initVueI18n = initVueI18n; exports.isI18nStr = isI18nStr; exports.isString = void 0; exports.normalizeLocale = normalizeLocale; exports.parseI18nJson = parseI18nJson; exports.resolveLocale = resolveLocale; var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 74)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); var isObject = function isObject(val) { return val !== null && (0, _typeof2.default)(val) === 'object'; }; var defaultDelimiters = ['{', '}']; var BaseFormatter = /*#__PURE__*/function () { function BaseFormatter() { (0, _classCallCheck2.default)(this, BaseFormatter); this._caches = Object.create(null); } (0, _createClass2.default)(BaseFormatter, [{ key: "interpolate", value: function interpolate(message, values) { var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters; if (!values) { return [message]; } var tokens = this._caches[message]; if (!tokens) { tokens = parse(message, delimiters); this._caches[message] = tokens; } return compile(tokens, values); } }]); return BaseFormatter; }(); exports.Formatter = BaseFormatter; var RE_TOKEN_LIST_VALUE = /^(?:\d)+/; var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; function parse(format, _ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), startDelimiter = _ref2[0], endDelimiter = _ref2[1]; var tokens = []; var position = 0; var text = ''; while (position < format.length) { var char = format[position++]; if (char === startDelimiter) { if (text) { tokens.push({ type: 'text', value: text }); } text = ''; var sub = ''; char = format[position++]; while (char !== undefined && char !== endDelimiter) { sub += char; char = format[position++]; } var isClosed = char === endDelimiter; var type = RE_TOKEN_LIST_VALUE.test(sub) ? 'list' : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? 'named' : 'unknown'; tokens.push({ value: sub, type: type }); } // else if (char === '%') { // // when found rails i18n syntax, skip text capture // if (format[position] !== '{') { // text += char // } // } else { text += char; } } text && tokens.push({ type: 'text', value: text }); return tokens; } function compile(tokens, values) { var compiled = []; var index = 0; var mode = Array.isArray(values) ? 'list' : isObject(values) ? 'named' : 'unknown'; if (mode === 'unknown') { return compiled; } while (index < tokens.length) { var token = tokens[index]; switch (token.type) { case 'text': compiled.push(token.value); break; case 'list': compiled.push(values[parseInt(token.value, 10)]); break; case 'named': if (mode === 'named') { compiled.push(values[token.value]); } else { if (true) { console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!")); } } break; case 'unknown': if (true) { console.warn("Detect 'unknown' type of token!"); } break; } index++; } return compiled; } var LOCALE_ZH_HANS = 'zh-Hans'; exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS; var LOCALE_ZH_HANT = 'zh-Hant'; exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT; var LOCALE_EN = 'en'; exports.LOCALE_EN = LOCALE_EN; var LOCALE_FR = 'fr'; exports.LOCALE_FR = LOCALE_FR; var LOCALE_ES = 'es'; exports.LOCALE_ES = LOCALE_ES; var hasOwnProperty = Object.prototype.hasOwnProperty; var hasOwn = function hasOwn(val, key) { return hasOwnProperty.call(val, key); }; var defaultFormatter = new BaseFormatter(); function include(str, parts) { return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); } function startsWith(str, parts) { return parts.find(function (part) { return str.indexOf(part) === 0; }); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, '-'); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale === 'chinese') { // 支付宝 return LOCALE_ZH_HANS; } if (locale.indexOf('zh') === 0) { if (locale.indexOf('-hans') > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf('-hant') > -1) { return LOCALE_ZH_HANT; } if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } var locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; if (messages && Object.keys(messages).length > 0) { locales = Object.keys(messages); } var lang = startsWith(locale, locales); if (lang) { return lang; } } var I18n = /*#__PURE__*/function () { function I18n(_ref3) { var locale = _ref3.locale, fallbackLocale = _ref3.fallbackLocale, messages = _ref3.messages, watcher = _ref3.watcher, formater = _ref3.formater; (0, _classCallCheck2.default)(this, I18n); this.locale = LOCALE_EN; this.fallbackLocale = LOCALE_EN; this.message = {}; this.messages = {}; this.watchers = []; if (fallbackLocale) { this.fallbackLocale = fallbackLocale; } this.formater = formater || defaultFormatter; this.messages = messages || {}; this.setLocale(locale || LOCALE_EN); if (watcher) { this.watchLocale(watcher); } } (0, _createClass2.default)(I18n, [{ key: "setLocale", value: function setLocale(locale) { var _this = this; var oldLocale = this.locale; this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; if (!this.messages[this.locale]) { // 可能初始化时不存在 this.messages[this.locale] = {}; } this.message = this.messages[this.locale]; // 仅发生变化时,通知 if (oldLocale !== this.locale) { this.watchers.forEach(function (watcher) { watcher(_this.locale, oldLocale); }); } } }, { key: "getLocale", value: function getLocale() { return this.locale; } }, { key: "watchLocale", value: function watchLocale(fn) { var _this2 = this; var index = this.watchers.push(fn) - 1; return function () { _this2.watchers.splice(index, 1); }; } }, { key: "add", value: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var curMessages = this.messages[locale]; if (curMessages) { if (override) { Object.assign(curMessages, message); } else { Object.keys(message).forEach(function (key) { if (!hasOwn(curMessages, key)) { curMessages[key] = message[key]; } }); } } else { this.messages[locale] = message; } } }, { key: "f", value: function f(message, values, delimiters) { return this.formater.interpolate(message, values, delimiters).join(''); } }, { key: "t", value: function t(key, locale, values) { var message = this.message; if (typeof locale === 'string') { locale = normalizeLocale(locale, this.messages); locale && (message = this.messages[locale]); } else { values = locale; } if (!hasOwn(message, key)) { console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default.")); return key; } return this.formater.interpolate(message[key], values).join(''); } }]); return I18n; }(); exports.I18n = I18n; function watchAppLocale(appVm, i18n) { // 需要保证 watch 的触发在组件渲染之前 if (appVm.$watchLocale) { // vue2 appVm.$watchLocale(function (newLocale) { i18n.setLocale(newLocale); }); } else { appVm.$watch(function () { return appVm.$locale; }, function (newLocale) { i18n.setLocale(newLocale); }); } } function getDefaultLocale() { if (typeof uni !== 'undefined' && uni.getLocale) { return uni.getLocale(); } // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale if (typeof global !== 'undefined' && global.getLocale) { return global.getLocale(); } return LOCALE_EN; } function initVueI18n(locale) { var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined; var watcher = arguments.length > 3 ? arguments[3] : undefined; // 兼容旧版本入参 if (typeof locale !== 'string') { var _ref4 = [messages, locale]; locale = _ref4[0]; messages = _ref4[1]; } if (typeof locale !== 'string') { // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined locale = getDefaultLocale(); } if (typeof fallbackLocale !== 'string') { fallbackLocale = typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale || LOCALE_EN; } var i18n = new I18n({ locale: locale, fallbackLocale: fallbackLocale, messages: messages, watcher: watcher }); var _t = function t(key, values) { if (typeof getApp !== 'function') { // app view /* eslint-disable no-func-assign */ _t = function t(key, values) { return i18n.t(key, values); }; } else { var isWatchedAppLocale = false; _t = function t(key, values) { var appVm = getApp().$vm; // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化 // options: { // type: Array, // default () { // return [{ // icon: 'shop', // text: t("uni-goods-nav.options.shop"), // }, { // icon: 'cart', // text: t("uni-goods-nav.options.cart") // }] // } // }, if (appVm) { // 触发响应式 appVm.$locale; if (!isWatchedAppLocale) { isWatchedAppLocale = true; watchAppLocale(appVm, i18n); } } return i18n.t(key, values); }; } return _t(key, values); }; return { i18n: i18n, f: function f(message, values, delimiters) { return i18n.f(message, values, delimiters); }, t: function t(key, values) { return _t(key, values); }, add: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; return i18n.add(locale, message, override); }, watch: function watch(fn) { return i18n.watchLocale(fn); }, getLocale: function getLocale() { return i18n.getLocale(); }, setLocale: function setLocale(newLocale) { return i18n.setLocale(newLocale); } }; } var isString = function isString(val) { return typeof val === 'string'; }; exports.isString = isString; var formater; function hasI18nJson(jsonObj, delimiters) { if (!formater) { formater = new BaseFormatter(); } return walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { return true; } } else { return hasI18nJson(value, delimiters); } }); } function parseI18nJson(jsonObj, values, delimiters) { if (!formater) { formater = new BaseFormatter(); } walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, values, delimiters); } } else { parseI18nJson(value, values, delimiters); } }); return jsonObj; } function compileI18nJsonStr(jsonStr, _ref5) { var locale = _ref5.locale, locales = _ref5.locales, delimiters = _ref5.delimiters; if (!isI18nStr(jsonStr, delimiters)) { return jsonStr; } if (!formater) { formater = new BaseFormatter(); } var localeValues = []; Object.keys(locales).forEach(function (name) { if (name !== locale) { localeValues.push({ locale: name, values: locales[name] }); } }); localeValues.unshift({ locale: locale, values: locales[locale] }); try { return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2); } catch (e) {} return jsonStr; } function isI18nStr(value, delimiters) { return value.indexOf(delimiters[0]) > -1; } function compileStr(value, values, delimiters) { return formater.interpolate(value, values, delimiters).join(''); } function compileValue(jsonObj, key, localeValues, delimiters) { var value = jsonObj[key]; if (isString(value)) { // 存在国际化 if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, localeValues[0].values, delimiters); if (localeValues.length > 1) { // 格式化国际化语言 var valueLocales = jsonObj[key + 'Locales'] = {}; localeValues.forEach(function (localValue) { valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters); }); } } } else { compileJsonObj(value, localeValues, delimiters); } } function compileJsonObj(jsonObj, localeValues, delimiters) { walkJsonObj(jsonObj, function (jsonObj, key) { compileValue(jsonObj, key, localeValues, delimiters); }); return jsonObj; } function walkJsonObj(jsonObj, walk) { if (Array.isArray(jsonObj)) { for (var i = 0; i < jsonObj.length; i++) { if (walk(jsonObj, i)) { return true; } } } else if (isObject(jsonObj)) { for (var key in jsonObj) { if (walk(jsonObj, key)) { return true; } } } return false; } function resolveLocale(locales) { return function (locale) { if (!locale) { return locale; } locale = normalizeLocale(locale) || locale; return resolveLocaleChain(locale).find(function (locale) { return locales.indexOf(locale) > -1; }); }; } function resolveLocaleChain(locale) { var chain = []; var tokens = locale.split('-'); while (tokens.length) { chain.push(tokens.join('-')); tokens.pop(); } return chain; } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 72))) /***/ }), /* 92 */ /*!***************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages.json?{"type":"origin-pages-json"} ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "pages": [{ "path": "pages/home/home", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/test/test", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/index", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/monitor", "style": { "navigationStyle": "custom" } }, { "path": "pages/test/test", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "pageOrientation": "landscape" } }; exports.default = _default; /***/ }), /* 93 */ /*!**************************************************************!*\ !*** D:/code/private/Monitor-APP/pages.json?{"type":"stat"} ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "appid": "__UNI__CA903B7" }; exports.default = _default; /***/ }), /* 94 */ /*!********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 74));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar config = {\n version: 'v2.4.4-20221102',\n yAxisWidth: 15,\n xAxisHeight: 22,\n xAxisTextPadding: 3,\n padding: [10, 10, 10, 10],\n pixelRatio: 1,\n rotate: false,\n fontSize: 13,\n fontColor: '#666666',\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n pieChartLinePadding: 15,\n pieChartTextPadding: 5,\n titleFontSize: 20,\n subtitleFontSize: 15,\n toolTipPadding: 3,\n toolTipBackground: '#000000',\n toolTipOpacity: 0.7,\n toolTipLineHeight: 20,\n radarLabelTextMargin: 13\n};\nvar assign = function assign(target) {\n for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n varArgs[_key2 - 1] = arguments[_key2];\n }\n if (target == null) {\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n }\n if (!varArgs || varArgs.length <= 0) {\n return target;\n }\n // 深度合并对象\n function deepAssign(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ? deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n }\n return obj1;\n }\n varArgs.forEach(function (val) {\n target = deepAssign(target, val);\n });\n return target;\n};\nvar util = {\n toFixed: function toFixed(num, limit) {\n limit = limit || 2;\n if (this.isFloat(num)) {\n num = num.toFixed(limit);\n }\n return num;\n },\n isFloat: function isFloat(num) {\n return num % 1 !== 0;\n },\n approximatelyEqual: function approximatelyEqual(num1, num2) {\n return Math.abs(num1 - num2) < 1e-10;\n },\n isSameSign: function isSameSign(num1, num2) {\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n },\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n return this.isSameSign(p1.x, p2.x);\n },\n isCollision: function isCollision(obj1, obj2) {\n obj1.end = {};\n obj1.end.x = obj1.start.x + obj1.width;\n obj1.end.y = obj1.start.y - obj1.height;\n obj2.end = {};\n obj2.end.x = obj2.start.x + obj2.width;\n obj2.end.y = obj2.start.y - obj2.height;\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n return !flag;\n }\n};\n\n//兼容H5点击事件\nfunction getH5Offset(e) {\n e.mp = {\n changedTouches: []\n };\n e.mp.changedTouches.push({\n x: e.offsetX,\n y: e.offsetY\n });\n return e;\n}\n\n// hex 转 rgba\nfunction hexToRgb(hexValue, opc) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\nfunction findRange(num, type, limit) {\n if (isNaN(num)) {\n throw new Error('[uCharts] series数据需为Number格式');\n }\n limit = limit || 10;\n type = type ? type : 'upper';\n var multiple = 1;\n while (limit < 1) {\n limit *= 10;\n multiple *= 10;\n }\n if (type === 'upper') {\n num = Math.ceil(num * multiple);\n } else {\n num = Math.floor(num * multiple);\n }\n while (num % limit !== 0) {\n if (type === 'upper') {\n if (num == num + 1) {\n //修复数据值过大num++无效的bug by 向日葵 @xrk_jy\n break;\n }\n num++;\n } else {\n num--;\n }\n }\n return num / multiple;\n}\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n var seriesTemp = [];\n for (var k = 0; k < dayArr.length; k++) {\n var seriesItem = {\n data: [],\n name: nameArr[k],\n color: colorArr[k]\n };\n for (var i = 0, len = kdata.length; i < len; i++) {\n if (i < dayArr[k]) {\n seriesItem.data.push(null);\n continue;\n }\n var sum = 0;\n for (var j = 0; j < dayArr[k]; j++) {\n sum += kdata[i - j][1];\n }\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n }\n seriesTemp.push(seriesItem);\n }\n return seriesTemp;\n}\nfunction calValidDistance(self, distance, chartData, config, opts) {\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;\n }\n var validDistance = distance;\n if (distance >= 0) {\n validDistance = 0;\n self.uevent.trigger('scrollLeft');\n self.scrollOption.position = 'left';\n opts.xAxis.scrollPosition = 'left';\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n validDistance = dataChartAreaWidth - dataChartWidth;\n self.uevent.trigger('scrollRight');\n self.scrollOption.position = 'right';\n opts.xAxis.scrollPosition = 'right';\n } else {\n self.scrollOption.position = distance;\n opts.xAxis.scrollPosition = distance;\n }\n return validDistance;\n}\nfunction isInAngleRange(angle, startAngle, endAngle) {\n function adjust(angle) {\n while (angle < 0) {\n angle += 2 * Math.PI;\n }\n while (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n }\n angle = adjust(angle);\n startAngle = adjust(startAngle);\n endAngle = adjust(endAngle);\n if (startAngle > endAngle) {\n endAngle += 2 * Math.PI;\n if (angle < startAngle) {\n angle += 2 * Math.PI;\n }\n }\n return angle >= startAngle && angle <= endAngle;\n}\nfunction createCurveControlPoints(points, i) {\n function isNotMiddlePoint(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, points[i + 1].y);\n } else {\n return false;\n }\n }\n function isNotMiddlePointX(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x, points[i + 1].x);\n } else {\n return false;\n }\n }\n var a = 0.2;\n var b = 0.2;\n var pAx = null;\n var pAy = null;\n var pBx = null;\n var pBy = null;\n if (i < 1) {\n pAx = points[0].x + (points[1].x - points[0].x) * a;\n pAy = points[0].y + (points[1].y - points[0].y) * a;\n } else {\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n }\n if (i > points.length - 3) {\n var last = points.length - 1;\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n } else {\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n }\n if (isNotMiddlePoint(points, i + 1)) {\n pBy = points[i + 1].y;\n }\n if (isNotMiddlePoint(points, i)) {\n pAy = points[i].y;\n }\n if (isNotMiddlePointX(points, i + 1)) {\n pBx = points[i + 1].x;\n }\n if (isNotMiddlePointX(points, i)) {\n pAx = points[i].x;\n }\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n pAy = points[i].y;\n }\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n pBy = points[i + 1].y;\n }\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n pAx = points[i].x;\n }\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n pBx = points[i + 1].x;\n }\n return {\n ctrA: {\n x: pAx,\n y: pAy\n },\n ctrB: {\n x: pBx,\n y: pBy\n }\n };\n}\nfunction convertCoordinateOrigin(x, y, center) {\n return {\n x: center.x + x,\n y: center.y - y\n };\n}\nfunction avoidCollision(obj, target) {\n if (target) {\n // is collision test\n while (util.isCollision(obj, target)) {\n if (obj.start.x > 0) {\n obj.start.y--;\n } else if (obj.start.x < 0) {\n obj.start.y++;\n } else {\n if (obj.start.y > 0) {\n obj.start.y++;\n } else {\n obj.start.y--;\n }\n }\n }\n }\n return obj;\n}\nfunction fixPieSeries(series, opts, config) {\n var pieSeriesArr = [];\n if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n opts._pieSeries_ = series;\n var oldseries = series[0].data;\n for (var i = 0; i < oldseries.length; i++) {\n oldseries[i].formatter = series[0].formatter;\n oldseries[i].data = oldseries[i].value;\n pieSeriesArr.push(oldseries[i]);\n }\n opts.series = pieSeriesArr;\n } else {\n pieSeriesArr = series;\n }\n return pieSeriesArr;\n}\nfunction fillSeries(series, opts, config) {\n var index = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (!item.color) {\n item.color = config.color[index];\n index = (index + 1) % config.color.length;\n }\n if (!item.linearIndex) {\n item.linearIndex = i;\n }\n if (!item.index) {\n item.index = 0;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (typeof item.show == \"undefined\") {\n item.show = true;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (!item.pointShape) {\n item.pointShape = \"circle\";\n }\n if (!item.legendShape) {\n switch (item.type) {\n case 'line':\n item.legendShape = \"line\";\n break;\n case 'column':\n case 'bar':\n item.legendShape = \"rect\";\n break;\n case 'area':\n case 'mount':\n item.legendShape = \"triangle\";\n break;\n default:\n item.legendShape = \"circle\";\n }\n }\n }\n return series;\n}\nfunction fillCustomColor(linearType, customColor, series, config) {\n var newcolor = customColor || [];\n if (linearType == 'custom' && newcolor.length == 0) {\n newcolor = config.linearColor;\n }\n if (linearType == 'custom' && newcolor.length < series.length) {\n var chazhi = series.length - newcolor.length;\n for (var i = 0; i < chazhi; i++) {\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n }\n }\n return newcolor;\n}\nfunction getDataRange(minData, maxData) {\n var limit = 0;\n var range = maxData - minData;\n if (range >= 10000) {\n limit = 1000;\n } else if (range >= 1000) {\n limit = 100;\n } else if (range >= 100) {\n limit = 10;\n } else if (range >= 10) {\n limit = 5;\n } else if (range >= 1) {\n limit = 1;\n } else if (range >= 0.1) {\n limit = 0.1;\n } else if (range >= 0.01) {\n limit = 0.01;\n } else if (range >= 0.001) {\n limit = 0.001;\n } else if (range >= 0.0001) {\n limit = 0.0001;\n } else if (range >= 0.00001) {\n limit = 0.00001;\n } else {\n limit = 0.000001;\n }\n return {\n minRange: findRange(minData, 'lower', limit),\n maxRange: findRange(maxData, 'upper', limit)\n };\n}\nfunction measureText(text, fontSize, context) {\n var width = 0;\n text = String(text);\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n context.setFontSize(fontSize);\n return context.measureText(text).width;\n } else {\n var text = text.split('');\n for (var i = 0; i < text.length; i++) {\n var item = text[i];\n if (/[a-zA-Z]/.test(item)) {\n width += 7;\n } else if (/[0-9]/.test(item)) {\n width += 5.5;\n } else if (/\\./.test(item)) {\n width += 2.7;\n } else if (/-/.test(item)) {\n width += 3.25;\n } else if (/:/.test(item)) {\n width += 2.5;\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n width += 10;\n } else if (/\\(|\\)/.test(item)) {\n width += 3.73;\n } else if (/\\s/.test(item)) {\n width += 2.5;\n } else if (/%/.test(item)) {\n width += 8;\n } else {\n width += 10;\n }\n }\n return width * fontSize / 10;\n }\n}\nfunction dataCombine(series) {\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data);\n }, []);\n}\nfunction dataCombineStack(series, len) {\n var sum = new Array(len);\n for (var j = 0; j < sum.length; j++) {\n sum[j] = 0;\n }\n for (var i = 0; i < series.length; i++) {\n for (var j = 0; j < sum.length; j++) {\n sum[j] += series[i].data[j];\n }\n }\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data).concat(sum);\n }, []);\n}\nfunction getTouches(touches, opts, e) {\n var x, y;\n if (touches.clientX) {\n if (opts.rotate) {\n y = opts.height - touches.clientX * opts.pix;\n x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n } else {\n x = touches.clientX * opts.pix;\n y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n }\n } else {\n if (opts.rotate) {\n y = opts.height - touches.x * opts.pix;\n x = touches.y * opts.pix;\n } else {\n x = touches.x * opts.pix;\n y = touches.y * opts.pix;\n }\n }\n return {\n x: x,\n y: y\n };\n}\nfunction getSeriesDataItem(series, index, group) {\n var data = [];\n var newSeries = [];\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n if (indexIsArr) {\n var tempSeries = filterSeries(series);\n for (var i = 0; i < group.length; i++) {\n newSeries.push(tempSeries[group[i]]);\n }\n } else {\n newSeries = series;\n }\n ;\n for (var _i = 0; _i < newSeries.length; _i++) {\n var item = newSeries[_i];\n var tmpindex = -1;\n if (indexIsArr) {\n tmpindex = index[_i];\n } else {\n tmpindex = index;\n }\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n var seriesItem = {};\n seriesItem.color = item.color;\n seriesItem.type = item.type;\n seriesItem.style = item.style;\n seriesItem.pointShape = item.pointShape;\n seriesItem.disableLegend = item.disableLegend;\n seriesItem.name = item.name;\n seriesItem.show = item.show;\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n data.push(seriesItem);\n }\n }\n return data;\n}\nfunction getMaxTextListLength(list, fontSize, context) {\n var lengthList = list.map(function (item) {\n return measureText(item, fontSize, context);\n });\n return Math.max.apply(null, lengthList);\n}\nfunction getRadarCoordinateSeries(length) {\n var eachAngle = 2 * Math.PI / length;\n var CoordinateSeries = [];\n for (var i = 0; i < length; i++) {\n CoordinateSeries.push(eachAngle * i);\n }\n return CoordinateSeries.map(function (item) {\n return -1 * item + Math.PI / 2;\n });\n}\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n var points = {};\n if (group.length > 0) {\n var filterPoints = [];\n for (var i = 0; i < group.length; i++) {\n filterPoints.push(calPoints[group[i]]);\n }\n points = filterPoints[0][index[0]];\n } else {\n for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n if (calPoints[_i2][index]) {\n points = calPoints[_i2][index];\n break;\n }\n }\n }\n ;\n var textList = seriesData.map(function (item) {\n var titleText = null;\n if (opts.categories && opts.categories.length > 0) {\n titleText = categories[index];\n }\n ;\n return {\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n color: item.color\n };\n });\n var offset = {\n x: Math.round(points.x),\n y: Math.round(points.y)\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n color: item.color,\n disableLegend: item.disableLegend ? true : false\n };\n });\n textList = textList.filter(function (item) {\n if (item.disableLegend !== true) {\n return item;\n }\n });\n var offset = {\n x: Math.round(points),\n y: 0\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var calPoints = opts.chartData.calPoints;\n var upColor = extra.color.upFill;\n var downColor = extra.color.downFill;\n //颜色顺序为开盘,收盘,最低,最高\n var color = [upColor, upColor, downColor, upColor];\n var textList = [];\n seriesData.map(function (item) {\n if (index == 0) {\n if (item.data[1] - item.data[0] < 0) {\n color[1] = downColor;\n } else {\n color[1] = upColor;\n }\n } else {\n if (item.data[0] < series[index - 1][1]) {\n color[0] = downColor;\n }\n if (item.data[1] < item.data[0]) {\n color[1] = downColor;\n }\n if (item.data[2] > series[index - 1][1]) {\n color[2] = upColor;\n }\n if (item.data[3] < series[index - 1][1]) {\n color[3] = downColor;\n }\n }\n var text1 = {\n text: '开盘:' + item.data[0],\n color: color[0]\n };\n var text2 = {\n text: '收盘:' + item.data[1],\n color: color[1]\n };\n var text3 = {\n text: '最低:' + item.data[2],\n color: color[2]\n };\n var text4 = {\n text: '最高:' + item.data[3],\n color: color[3]\n };\n textList.push(text1, text2, text3, text4);\n });\n var validCalPoints = [];\n var offset = {\n x: 0,\n y: 0\n };\n for (var i = 0; i < calPoints.length; i++) {\n var points = calPoints[i];\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\n validCalPoints.push(points[index]);\n }\n }\n offset.x = Math.round(validCalPoints[0][0].x);\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction filterSeries(series) {\n var tempSeries = [];\n for (var i = 0; i < series.length; i++) {\n if (series[i].show == true) {\n tempSeries.push(series[i]);\n }\n }\n return tempSeries;\n}\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var xAxisPoints = [];\n if (calPoints && calPoints.length > 0) {\n if (!opts.categories) {\n spacing = 0;\n } else {\n for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n }\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n xAxisPoints = opts.chartData.xAxisPoints;\n }\n }\n if (isInExactChartArea(currentPoints, opts, config)) {\n if (!opts.categories) {\n var timePoints = Array(calPoints.length);\n for (var _i3 = 0; _i3 < calPoints.length; _i3++) {\n timePoints[_i3] = Array(calPoints[_i3].length);\n for (var j = 0; j < calPoints[_i3].length; j++) {\n timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);\n }\n }\n ;\n var pointValue = Array(timePoints.length);\n var pointIndex = Array(timePoints.length);\n for (var _i4 = 0; _i4 < timePoints.length; _i4++) {\n pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);\n pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);\n }\n var minValue = Math.min.apply(null, pointValue);\n current.index = [];\n for (var _i5 = 0; _i5 < pointValue.length; _i5++) {\n if (pointValue[_i5] == minValue) {\n current.group.push(_i5);\n current.index.push(pointIndex[_i5]);\n }\n }\n ;\n } else {\n xAxisPoints.forEach(function (item, index) {\n if (currentPoints.x + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n }\n return current;\n}\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var yAxisPoints = opts.chartData.yAxisPoints;\n if (calPoints && calPoints.length > 0) {\n if (isInExactChartArea(currentPoints, opts, config)) {\n yAxisPoints.forEach(function (item, index) {\n if (currentPoints.y + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n return current;\n}\nfunction findLegendIndex(currentPoints, legendData, opts) {\n var currentIndex = -1;\n var gap = 0;\n if (isInExactLegendArea(currentPoints, legendData.area)) {\n var points = legendData.points;\n var index = -1;\n for (var i = 0, len = points.length; i < len; i++) {\n var item = points[i];\n for (var j = 0; j < item.length; j++) {\n index += 1;\n var area = item[j]['area'];\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n currentIndex = index;\n break;\n }\n }\n }\n return currentIndex;\n }\n return currentIndex;\n}\nfunction isInExactLegendArea(currentPoints, area) {\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\nfunction isInExactChartArea(currentPoints, opts, config) {\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n var eachAngleArea = 2 * Math.PI / count;\n var currentIndex = -1;\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n var fixAngle = function fixAngle(angle) {\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n if (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n };\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n angle = -1 * angle;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n var angleList = radarData.angleList.map(function (item) {\n item = fixAngle(-1 * item);\n return item;\n });\n angleList.forEach(function (item, index) {\n var rangeStart = fixAngle(item - eachAngleArea / 2);\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\n if (rangeEnd < rangeStart) {\n rangeEnd += 2 * Math.PI;\n }\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n currentIndex = index;\n }\n });\n }\n return currentIndex;\n}\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n var currentIndex = -1;\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\n var item = funnelData.series[i];\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n var currentIndex = -1;\n for (var i = 0, len = wordData.length; i < len; i++) {\n var item = wordData[i];\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n var currentIndex = -1;\n var cData = opts.chartData.mapData;\n var data = opts.series;\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n var poi = [tmp.x, tmp.y];\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i].geometry.coordinates;\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getPieDataPoints(pieData.series);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n }\n if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\nfunction splitPoints(points, eachSeries) {\n var newPoints = [];\n var items = [];\n points.forEach(function (item, index) {\n if (eachSeries.connectNulls) {\n if (item !== null) {\n items.push(item);\n }\n } else {\n if (item !== null) {\n items.push(item);\n } else {\n if (items.length) {\n newPoints.push(items);\n }\n items = [];\n }\n }\n });\n if (items.length) {\n newPoints.push(items);\n }\n return newPoints;\n}\nfunction calLegendData(series, opts, config, chartData, context) {\n var legendData = {\n area: {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 0,\n y: 0\n },\n width: 0,\n height: 0,\n wholeWidth: 0,\n wholeHeight: 0\n },\n points: [],\n widthArr: [],\n heightArr: []\n };\n if (opts.legend.show === false) {\n chartData.legendData = legendData;\n return legendData;\n }\n var padding = opts.legend.padding * opts.pix;\n var margin = opts.legend.margin * opts.pix;\n var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n var legendList = [];\n var widthCount = 0;\n var widthCountArr = [];\n var currentRow = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var legendText = item.legendText ? item.legendText : item.name;\n var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n widthCount = itemWidth;\n currentRow = [item];\n } else {\n widthCount += itemWidth;\n currentRow.push(item);\n }\n }\n if (currentRow.length) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n legendData.widthArr = widthCountArr;\n var legendWidth = Math.max.apply(null, widthCountArr);\n switch (opts.legend.float) {\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n default:\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;\n }\n legendData.area.width = legendWidth + 2 * padding;\n legendData.area.wholeWidth = legendWidth + 2 * padding;\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n legendData.points = legendList;\n }\n } else {\n var len = series.length;\n var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n legendData.area.height = maxLength * lineHeight + padding * 2;\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n switch (opts.legend.float) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n default:\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;\n }\n var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n var _currentRow = [];\n for (var _i6 = 0; _i6 < lineNum; _i6++) {\n var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);\n _currentRow.push(temp);\n }\n legendData.points = _currentRow;\n if (_currentRow.length) {\n for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {\n var _item = _currentRow[_i7];\n var maxWidth = 0;\n for (var j = 0; j < _item.length; j++) {\n var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (_itemWidth > maxWidth) {\n maxWidth = _itemWidth;\n }\n }\n legendData.widthArr.push(maxWidth);\n legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n }\n var _legendWidth = 0;\n for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {\n _legendWidth += legendData.widthArr[_i8];\n }\n legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n legendData.area.wholeWidth = legendData.area.width + padding;\n }\n }\n switch (opts.legend.position) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendData.area.width;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n }\n chartData.legendData = legendData;\n return legendData;\n}\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight\n };\n var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n var categoriesTextLenth = categories.map(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n return measureText(String(xitem), fontSize, context);\n });\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n if (opts.xAxis.rotateLabel == true) {\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\n var tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle));\n tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\n if (opts.enableScroll == true && opts.xAxis.scrollShow == true) {\n tempHeight += 12 * opts.pix;\n }\n result.xAxisHeight = tempHeight;\n }\n if (opts.xAxis.disabled) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getXAxisTextList(series, opts, config, stack) {\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[0]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = 0;\n var maxData = 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n //为了兼容v1.9.0之前的项目\n if (index > -1) {\n if (typeof opts.xAxis.data[index].min === 'number') {\n minData = Math.min(opts.xAxis.data[index].min, minData);\n }\n if (typeof opts.xAxis.data[index].max === 'number') {\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\n }\n } else {\n if (typeof opts.xAxis.min === 'number') {\n minData = Math.min(opts.xAxis.min, minData);\n }\n if (typeof opts.xAxis.max === 'number') {\n maxData = Math.max(opts.xAxis.max, maxData);\n }\n }\n if (minData === maxData) {\n var rangeSpan = maxData || 10;\n maxData += rangeSpan;\n }\n //var dataRange = getDataRange(minData, maxData);\n var minRange = minData;\n var maxRange = maxData;\n var range = [];\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range;\n}\nfunction calXAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.bar);\n var result = {\n angle: 0,\n xAxisHeight: config.xAxisHeight\n };\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n result.rangesFormat = result.ranges.map(function (item) {\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n item = util.toFixed(item, 2);\n return item;\n });\n var xAxisScaleValues = result.ranges.map(function (item) {\n // 如果刻度值是浮点数,则保留两位小数\n item = util.toFixed(item, 2);\n // 若有自定义格式则调用自定义的格式化函数\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n return item;\n });\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\n var eachSpacing = result.eachSpacing;\n var textLength = xAxisScaleValues.map(function (item) {\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n });\n // get max length of categories text\n var maxTextLength = Math.max.apply(this, textLength);\n // 如果刻度值文本内容过长,则将其逆时针旋转45°\n if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n result.angle = 45 * Math.PI / 180;\n result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n }\n if (opts.xAxis.disabled === true) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var radarOption = opts.extra.radar || {};\n radarOption.max = radarOption.max || 0;\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var data = [];\n var _loop2 = function _loop2(i) {\n var each = series[i];\n var listItem = {};\n listItem.color = each.color;\n listItem.legendShape = each.legendShape;\n listItem.pointShape = each.pointShape;\n listItem.data = [];\n each.data.forEach(function (item, index) {\n var tmp = {};\n tmp.angle = angleList[index];\n tmp.proportion = item / maxData;\n tmp.value = item;\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n listItem.data.push(tmp);\n });\n data.push(listItem);\n };\n for (var i = 0; i < series.length; i++) {\n _loop2(i);\n }\n return data;\n}\nfunction getPieDataPoints(series, radius) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var count = 0;\n var _start_ = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n }\n for (var _i9 = 0; _i9 < series.length; _i9++) {\n var _item2 = series[_i9];\n _item2.data = _item2.data === null ? 0 : _item2.data;\n if (count === 0) {\n _item2._proportion_ = 1 / series.length * process;\n } else {\n _item2._proportion_ = _item2.data / count * process;\n }\n _item2._radius_ = radius;\n }\n for (var _i10 = 0; _i10 < series.length; _i10++) {\n var _item3 = series[_i10];\n _item3._start_ = _start_;\n _start_ += 2 * _item3._proportion_ * Math.PI;\n }\n return series;\n}\nfunction getFunnelDataPoints(series, radius, option, eachSpacing) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n for (var i = 0; i < series.length; i++) {\n if (option.type == 'funnel') {\n series[i].radius = series[i].data / series[0].data * radius * process;\n } else {\n series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n }\n series[i]._proportion_ = series[i].data / series[0].data;\n }\n // if(option.type !== 'pyramid'){\n // series.reverse();\n // }\n return series;\n}\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var count = 0;\n var _start_ = 0;\n var dataArr = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n dataArr.push(item.data);\n }\n var minData = Math.min.apply(null, dataArr);\n var maxData = Math.max.apply(null, dataArr);\n var radiusLength = radius - minRadius;\n for (var _i11 = 0; _i11 < series.length; _i11++) {\n var _item4 = series[_i11];\n _item4.data = _item4.data === null ? 0 : _item4.data;\n if (count === 0) {\n _item4._proportion_ = 1 / series.length * process;\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._proportion_ = _item4.data / count * process;\n if (type == 'area') {\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._rose_proportion_ = _item4.data / count * process;\n }\n }\n _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n }\n for (var _i12 = 0; _i12 < series.length; _i12++) {\n var _item5 = series[_i12];\n _item5._start_ = _start_;\n _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n }\n return series;\n}\nfunction getArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.direction == 'ccw') {\n if (arcbarOption.startAngle < arcbarOption.endAngle) {\n totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (arcbarOption.direction == 'ccw') {\n item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n var totalAngle = startAngle - endAngle + 1;\n var tempStartAngle = startAngle;\n for (var i = 0; i < categories.length; i++) {\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n categories[i]._startAngle_ = tempStartAngle;\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n if (categories[i]._endAngle_ >= 2) {\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n }\n tempStartAngle = categories[i]._endAngle_;\n }\n return categories;\n}\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n if (gaugeOption.pointer.color == 'auto') {\n for (var _i13 = 0; _i13 < categories.length; _i13++) {\n if (item.data <= categories[_i13].value) {\n item.color = categories[_i13].color;\n break;\n }\n }\n } else {\n item.color = gaugeOption.pointer.color;\n }\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n item._oldAngle_ = gaugeOption.oldAngle;\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n item._oldAngle_ += 2;\n }\n if (item.data >= gaugeOption.oldData) {\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n } else {\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getPieTextMaxLength(series, config, context, opts) {\n series = getPieDataPoints(series);\n var maxLength = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n }\n return maxLength;\n}\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n if (opts.type == 'mix') {\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n } else {\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n }\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n }\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n item.width = eachSpacing - 2 * categoryGap;\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (index > 0) {\n item.width -= border;\n }\n return item;\n });\n}\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction getXAxisPoints(categories, opts, config) {\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n dataCount -= 1;\n }\n var widthRatio = 0;\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n widthRatio = opts.extra.mount.widthRatio - 1;\n dataCount += widthRatio;\n }\n var eachSpacing = spacingValid / dataCount;\n var xAxisPoints = [];\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n categories.forEach(function (item, index) {\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\n });\n if (opts.xAxis.boundaryGap !== 'justify') {\n if (opts.enableScroll === true) {\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\n } else {\n xAxisPoints.push(endX);\n }\n }\n return {\n xAxisPoints: xAxisPoints,\n startX: startX,\n endX: endX,\n eachSpacing: eachSpacing\n };\n}\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var cPoints = [];\n item.forEach(function (items, indexs) {\n var point = {};\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n var value = items.value || items;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n cPoints.push(point);\n });\n points.push(cPoints);\n }\n });\n return points;\n}\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var boundaryGap = 'center';\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n if (opts.type == 'bubble') {\n point.r = item[2];\n point.t = item[3];\n }\n } else {\n value = item.value;\n }\n }\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n var mountWidth = eachSpacing * mountOption.widthRatio;\n series.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n point.x += eachSpacing / 2;\n var value = item.data;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n point.value = value;\n point.width = mountWidth;\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validWidth * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.height = height;\n point.value = value;\n point.x = height + opts.area[3];\n points.push(point);\n }\n });\n return points;\n}\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.height = height - heightc;\n point.x = opts.area[3] + height;\n point.x0 = opts.area[3] + heightc;\n points.push(point);\n }\n });\n return points;\n}\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[1]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = yData.min || 0;\n var maxData = yData.max || 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n if (minData === maxData) {\n if (maxData == 0) {\n maxData = 10;\n } else {\n minData = 0;\n }\n }\n var dataRange = getDataRange(minData, maxData);\n var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n var range = [];\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range.reverse();\n}\nfunction calYAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.column);\n //如果是多Y轴,重新计算\n var YLength = opts.yAxis.data.length;\n var newSeries = new Array(YLength);\n if (YLength > 0) {\n for (var i = 0; i < YLength; i++) {\n newSeries[i] = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].index == i) {\n newSeries[i].push(series[j]);\n }\n }\n }\n var rangesArr = new Array(YLength);\n var rangesFormatArr = new Array(YLength);\n var yAxisWidthArr = new Array(YLength);\n var _loop3 = function _loop3(_i14) {\n var yData = opts.yAxis.data[_i14];\n //如果总开关不显示,强制每个Y轴为不显示\n if (opts.yAxis.disabled == true) {\n yData.disabled = true;\n }\n if (yData.type === 'categories') {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return val + (yData.unit || '');\n };\n }\n yData.categories = yData.categories || opts.categories;\n rangesArr[_i14] = yData.categories;\n } else {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');\n };\n }\n rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);\n }\n var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n yAxisWidthArr[_i14] = {\n position: yData.position ? yData.position : 'left',\n width: 0\n };\n rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {\n items = yData.formatter(items, index, opts);\n yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);\n return items;\n });\n var calibration = yData.calibration ? 4 * opts.pix : 0;\n yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;\n if (yData.disabled === true) {\n yAxisWidthArr[_i14].width = 0;\n }\n };\n for (var _i14 = 0; _i14 < YLength; _i14++) {\n _loop3(_i14);\n }\n } else {\n var rangesArr = new Array(1);\n var rangesFormatArr = new Array(1);\n var yAxisWidthArr = new Array(1);\n if (opts.type === 'bar') {\n rangesArr[0] = opts.categories;\n } else {\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n }\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n if (opts.yAxis.disabled === true) {\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n opts.yAxis.data[0] = {\n disabled: true\n };\n } else {\n opts.yAxis.data[0] = {\n disabled: false,\n position: 'left',\n max: opts.yAxis.max,\n min: opts.yAxis.min,\n formatter: function formatter(val, index, opts) {\n return val;\n }\n };\n if (opts.type === 'bar') {\n opts.yAxis.data[0].categories = opts.categories;\n opts.yAxis.data[0].type = 'categories';\n }\n }\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n rangesFormatArr[0] = rangesArr[0].map(function (item, index) {\n item = opts.yAxis.data[0].formatter(item, index, opts);\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n return item;\n });\n yAxisWidthArr[0].width += 3 * opts.pix;\n }\n return {\n rangesFormat: rangesFormatArr,\n ranges: rangesArr,\n yAxisWidth: yAxisWidthArr\n };\n}\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n var ranges = [].concat(opts.chartData.yAxisData.ranges);\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var minAxis = opts.area[0];\n var items = [];\n for (var i = 0; i < ranges.length; i++) {\n var maxVal = Math.max.apply(this, ranges[i]);\n var minVal = Math.min.apply(this, ranges[i]);\n var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);\n items.push(String(item));\n }\n return items;\n}\nfunction calMarkLineData(points, opts) {\n var minRange, maxRange;\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n for (var i = 0; i < points.length; i++) {\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n minRange = range.pop();\n maxRange = range.shift();\n var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n points[i].y = opts.height - Math.round(height) - opts.area[2];\n }\n return points;\n}\nfunction contextRotate(context, opts) {\n if (opts.rotateLock !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n } else if (opts._rotate_ !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n opts._rotate_ = true;\n }\n}\nfunction drawPointShape(points, color, shape, context, opts) {\n context.beginPath();\n if (opts.dataPointShapeType == 'hollow') {\n context.setStrokeStyle(color);\n context.setFillStyle(opts.background);\n context.setLineWidth(2 * opts.pix);\n } else {\n context.setStrokeStyle(\"#ffffff\");\n context.setFillStyle(color);\n context.setLineWidth(1 * opts.pix);\n }\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'none') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\nfunction drawRingTitle(opts, config, context, center) {\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n var title = opts.title.name || '';\n var subtitle = opts.subtitle.name || '';\n var titleFontColor = opts.title.color || opts.fontColor;\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n var titleHeight = title ? titlefontSize : 0;\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\n var margin = 5;\n if (subtitle) {\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n if (title) {\n startY += (titleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(subtitlefontSize * opts.pix);\n context.setFillStyle(subtitleFontColor);\n context.fillText(subtitle, startX, startY);\n context.closePath();\n context.stroke();\n }\n if (title) {\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n if (subtitle) {\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(titlefontSize * opts.pix);\n context.setFillStyle(titleFontColor);\n context.fillText(title, _startX, _startY);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n if (data[index].constructor.toString().indexOf('Array') > -1) {\n value = data[index][1];\n } else {\n value = data[index].value;\n }\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawMountPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series[index].textColor || opts.fontColor);\n var value = item.value;\n var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawBarPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n value = data[index].value;\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('left');\n context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n context.closePath();\n context.stroke();\n }\n });\n}\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n radius = radius < 10 ? 10 : radius;\n var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n var nowAngle = gaugeOption.startAngle;\n var nowNumber = gaugeOption.startNumber;\n for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n var pos = {\n x: radius * Math.cos(nowAngle * Math.PI),\n y: radius * Math.sin(nowAngle * Math.PI)\n };\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n pos.y += centerPosition.y;\n var startX = pos.x;\n var startY = pos.y;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n context.fillText(labelText, startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n nowAngle += splitAngle;\n if (nowAngle >= 2) {\n nowAngle = nowAngle % 2;\n }\n nowNumber += splitNumber;\n }\n}\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n var radarOption = opts.extra.radar || {};\n angleList.forEach(function (angle, index) {\n if (radarOption.labelPointShow === true && opts.categories[index] !== '') {\n var posPoint = {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle)\n };\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\n context.setFillStyle(radarOption.labelPointColor);\n context.beginPath();\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\n context.closePath();\n context.fill();\n }\n var pos = {\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)\n };\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n var startX = posRelativeCanvas.x;\n var startY = posRelativeCanvas.y;\n if (util.approximatelyEqual(pos.x, 0)) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n } else if (pos.x < 0) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n }\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n });\n}\nfunction drawPieText(series, opts, config, context, radius, center) {\n var lineRadius = config.pieChartLinePadding;\n var textObjectCollection = [];\n var lastTextObject = null;\n var seriesConvert = series.map(function (item, index) {\n var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n text = item.labelText ? item.labelText : text;\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n if (item._rose_proportion_) {\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n }\n var color = item.color;\n var radius = item._radius_;\n return {\n arc: arc,\n text: text,\n color: color,\n radius: radius,\n textColor: item.textColor,\n textSize: item.textSize,\n labelShow: item.labelShow\n };\n });\n for (var i = 0; i < seriesConvert.length; i++) {\n var item = seriesConvert[i];\n // line end\n var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n // line start\n var orginX2 = Math.cos(item.arc) * item.radius;\n var orginY2 = Math.sin(item.arc) * item.radius;\n // text start\n var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n var orginY3 = orginY1;\n var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n var startY = orginY3;\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n x: orginX3\n })) {\n if (orginX3 > 0) {\n startY = Math.min(orginY3, lastTextObject.start.y);\n } else if (orginX1 < 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n if (orginY3 > 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n startY = Math.min(orginY3, lastTextObject.start.y);\n }\n }\n }\n if (orginX3 < 0) {\n orginX3 -= textWidth;\n }\n var textObject = {\n lineStart: {\n x: orginX2,\n y: orginY2\n },\n lineEnd: {\n x: orginX1,\n y: orginY1\n },\n start: {\n x: orginX3,\n y: startY\n },\n width: textWidth,\n height: config.fontSize,\n text: item.text,\n color: item.color,\n textColor: item.textColor,\n textSize: item.textSize\n };\n lastTextObject = avoidCollision(textObject, lastTextObject);\n textObjectCollection.push(lastTextObject);\n }\n for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {\n if (seriesConvert[_i15].labelShow === false) {\n continue;\n }\n var _item6 = textObjectCollection[_i15];\n var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n context.setLineWidth(1 * opts.pix);\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.beginPath();\n context.setStrokeStyle(_item6.color);\n context.setFillStyle(_item6.color);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(textPosition.x + _item6.width, textPosition.y);\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.setFillStyle(_item6.textColor || opts.fontColor);\n context.fillText(_item6.text, textStartX, textPosition.y + 3);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n}\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n var toolTipOption = opts.extra.tooltip || {};\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(offsetX, startY);\n context.lineTo(offsetX, endY);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.xAxisLabel) {\n var labelText = opts.categories[opts.tooltip.index];\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var textX = offsetX - 0.5 * textWidth;\n var textY = endY + 2 * opts.pix;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawMarkLine(opts, config, context) {\n var markLineOption = assign({}, {\n type: 'solid',\n dashLength: 4,\n data: []\n }, opts.extra.markLine);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var points = calMarkLineData(markLineOption.data, opts);\n for (var i = 0; i < points.length; i++) {\n var item = assign({}, {\n lineColor: '#DE4A42',\n showLabel: false,\n labelFontColor: '#666666',\n labelBgColor: '#DFE8FF',\n labelBgOpacity: 0.8,\n labelAlign: 'left',\n labelOffsetX: 0,\n labelOffsetY: 0\n }, points[i]);\n if (markLineOption.type == 'dash') {\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n }\n context.setStrokeStyle(item.lineColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, item.y);\n context.lineTo(endX, item.y);\n context.stroke();\n context.setLineDash([]);\n if (item.showLabel) {\n var labelText = item.labelText ? item.labelText : item.value;\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var bgWidth = textWidth + config.toolTipPadding * 2;\n var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\n bgStartX += item.labelOffsetX;\n var bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\n bgStartY += item.labelOffsetY;\n var textX = bgStartX + config.toolTipPadding;\n var textY = item.y;\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n context.setStrokeStyle(item.labelBgColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.setFontSize(config.fontSize);\n context.setTextAlign('left');\n context.setFillStyle(item.labelFontColor);\n context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding / 2);\n context.stroke();\n context.setTextAlign('left');\n }\n }\n}\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n gridType: 'solid',\n dashLength: 4\n }, opts.extra.tooltip);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, opts.tooltip.offset.y);\n context.lineTo(endX, opts.tooltip.offset.y);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.yAxisLabel) {\n var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n var widthArr = opts.chartData.yAxisData.yAxisWidth;\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n for (var i = 0; i < labelText.length; i++) {\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText[i], config.fontSize, context);\n var bgStartX = void 0,\n bgEndX = void 0,\n bgWidth = void 0;\n if (widthArr[i].position == 'left') {\n bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n } else {\n bgStartX = tStartRight + 2 * opts.pix;\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\n }\n bgWidth = bgEndX - bgStartX;\n var textX = bgStartX + (bgWidth - textWidth) / 2;\n var textY = opts.tooltip.offset.y;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n context.closePath();\n context.stroke();\n if (widthArr[i].position == 'left') {\n tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n }\n }\n }\n}\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08,\n activeWidth: eachSpacing\n }, opts.extra.column);\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08\n }, opts.extra.bar);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n showBox: true,\n showArrow: true,\n showCategory: false,\n bgColor: '#000000',\n bgOpacity: 0.7,\n borderColor: '#000000',\n borderWidth: 0,\n borderRadius: 0,\n borderOpacity: 0.7,\n fontColor: '#FFFFFF',\n splitLine: true\n }, opts.extra.tooltip);\n if (toolTipOption.showCategory == true && opts.categories) {\n textList.unshift({\n text: opts.categories[opts.tooltip.index],\n color: null\n });\n }\n var legendWidth = 4 * opts.pix;\n var legendMarginRight = 5 * opts.pix;\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n var isOverRightBorder = false;\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n if (toolTipOption.splitLine == true) {\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n }\n }\n offset = assign({\n x: 0,\n y: 0\n }, offset);\n offset.y -= 8 * opts.pix;\n var textWidth = textList.map(function (item) {\n return measureText(item.text, config.fontSize, context);\n });\n var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\n var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\n if (toolTipOption.showBox == false) {\n return;\n }\n // if beyond the right border\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n isOverRightBorder = true;\n }\n if (toolTipHeight + offset.y > opts.height) {\n offset.y = opts.height - toolTipHeight;\n }\n // draw background rect\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n var radius = toolTipOption.borderRadius;\n if (isOverRightBorder) {\n // 增加左侧仍然超出的判断\n if (toolTipWidth + arrowWidth > opts.width) {\n offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n }\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n }\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n } else {\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n }\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n }\n context.closePath();\n context.fill();\n if (toolTipOption.borderWidth > 0) {\n context.stroke();\n }\n // draw legend\n textList.forEach(function (item, index) {\n if (item.color !== null) {\n context.beginPath();\n context.setFillStyle(item.color);\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\n }\n context.fillRect(startX, startY, legendWidth, config.fontSize);\n // 圆形图例请注释上行,并把下行取消注释\n // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n });\n // draw text list\n textList.forEach(function (item, index) {\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\n }\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.fontColor);\n context.fillText(item.text, startX, startY + config.fontSize);\n context.closePath();\n context.stroke();\n });\n}\nfunction drawColumnDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.column);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord[0],\n r1 = _columnOption$barBord[1],\n r2 = _columnOption$barBord[2],\n r3 = _columnOption$barBord[3];\n var minRadius = Math.min(width / 2, _height / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i16 = 0; _i16 < points.length; _i16++) {\n var _item7 = points[_i16];\n if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {\n context.beginPath();\n var fillColor = _item7.color || eachSeries.color;\n var startX = _item7.x - _item7.width / 2 + 1;\n var height = opts.height - _item7.y - opts.area[2];\n var height0 = opts.height - _item7.y0 - opts.area[2];\n if (seriesIndex > 0) {\n height -= height0;\n }\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item7.y);\n context.fillRect(startX, _item7.y, _item7.width, height);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n case 'meter':\n // 绘制温度计数据图\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n for (var _i17 = 0; _i17 < points.length; _i17++) {\n var _item8 = points[_i17];\n if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {\n //画背景颜色\n context.beginPath();\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(columnOption.meterBorder * opts.pix);\n }\n if (seriesIndex == 0) {\n context.setFillStyle(columnOption.meterFillColor);\n } else {\n context.setFillStyle(_item8.color || eachSeries.color);\n }\n var startX = _item8.x - _item8.width / 2;\n var height = opts.height - _item8.y - opts.area[2];\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var _left = startX;\n var _top = _item8.y;\n var _width = _item8.width;\n var _height2 = opts.height - opts.area[2] - _item8.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];\n }\n var _columnOption$barBord2 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n _r = _columnOption$barBord2[0],\n _r2 = _columnOption$barBord2[1],\n _r3 = _columnOption$barBord2[2],\n _r4 = _columnOption$barBord2[3];\n var _minRadius = Math.min(_width / 2, _height2 / 2);\n _r = _r > _minRadius ? _minRadius : _r;\n _r2 = _r2 > _minRadius ? _minRadius : _r2;\n _r3 = _r3 > _minRadius ? _minRadius : _r3;\n _r4 = _r4 > _minRadius ? _minRadius : _r4;\n _r = _r < 0 ? 0 : _r;\n _r2 = _r2 < 0 ? 0 : _r2;\n _r3 = _r3 < 0 ? 0 : _r3;\n _r4 = _r4 < 0 ? 0 : _r4;\n context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);\n context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);\n context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);\n context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);\n context.fill();\n } else {\n context.moveTo(startX, _item8.y);\n context.lineTo(startX + _item8.width, _item8.y);\n context.lineTo(startX + _item8.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, _item8.y);\n context.fill();\n }\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.closePath();\n context.stroke();\n }\n }\n }\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n case 'meter':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMountDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var mountOption = assign({}, {\n type: 'mount',\n widthRatio: 1,\n borderWidth: 1,\n barBorderCircle: false,\n barBorderRadius: [],\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mount);\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n switch (mountOption.type) {\n case 'bar':\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || series[i].color;\n var strokeColor = item.color || series[i].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height3 = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2;\n if (mountOption.barBorderCircle) {\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _mountOption$barBorde = (0, _slicedToArray2.default)(mountOption.barBorderRadius, 4),\n r0 = _mountOption$barBorde[0],\n r1 = _mountOption$barBorde[1],\n r2 = _mountOption$barBorde[2],\n r3 = _mountOption$barBorde[3];\n var minRadius = Math.min(width / 2, _height3 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n }\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.closePath();\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'triangle':\n for (var _i18 = 0; _i18 < points.length; _i18++) {\n var _item9 = points[_i18];\n if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {\n var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item9.y - opts.area[2];\n context.beginPath();\n var fillColor = _item9.color || series[_i18].color;\n var strokeColor = _item9.color || series[_i18].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item9.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(_item9.x, _item9.y);\n context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'mount':\n for (var _i19 = 0; _i19 < points.length; _i19++) {\n var _item10 = points[_i19];\n if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item10.y - opts.area[2];\n context.beginPath();\n var fillColor = _item10.color || series[_i19].color;\n var strokeColor = _item10.color || series[_i19].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item10.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.bezierCurveTo(_item10.x - _item10.width / 4, opts.height - opts.area[2], _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);\n context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, opts.height - opts.area[2], startX + _item10.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'sharp':\n for (var _i20 = 0; _i20 < points.length; _i20++) {\n var _item11 = points[_i20];\n if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {\n var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item11.y - opts.area[2];\n context.beginPath();\n var fillColor = _item11.color || series[_i20].color;\n var strokeColor = _item11.color || series[_i20].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item11.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, opts.height - opts.area[2]);\n context.quadraticCurveTo(_item11.x - 0, opts.height - opts.area[2] - height / 4, _item11.x, _item11.y);\n context.quadraticCurveTo(_item11.x + 0, opts.height - opts.area[2] - height / 4, startX + _item11.width, opts.height - opts.area[2]);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n }\n if (opts.dataLabel !== false && process === 1) {\n var _ranges, _minRange, _maxRange;\n _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n _minRange = _ranges.pop();\n _maxRange = _ranges.shift();\n var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n drawMountPointText(points, series, config, context, opts);\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: points,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var yAxisPoints = [];\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n for (var i = 0; i < opts.categories.length; i++) {\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n }\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.bar);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = yAxisPoints.length + 2;\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var _i21 = 0; _i21 < points.length; _i21++) {\n var item = points[_i21];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && _i21 > leftNum && _i21 < rightNum) {\n //var startX = item.x - item.width / 2;\n var startX = opts.area[3];\n var startY = item.y - item.width / 2;\n var height = item.height;\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var width = item.width;\n var top = item.y - item.width / 2;\n var _height4 = item.height;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord3 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord3[0],\n r1 = _columnOption$barBord3[1],\n r2 = _columnOption$barBord3[2],\n r3 = _columnOption$barBord3[3];\n var minRadius = Math.min(width / 2, _height4 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, startY);\n context.lineTo(item.x, startY);\n context.lineTo(item.x, startY + item.width);\n context.lineTo(startX, startY + item.width);\n context.lineTo(startX, startY);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i22 = 0; _i22 < points.length; _i22++) {\n var _item12 = points[_i22];\n if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {\n context.beginPath();\n var fillColor = _item12.color || eachSeries.color;\n var startX = _item12.x0;\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item12.y - _item12.width / 2);\n context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n return {\n yAxisPoints: yAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var candleOption = assign({}, {\n color: {},\n average: {}\n }, opts.extra.candle);\n candleOption.color = assign({}, {\n upLine: '#f04864',\n upFill: '#f04864',\n downLine: '#2fc25b',\n downFill: '#2fc25b'\n }, candleOption.color);\n candleOption.average = assign({}, {\n show: false,\n name: [],\n day: [],\n color: config.color\n }, candleOption.average);\n opts.extra.candle = candleOption;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n //画均线\n if (candleOption.average.show || seriesMA) {\n //Merge pull request !12 from 邱贵翔\n seriesMA.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points = splitPointList[i];\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(1);\n if (_points.length === 1) {\n context.moveTo(_points[0].x, _points[0].y);\n context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points[0].x, _points[0].y);\n var startPoint = 0;\n for (var j = 0; j < _points.length; j++) {\n var item = _points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n context.moveTo(_points[0].x, _points[0].y);\n }\n context.closePath();\n context.stroke();\n }\n });\n }\n //画K线\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList[0].length; i++) {\n if (i > leftNum && i < rightNum) {\n var item = splitPointList[0][i];\n context.beginPath();\n //如果上涨\n if (data[i][1] - data[i][0] > 0) {\n context.setStrokeStyle(candleOption.color.upLine);\n context.setFillStyle(candleOption.color.upFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n } else {\n context.setStrokeStyle(candleOption.color.downLine);\n context.setFillStyle(candleOption.color.downFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n }\n\n context.closePath();\n context.fill();\n context.stroke();\n }\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawAreaDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var areaOption = assign({}, {\n type: 'straight',\n opacity: 0.2,\n addLine: false,\n width: 2,\n gradient: false\n }, opts.extra.area);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points2 = splitPointList[i];\n // 绘制区域数\n context.beginPath();\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length > 1) {\n var firstPoint = _points2[0];\n var lastPoint = _points2[_points2.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var j = 0; j < _points2.length; j++) {\n var item = _points2[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j = 0; _j < _points2.length; _j++) {\n var _item13 = _points2[_j];\n if (startPoint == 0 && _item13.x > leftSpace) {\n context.moveTo(_item13.x, _item13.y);\n startPoint = 1;\n }\n if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {\n context.lineTo(_item13.x, _item13.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n var _item14 = _points2[_j2];\n if (startPoint == 0 && _item14.x > leftSpace) {\n context.moveTo(_item14.x, _item14.y);\n startPoint = 1;\n }\n if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n context.lineTo(_item14.x, _points2[_j2 - 1].y);\n context.lineTo(_item14.x, _item14.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item15 = _points2[0];\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, _item15.y);\n context.lineTo(_item15.x + eachSpacing / 2, endY);\n context.lineTo(_item15.x - eachSpacing / 2, endY);\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n }\n context.closePath();\n context.fill();\n //画连线\n if (areaOption.addLine) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length === 1) {\n context.moveTo(_points2[0].x, _points2[0].y);\n context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points2[0].x, _points2[0].y);\n var _startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n var _item16 = _points2[_j3];\n if (_startPoint == 0 && _item16.x > leftSpace) {\n context.moveTo(_item16.x, _item16.y);\n _startPoint = 1;\n }\n if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n var _item17 = _points2[_j4];\n if (_startPoint == 0 && _item17.x > leftSpace) {\n context.moveTo(_item17.x, _item17.y);\n _startPoint = 1;\n }\n if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n context.lineTo(_item17.x, _item17.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n var _item18 = _points2[_j5];\n if (_startPoint == 0 && _item18.x > leftSpace) {\n context.moveTo(_item18.x, _item18.y);\n _startPoint = 1;\n }\n if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n context.lineTo(_item18.x, _points2[_j5 - 1].y);\n context.lineTo(_item18.x, _item18.y);\n }\n }\n ;\n }\n context.moveTo(_points2[0].x, _points2[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n }\n }\n //画点\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawScatterDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var scatterOption = assign({}, {\n type: 'circle'\n }, opts.extra.scatter);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setFillStyle(eachSeries.color);\n context.setLineWidth(1 * opts.pix);\n var shape = eachSeries.pointShape;\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'triangle') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBubbleDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var bubbleOption = assign({}, {\n opacity: 1,\n border: 2\n }, opts.extra.bubble);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(bubbleOption.border * opts.pix);\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n points.forEach(function (item, index) {\n context.moveTo(item.x + item.r, item.y);\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n });\n context.closePath();\n context.fill();\n context.stroke();\n if (opts.dataLabel !== false && process === 1) {\n points.forEach(function (item, index) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || \"#FFFFFF\");\n context.setTextAlign('center');\n context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawLineDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var lineOption = assign({}, {\n type: 'straight',\n width: 2\n }, opts.extra.line);\n lineOption.width *= opts.pix;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width);\n splitPointList.forEach(function (points, index) {\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var startPoint = 0;\n if (lineOption.type === 'curve') {\n for (var j = 0; j < points.length; j++) {\n var item = points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (lineOption.type === 'straight') {\n for (var _j6 = 0; _j6 < points.length; _j6++) {\n var _item19 = points[_j6];\n if (startPoint == 0 && _item19.x > leftSpace) {\n context.moveTo(_item19.x, _item19.y);\n startPoint = 1;\n }\n if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n context.lineTo(_item19.x, _item19.y);\n }\n }\n ;\n }\n if (lineOption.type === 'step') {\n for (var _j7 = 0; _j7 < points.length; _j7++) {\n var _item20 = points[_j7];\n if (startPoint == 0 && _item20.x > leftSpace) {\n context.moveTo(_item20.x, _item20.y);\n startPoint = 1;\n }\n if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n context.lineTo(_item20.x, points[_j7 - 1].y);\n context.lineTo(_item20.x, _item20.y);\n }\n }\n ;\n }\n context.moveTo(points[0].x, points[0].y);\n }\n });\n context.stroke();\n context.setLineDash([]);\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMixDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n width: eachSpacing / 2,\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mix.column);\n var areaOption = assign({}, {\n opacity: 0.2,\n gradient: false\n }, opts.extra.mix.area);\n var lineOption = assign({}, {\n width: 2\n }, opts.extra.mix.line);\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n var columnIndex = 0;\n var columnLength = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n if (eachSeries.type == 'column') {\n columnLength += 1;\n }\n });\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n // 绘制柱状数据图\n if (eachSeries.type == 'column') {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height5 = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord4 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord4[0],\n r1 = _columnOption$barBord4[1],\n r2 = _columnOption$barBord4[2],\n r3 = _columnOption$barBord4[3];\n var minRadius = Math.min(width / 2, _height5 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n context.fill();\n }\n }\n columnIndex += 1;\n }\n //绘制区域图数据\n if (eachSeries.type == 'area') {\n var _splitPointList = splitPoints(points, eachSeries);\n for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {\n var _points3 = _splitPointList[_i23];\n // 绘制区域数据\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(2 * opts.pix);\n if (_points3.length > 1) {\n var firstPoint = _points3[0];\n var lastPoint = _points3[_points3.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (eachSeries.style === 'curve') {\n for (var j = 0; j < _points3.length; j++) {\n var _item21 = _points3[j];\n if (startPoint == 0 && _item21.x > leftSpace) {\n context.moveTo(_item21.x, _item21.y);\n startPoint = 1;\n }\n if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);\n }\n }\n ;\n } else {\n for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n var _item22 = _points3[_j8];\n if (startPoint == 0 && _item22.x > leftSpace) {\n context.moveTo(_item22.x, _item22.y);\n startPoint = 1;\n }\n if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n context.lineTo(_item22.x, _item22.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item23 = _points3[0];\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, _item23.y);\n context.lineTo(_item23.x + eachSpacing / 2, endY);\n context.lineTo(_item23.x - eachSpacing / 2, endY);\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n }\n context.closePath();\n context.fill();\n }\n }\n // 绘制折线数据图\n if (eachSeries.type == 'line') {\n var splitPointList = splitPoints(points, eachSeries);\n splitPointList.forEach(function (points, index) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width * opts.pix);\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var _startPoint2 = 0;\n if (eachSeries.style == 'curve') {\n for (var _j9 = 0; _j9 < points.length; _j9++) {\n var _item24 = points[_j9];\n if (_startPoint2 == 0 && _item24.x > leftSpace) {\n context.moveTo(_item24.x, _item24.y);\n _startPoint2 = 1;\n }\n if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item24.x, _item24.y);\n }\n }\n } else {\n for (var _j10 = 0; _j10 < points.length; _j10++) {\n var _item25 = points[_j10];\n if (_startPoint2 == 0 && _item25.x > leftSpace) {\n context.moveTo(_item25.x, _item25.y);\n _startPoint2 = 1;\n }\n if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {\n context.lineTo(_item25.x, _item25.y);\n }\n }\n }\n context.moveTo(points[0].x, points[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n });\n }\n // 绘制点数据图\n if (eachSeries.type == 'point') {\n eachSeries.addPoint = true;\n }\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n var columnIndex = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n if (eachSeries.type !== 'column') {\n drawPointText(points, eachSeries, config, context, opts);\n } else {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n columnIndex += 1;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n var toolTipOption = opts.extra.tooltip || {};\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n }\n context.restore();\n}\nfunction drawXAxis(categories, opts, config, context) {\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n startX = xAxisData.startX,\n endX = xAxisData.endX,\n eachSpacing = xAxisData.eachSpacing;\n var boundaryGap = 'center';\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var startY = opts.height - opts.area[2];\n var endY = opts.area[0];\n\n //绘制滚动条\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n var scrollScreenWidth = endX - startX;\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;\n }\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n var scrollLeft = 0;\n if (opts._scrollDistance_) {\n scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n }\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n context.moveTo(startX, scrollY);\n context.lineTo(endX, scrollY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n context.moveTo(startX + scrollLeft, scrollY);\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n context.stroke();\n context.closePath();\n context.setLineCap('butt');\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n //绘制X轴刻度线\n if (opts.xAxis.calibration === true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n xAxisPoints.forEach(function (item, index) {\n if (index > 0) {\n context.beginPath();\n context.moveTo(item - eachSpacing / 2, startY);\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n context.closePath();\n context.stroke();\n }\n });\n }\n //绘制X轴网格\n if (opts.xAxis.disableGrid !== true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n if (opts.xAxis.gridType == 'dash') {\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n }\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n xAxisPoints.forEach(function (item, index) {\n if (index % opts.xAxis.gridEval == 0) {\n context.beginPath();\n context.moveTo(item, startY);\n context.lineTo(item, endY);\n context.stroke();\n }\n });\n context.setLineDash([]);\n }\n //绘制X轴文案\n if (opts.xAxis.disabled !== true) {\n // 对X轴列表做抽稀处理\n //默认全部显示X轴标签\n var maxXAxisListLength = categories.length;\n //如果设置了X轴单屏数量\n if (opts.xAxis.labelCount) {\n //如果设置X轴密度\n if (opts.xAxis.itemCount) {\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n } else {\n maxXAxisListLength = opts.xAxis.labelCount;\n }\n maxXAxisListLength -= 1;\n }\n var ratio = Math.ceil(categories.length / maxXAxisListLength);\n var newCategories = [];\n var cgLength = categories.length;\n for (var i = 0; i < cgLength; i++) {\n if (i % ratio !== 0) {\n newCategories.push(\"\");\n } else {\n newCategories.push(categories[i]);\n }\n }\n newCategories[cgLength - 1] = categories[cgLength - 1];\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n if (config._xAxisTextAngle_ === 0) {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n if (boundaryGap == 'center') {\n offset += eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\n context.closePath();\n context.stroke();\n }\n });\n } else {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n context.save();\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\n var offsetX = xAxisPoints[index];\n if (boundaryGap == 'center') {\n offsetX = xAxisPoints[index] + eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\n if (opts.xAxis.rotateAngle < 0) {\n offsetX -= xAxisFontSize / 2;\n textWidth = 0;\n } else {\n offsetX += xAxisFontSize / 2;\n textWidth = -textWidth;\n }\n context.translate(offsetX, offsetY);\n context.rotate(-1 * config._xAxisTextAngle_);\n context.fillText(String(xitem), textWidth, 0);\n context.closePath();\n context.stroke();\n context.restore();\n }\n });\n }\n }\n context.restore();\n //绘制X轴轴线\n if (opts.xAxis.axisLine) {\n context.beginPath();\n context.setStrokeStyle(opts.xAxis.axisLineColor);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(endX, opts.height - opts.area[2]);\n context.stroke();\n }\n}\nfunction drawYAxisGrid(categories, opts, config, context) {\n if (opts.yAxis.disableGrid === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;\n }\n var endX = startX + TotalWidth;\n var points = [];\n var startY = 1;\n if (opts.xAxis.axisLine === false) {\n startY = 0;\n }\n for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n points.push(opts.height - opts.area[2] - eachSpacing * i);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.yAxis.gridType == 'dash') {\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n }\n context.setStrokeStyle(opts.yAxis.gridColor);\n context.setLineWidth(1 * opts.pix);\n points.forEach(function (item, index) {\n context.beginPath();\n context.moveTo(startX, item);\n context.lineTo(endX, item);\n context.stroke();\n });\n context.setLineDash([]);\n context.restore();\n}\nfunction drawYAxis(series, opts, config, context) {\n if (opts.yAxis.disabled === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var endY = opts.height - opts.area[2];\n // set YAxis background\n context.beginPath();\n context.setFillStyle(opts.background);\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n context.fillRect(0, 0, startX, endY + 2 * opts.pix);\n }\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);\n }\n context.closePath();\n context.stroke();\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n if (opts.yAxis.data) {\n var _loop4 = function _loop4(i) {\n var yData = opts.yAxis.data[i];\n points = [];\n if (yData.type === 'categories') {\n for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);\n }\n } else {\n for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {\n points.push(opts.area[0] + eachSpacing * _i25);\n }\n }\n if (yData.disabled !== true) {\n var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n var textAlign = yData.textAlign || \"right\";\n //画Y轴刻度及文案\n rangesFormat.forEach(function (item, index) {\n var pos = points[index];\n context.beginPath();\n context.setFontSize(yAxisFontSize);\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setFillStyle(yData.fontColor || opts.fontColor);\n var tmpstrat = 0;\n var gapwidth = 4 * opts.pix;\n if (yAxisWidth.position == 'left') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartLeft, pos);\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartLeft - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartLeft - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartLeft - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartRight, pos);\n context.lineTo(tStartRight + 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartRight + gapwidth;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartRight + yAxisWidth.width;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartRight + yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartCenter, pos);\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartCenter - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartCenter - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartCenter - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n }\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n //画Y轴轴线\n if (yData.axisLine !== false) {\n context.beginPath();\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n if (yAxisWidth.position == 'left') {\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\n context.lineTo(tStartLeft, opts.area[0]);\n } else if (yAxisWidth.position == 'right') {\n context.moveTo(tStartRight, opts.height - opts.area[2]);\n context.lineTo(tStartRight, opts.area[0]);\n } else if (yAxisWidth.position == 'center') {\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\n context.lineTo(tStartCenter, opts.area[0]);\n }\n context.stroke();\n }\n //画Y轴标题\n if (opts.yAxis.showTitle) {\n var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n var title = yData.title;\n context.beginPath();\n context.setFontSize(titleFontSize);\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\n if (yAxisWidth.position == 'left') {\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n }\n context.closePath();\n context.stroke();\n }\n if (yAxisWidth.position == 'left') {\n tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n }\n }\n };\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n var points;\n _loop4(i);\n }\n }\n}\nfunction drawLegend(series, opts, config, context, chartData) {\n if (opts.legend.show === false) {\n return;\n }\n var legendData = chartData.legendData;\n var legendList = legendData.points;\n var legendArea = legendData.area;\n var padding = opts.legend.padding * opts.pix;\n var fontSize = opts.legend.fontSize * opts.pix;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var itemGap = opts.legend.itemGap * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n //画背景及边框\n context.beginPath();\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\n context.setStrokeStyle(opts.legend.borderColor);\n context.setFillStyle(opts.legend.backgroundColor);\n context.moveTo(legendArea.start.x, legendArea.start.y);\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n context.closePath();\n context.fill();\n context.stroke();\n legendList.forEach(function (itemList, listIndex) {\n var width = 0;\n var height = 0;\n width = legendData.widthArr[listIndex];\n height = legendData.heightArr[listIndex];\n var startX = 0;\n var startY = 0;\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n switch (opts.legend.float) {\n case 'left':\n startX = legendArea.start.x + padding;\n break;\n case 'right':\n startX = legendArea.start.x + legendArea.width - width;\n break;\n default:\n startX = legendArea.start.x + (legendArea.width - width) / 2;\n }\n startY = legendArea.start.y + padding + listIndex * lineHeight;\n } else {\n if (listIndex == 0) {\n width = 0;\n } else {\n width = legendData.widthArr[listIndex - 1];\n }\n startX = legendArea.start.x + padding + width;\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n }\n context.setFontSize(config.fontSize);\n for (var i = 0; i < itemList.length; i++) {\n var item = itemList[i];\n item.area = [0, 0, 0, 0];\n item.area[0] = startX;\n item.area[1] = startY;\n item.area[3] = startY + lineHeight;\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n switch (item.legendShape) {\n case 'line':\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n break;\n case 'triangle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'diamond':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'circle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n break;\n case 'rect':\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n break;\n case 'square':\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n break;\n case 'none':\n break;\n default:\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n }\n context.closePath();\n context.fill();\n context.stroke();\n startX += shapeWidth + shapeRight;\n var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n var legendText = item.legendText ? item.legendText : item.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n context.fillText(legendText, startX, startY + fontTrans);\n context.closePath();\n context.stroke();\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n startX += measureText(legendText, fontSize, context) + itemGap;\n item.area[2] = startX;\n } else {\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;\n ;\n startX -= shapeWidth + shapeRight;\n startY += lineHeight;\n }\n }\n });\n}\nfunction drawPieDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var pieOption = assign({}, {\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n ringWidth: 30,\n customRadius: 0,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n centerColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n }\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n if (pieOption.customRadius > 0) {\n radius = pieOption.customRadius * opts.pix;\n }\n series = getPieDataPoints(series, radius, process);\n var activeRadius = pieOption.activeRadius * opts.pix;\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(pieOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(pieOption.borderColor);\n var fillcolor = eachSeries.color;\n if (pieOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (pieOption.border == true) {\n context.stroke();\n }\n });\n if (opts.type === 'ring') {\n var innerPieWidth = radius * 0.6;\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n }\n context.beginPath();\n context.setFillStyle(pieOption.centerColor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n if (process === 1 && opts.type === 'ring') {\n drawRingTitle(opts, config, context, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawRoseDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var roseOption = assign({}, {\n type: 'area',\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.extra.rose);\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n }\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n var minRadius = roseOption.minRadius || radius * 0.5;\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n var activeRadius = roseOption.activeRadius * opts.pix;\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(roseOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(roseOption.borderColor);\n var fillcolor = eachSeries.color;\n if (roseOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (roseOption.border == true) {\n context.stroke();\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawArcbarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var arcbarOption = assign({}, {\n startAngle: 0.75,\n endAngle: 0.25,\n type: 'default',\n direction: 'cw',\n lineCap: 'round',\n width: 12,\n gap: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.arcbar);\n series = getArcbarDataPoints(series, arcbarOption, process);\n var centerPosition;\n if (arcbarOption.centerX || arcbarOption.centerY) {\n centerPosition = {\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2\n };\n } else {\n centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n }\n var radius;\n if (arcbarOption.radius) {\n radius = arcbarOption.radius;\n } else {\n radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= arcbarOption.width / 2;\n }\n radius = radius < 10 ? 10 : radius;\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n for (var i = 0; i < series.length; i++) {\n var eachSeries = series[i];\n //背景颜色\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n if (arcbarOption.type == 'default') {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');\n } else {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');\n }\n context.stroke();\n //进度条\n var fillColor = eachSeries.color;\n if (arcbarOption.linearType == 'custom') {\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n fillColor = grd;\n }\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(fillColor);\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');\n context.stroke();\n }\n drawRingTitle(opts, config, context, centerPosition);\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var gaugeOption = assign({}, {\n type: 'default',\n startAngle: 0.75,\n endAngle: 0.25,\n width: 15,\n labelOffset: 13,\n splitLine: {\n fixRadius: 0,\n splitNumber: 10,\n width: 15,\n color: '#FFFFFF',\n childNumber: 5,\n childWidth: 5\n },\n pointer: {\n width: 15,\n color: 'auto'\n }\n }, opts.extra.gauge);\n if (gaugeOption.oldAngle == undefined) {\n gaugeOption.oldAngle = gaugeOption.startAngle;\n }\n if (gaugeOption.oldData == undefined) {\n gaugeOption.oldData = 0;\n }\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n var centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n var radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= gaugeOption.width / 2;\n radius = radius < 10 ? 10 : radius;\n var innerRadius = radius - gaugeOption.width;\n var totalAngle = 0;\n //判断仪表盘的样式:default百度样式,progress新样式\n if (gaugeOption.type == 'progress') {\n //## 第一步画中心圆形背景和进度条背景\n //中心圆形背景\n var pieRadius = radius - gaugeOption.width * 3;\n context.beginPath();\n var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n context.fill();\n //画进度条背景\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n context.stroke();\n //## 第二步画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n var proc = series[0].data * process;\n for (var i = 0; i < len; i++) {\n context.beginPath();\n //刻度线随进度变色\n if (proc > i / len) {\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\n } else {\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n }\n context.setLineWidth(3 * opts.pix);\n context.moveTo(startX, 0);\n context.lineTo(endX, 0);\n context.stroke();\n context.rotate(childAngle * Math.PI);\n }\n context.restore();\n //## 第三步画进度条\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(series[0].color);\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n context.stroke();\n //## 第四步画指针\n var pointerRadius = radius - gaugeOption.width * 2.5;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setLineWidth(gaugeOption.width / 3);\n var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n context.setStrokeStyle(gradient3);\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n context.stroke();\n context.beginPath();\n context.setLineWidth(1);\n context.setStrokeStyle(series[0].color);\n context.setFillStyle(series[0].color);\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.stroke();\n context.fill();\n context.restore();\n //default百度样式\n } else {\n //画背景\n context.setLineWidth(gaugeOption.width);\n context.setLineCap('butt');\n for (var _i26 = 0; _i26 < categories.length; _i26++) {\n var eachCategories = categories[_i26];\n context.beginPath();\n context.setStrokeStyle(eachCategories.color);\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n context.stroke();\n }\n context.save();\n //画刻度线\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(2 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(_endX, 0);\n context.stroke();\n context.rotate(_splitAngle * Math.PI);\n }\n context.restore();\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(childendX, 0);\n context.stroke();\n context.rotate(_childAngle * Math.PI);\n }\n context.restore();\n //画指针\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\n for (var _i29 = 0; _i29 < series.length; _i29++) {\n var eachSeries = series[_i29];\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setFillStyle(eachSeries.color);\n context.moveTo(gaugeOption.pointer.width, 0);\n context.lineTo(0, -gaugeOption.pointer.width / 2);\n context.lineTo(-innerRadius, 0);\n context.lineTo(0, gaugeOption.pointer.width / 2);\n context.lineTo(gaugeOption.pointer.width, 0);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFillStyle('#FFFFFF');\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n context.fill();\n context.restore();\n }\n if (opts.dataLabel !== false) {\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n }\n }\n //画仪表盘标题,副标题\n drawRingTitle(opts, config, context, centerPosition);\n if (process === 1 && opts.type === 'gauge') {\n opts.extra.gauge.oldAngle = series[0]._proportion_;\n opts.extra.gauge.oldData = series[0].data;\n }\n return {\n center: centerPosition,\n radius: radius,\n innerRadius: innerRadius,\n categories: categories,\n totalAngle: totalAngle\n };\n}\nfunction drawRadarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var radarOption = assign({}, {\n gridColor: '#cccccc',\n gridType: 'radar',\n gridEval: 1,\n axisLabel: false,\n axisLabelTofix: 0,\n labelColor: '#666666',\n labelPointShow: false,\n labelPointRadius: 3,\n labelPointColor: '#cccccc',\n opacity: 0.2,\n gridCount: 3,\n border: false,\n borderWidth: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.radar);\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n radius -= config.radarLabelTextMargin * opts.pix;\n radius = radius < 10 ? 10 : radius;\n // 画分割线\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n context.moveTo(centerPosition.x, centerPosition.y);\n if (index % radarOption.gridEval == 0) {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.stroke();\n context.closePath();\n\n // 画背景网格\n var _loop = function _loop(i) {\n var startPos = {};\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n if (radarOption.gridType == 'radar') {\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius / radarOption.gridCount * i * Math.sin(angle), centerPosition);\n if (index === 0) {\n startPos = pos;\n context.moveTo(pos.x, pos.y);\n } else {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.lineTo(startPos.x, startPos.y);\n } else {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n }\n context.stroke();\n context.closePath();\n };\n for (var i = 1; i <= radarOption.gridCount; i++) {\n _loop(i);\n }\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n // 绘制区域数据\n context.beginPath();\n context.setLineWidth(radarOption.borderWidth * opts.pix);\n context.setStrokeStyle(eachSeries.color);\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\n if (radarOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);\n }\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n eachSeries.data.forEach(function (item, index) {\n if (index === 0) {\n context.moveTo(item.position.x, item.position.y);\n } else {\n context.lineTo(item.position.x, item.position.y);\n }\n });\n context.closePath();\n context.fill();\n if (radarOption.border === true) {\n context.stroke();\n }\n context.closePath();\n if (opts.dataPointShape !== false) {\n var points = eachSeries.data.map(function (item) {\n return item.position;\n });\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n // 画刻度值\n if (radarOption.axisLabel === true) {\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var stepLength = radius / radarOption.gridCount;\n var fontSize = opts.fontSize * opts.pix;\n context.setFontSize(fontSize);\n context.setFillStyle(opts.fontColor);\n context.setTextAlign('left');\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\n var label = i * maxData / radarOption.gridCount;\n label = label.toFixed(radarOption.axisLabelTofix);\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\n }\n }\n\n // draw label text\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n // draw dataLabel\n if (opts.dataLabel !== false && process === 1) {\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\n eachSeries.data.forEach(function (item, index) {\n //如果是中心点垂直的上下点位\n if (Math.abs(item.position.x - centerPosition.x) < 2) {\n //如果在上面\n if (item.position.y < centerPosition.y) {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y - 4);\n } else {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n }\n } else {\n //如果在左侧\n if (item.position.x < centerPosition.x) {\n context.setTextAlign('right');\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n } else {\n context.setTextAlign('left');\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n }\n }\n });\n context.closePath();\n context.stroke();\n });\n context.setTextAlign('left');\n }\n return {\n center: centerPosition,\n radius: radius,\n angleList: coordinateAngle\n };\n}\n\n// 经纬度转墨卡托\nfunction lonlat2mercator(longitude, latitude) {\n var mercator = Array(2);\n var x = longitude * 20037508.34 / 180;\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n y = y * 20037508.34 / 180;\n mercator[0] = x;\n mercator[1] = y;\n return mercator;\n}\n\n// 墨卡托转经纬度\nfunction mercator2lonlat(longitude, latitude) {\n var lonlat = Array(2);\n var x = longitude / 20037508.34 * 180;\n var y = latitude / 20037508.34 * 180;\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n lonlat[0] = x;\n lonlat[1] = y;\n return lonlat;\n}\nfunction getBoundingBox(data) {\n var bounds = {},\n coords;\n bounds.xMin = 180;\n bounds.xMax = 0;\n bounds.yMin = 90;\n bounds.yMax = 0;\n for (var i = 0; i < data.length; i++) {\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var longitude = coords[j][0];\n var latitude = coords[j][1];\n var point = {\n x: longitude,\n y: latitude\n };\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n }\n }\n }\n return bounds;\n}\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n return {\n x: (longitude - bounds.xMin) * scale + xoffset,\n y: (bounds.yMax - latitude) * scale + yoffset\n };\n}\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n return {\n x: (pointX - xoffset) / scale + bounds.xMin,\n y: bounds.yMax - (pointY - yoffset) / scale\n };\n}\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n if (s_poi[1] == e_poi[1]) {\n return false;\n }\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n return false;\n }\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n return false;\n }\n var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n if (xseg < poi[0]) {\n return false;\n } else {\n return true;\n }\n}\nfunction isPoiWithinPoly(poi, poly, mercator) {\n var sinsc = 0;\n for (var i = 0; i < poly.length; i++) {\n var epoly = poly[i][0];\n if (poly.length == 1) {\n epoly = poly[i][0];\n }\n for (var j = 0; j < epoly.length - 1; j++) {\n var s_poi = epoly[j];\n var e_poi = epoly[j + 1];\n if (mercator) {\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n }\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n sinsc += 1;\n }\n }\n }\n if (sinsc % 2 == 1) {\n return true;\n } else {\n return false;\n }\n}\nfunction drawMapDataPoints(series, opts, config, context) {\n var mapOption = assign({}, {\n border: true,\n mercator: false,\n borderWidth: 1,\n active: true,\n borderColor: '#666666',\n fillOpacity: 0.6,\n activeBorderColor: '#f04864',\n activeFillColor: '#facc14',\n activeFillOpacity: 1\n }, opts.extra.map);\n var coords, point;\n var data = series;\n var bounds = getBoundingBox(data);\n if (mapOption.mercator) {\n var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n bounds.xMax = max[0];\n bounds.yMax = max[1];\n bounds.xMin = min[0];\n bounds.yMin = min[1];\n }\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n var scale = xScale < yScale ? xScale : yScale;\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n for (var i = 0; i < data.length; i++) {\n context.beginPath();\n context.setLineWidth(mapOption.borderWidth * opts.pix);\n context.setStrokeStyle(mapOption.borderColor);\n context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));\n if (mapOption.active == true && opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.setStrokeStyle(mapOption.activeBorderColor);\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n }\n }\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var gaosi = Array(2);\n if (mapOption.mercator) {\n gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n } else {\n gaosi = coords[j];\n }\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n if (j === 0) {\n context.beginPath();\n context.moveTo(point.x, point.y);\n } else {\n context.lineTo(point.x, point.y);\n }\n }\n context.fill();\n if (mapOption.border == true) {\n context.stroke();\n }\n }\n }\n if (opts.dataLabel == true) {\n for (var i = 0; i < data.length; i++) {\n var centerPoint = data[i].properties.centroid;\n if (centerPoint) {\n if (mapOption.mercator) {\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n }\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n var fontSize = data[i].textSize * opts.pix || config.fontSize;\n var fontColor = data[i].textColor || opts.fontColor;\n if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {\n fontColor = mapOption.activeTextColor;\n }\n var text = data[i].properties.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(fontColor);\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n context.closePath();\n context.stroke();\n }\n }\n }\n opts.chartData.mapData = {\n bounds: bounds,\n scale: scale,\n xoffset: xoffset,\n yoffset: yoffset,\n mercator: mapOption.mercator\n };\n drawToolTipBridge(opts, config, context, 1);\n context.draw();\n}\nfunction normalInt(min, max, iter) {\n iter = iter == 0 ? 1 : iter;\n var arr = [];\n for (var i = 0; i < iter; i++) {\n arr[i] = Math.random();\n }\n ;\n return Math.floor(arr.reduce(function (i, j) {\n return i + j;\n }) / iter * (max - min)) + min;\n}\n;\nfunction collisionNew(area, points, width, height) {\n var isIn = false;\n for (var i = 0; i < points.length; i++) {\n if (points[i].area) {\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n isIn = true;\n break;\n } else {\n isIn = false;\n }\n } else {\n isIn = true;\n break;\n }\n }\n }\n return isIn;\n}\n;\nfunction getWordCloudPoint(opts, type, context) {\n var points = opts.series;\n switch (type) {\n case 'normal':\n for (var i = 0; i < points.length; i++) {\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n var x = void 0,\n y = void 0;\n var area = void 0;\n var breaknum = 0;\n while (true) {\n breaknum++;\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2];\n var isCollision = collisionNew(area, points, opts.width, opts.height);\n if (!isCollision) break;\n if (breaknum == 1000) {\n area = [-100, -100, -100, -100];\n break;\n }\n }\n ;\n points[i].area = area;\n }\n break;\n case 'vertical':\n var Spin = function Spin() {\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\n if (Math.random() > 0.7) {\n return true;\n } else {\n return false;\n }\n ;\n };\n ;\n for (var _i30 = 0; _i30 < points.length; _i30++) {\n var _text = points[_i30].name;\n var _tHeight = points[_i30].textSize * opts.pix;\n var _tWidth = measureText(_text, _tHeight, context);\n var isSpin = Spin();\n var _x = void 0,\n _y = void 0,\n _area = void 0,\n areav = void 0;\n var _breaknum = 0;\n while (true) {\n _breaknum++;\n var _isCollision = void 0;\n if (isSpin) {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n _isCollision = collisionNew(areav, points, opts.height, opts.width);\n } else {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n _isCollision = collisionNew(_area, points, opts.width, opts.height);\n }\n if (!_isCollision) break;\n if (_breaknum == 1000) {\n _area = [-1000, -1000, -1000, -1000];\n break;\n }\n }\n ;\n if (isSpin) {\n points[_i30].area = areav;\n points[_i30].areav = _area;\n } else {\n points[_i30].area = _area;\n }\n points[_i30].rotate = isSpin;\n }\n ;\n break;\n }\n return points;\n}\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var wordOption = assign({}, {\n type: 'normal',\n autoColors: true\n }, opts.extra.word);\n if (!opts.chartData.wordCloudData) {\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n }\n context.beginPath();\n context.setFillStyle(opts.background);\n context.rect(0, 0, opts.width, opts.height);\n context.fill();\n context.save();\n var points = opts.chartData.wordCloudData;\n context.translate(opts.width / 2, opts.height / 2);\n for (var i = 0; i < points.length; i++) {\n context.save();\n if (points[i].rotate) {\n context.rotate(90 * Math.PI / 180);\n }\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n context.beginPath();\n context.setStrokeStyle(points[i].color);\n context.setFillStyle(points[i].color);\n context.setFontSize(tHeight);\n if (points[i].rotate) {\n if (points[i].areav[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n } else {\n if (points[i].area[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n }\n context.stroke();\n context.restore();\n }\n context.restore();\n}\nfunction drawFunnelDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var funnelOption = assign({}, {\n type: 'funnel',\n activeWidth: 10,\n activeOpacity: 0.3,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n fillOpacity: 1,\n minSize: 0,\n labelAlign: 'right',\n linearType: 'none',\n customColor: []\n }, opts.extra.funnel);\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.height - opts.area[2]\n };\n var activeWidth = funnelOption.activeWidth * opts.pix;\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n if (funnelOption.type == 'pyramid') {\n for (var i = 0; i < seriesNew.length; i++) {\n if (i == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, -eachSpacing);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(activeWidth, -eachSpacing);\n context.lineTo(-activeWidth, -eachSpacing);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, -eachSpacing);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, -eachSpacing);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, -eachSpacing);\n }\n } else {\n context.translate(0, -(seriesNew.length - 1) * eachSpacing);\n for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {\n if (_i31 == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(activeWidth + funnelOption.minSize / 2, 0);\n context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(funnelOption.minSize / 2, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, eachSpacing);\n }\n }\n context.restore();\n if (opts.dataLabel !== false && process === 1) {\n drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n if (process === 1) {\n drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: seriesNew\n };\n}\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (item.labelShow === false) {\n continue;\n }\n var startX = void 0,\n endX = void 0,\n startY = void 0,\n fontSize = void 0;\n var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';\n text = item.labelText ? item.labelText : text;\n if (labelAlign == 'right') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n }\n endX = startX + activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n if (labelAlign == 'left') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n }\n endX = startX - activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var startY = void 0,\n fontSize = void 0;\n if (item.centerText) {\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.centerTextColor || \"#FFFFFF\");\n context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawCanvas(opts, context) {\n context.draw();\n}\nvar Timing = {\n easeIn: function easeIn(pos) {\n return Math.pow(pos, 3);\n },\n easeOut: function easeOut(pos) {\n return Math.pow(pos - 1, 3) + 1;\n },\n easeInOut: function easeInOut(pos) {\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(pos, 3);\n } else {\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\n }\n },\n linear: function linear(pos) {\n return pos;\n }\n};\nfunction Animation(opts) {\n this.isStop = false;\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n opts.timing = opts.timing || 'easeInOut';\n var delay = 17;\n function createAnimationFrame() {\n if (typeof setTimeout !== 'undefined') {\n return function (step, delay) {\n setTimeout(function () {\n var timeStamp = +new Date();\n step(timeStamp);\n }, delay);\n };\n } else if (typeof requestAnimationFrame !== 'undefined') {\n return requestAnimationFrame;\n } else {\n return function (step) {\n step(null);\n };\n }\n }\n ;\n var animationFrame = createAnimationFrame();\n var startTimeStamp = null;\n var _step = function step(timestamp) {\n if (timestamp === null || this.isStop === true) {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n return;\n }\n if (startTimeStamp === null) {\n startTimeStamp = timestamp;\n }\n if (timestamp - startTimeStamp < opts.duration) {\n var process = (timestamp - startTimeStamp) / opts.duration;\n var timingFunction = Timing[opts.timing];\n process = timingFunction(process);\n opts.onProcess && opts.onProcess(process);\n animationFrame(_step, delay);\n } else {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n }\n };\n _step = _step.bind(this);\n animationFrame(_step, delay);\n}\nAnimation.prototype.stop = function () {\n this.isStop = true;\n};\nfunction drawCharts(type, opts, config, context) {\n var _this2 = this;\n var _this = this;\n var series = opts.series;\n //兼容ECharts饼图类数据格式\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\n series = fixPieSeries(series, opts, config);\n }\n var categories = opts.categories;\n if (type === 'mount') {\n categories = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].show !== false) categories.push(series[j].name);\n }\n opts.categories = categories;\n }\n series = fillSeries(series, opts, config);\n var duration = opts.animation ? opts.duration : 0;\n _this.animationInstance && _this.animationInstance.stop();\n var seriesMA = null;\n if (type == 'candle') {\n var average = assign({}, opts.extra.candle.average);\n if (average.show) {\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n seriesMA = fillSeries(seriesMA, opts, config);\n opts.seriesMA = seriesMA;\n } else if (opts.seriesMA) {\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n } else {\n seriesMA = series;\n }\n } else {\n seriesMA = series;\n }\n /* 过滤掉show=false的series */\n opts._series_ = series = filterSeries(series);\n //重新计算图表区域\n opts.area = new Array(4);\n //复位绘图区域\n for (var _j11 = 0; _j11 < 4; _j11++) {\n opts.area[_j11] = opts.padding[_j11] * opts.pix;\n }\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n legendHeight = _calLegendData.area.wholeHeight,\n legendWidth = _calLegendData.area.wholeWidth;\n switch (opts.legend.position) {\n case 'top':\n opts.area[0] += legendHeight;\n break;\n case 'bottom':\n opts.area[2] += legendHeight;\n break;\n case 'left':\n opts.area[3] += legendWidth;\n break;\n case 'right':\n opts.area[1] += legendWidth;\n break;\n }\n var _calYAxisData = {},\n yAxisWidth = 0;\n if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n _calYAxisData = calYAxisData(series, opts, config, context);\n yAxisWidth = _calYAxisData.yAxisWidth;\n //如果显示Y轴标题\n if (opts.yAxis.showTitle) {\n var maxTitleHeight = 0;\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n }\n opts.area[0] += maxTitleHeight;\n }\n var rightIndex = 0,\n leftIndex = 0;\n //计算主绘图区域左右位置\n for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {\n if (yAxisWidth[_i32].position == 'left') {\n if (leftIndex > 0) {\n opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[3] += yAxisWidth[_i32].width;\n }\n leftIndex += 1;\n } else if (yAxisWidth[_i32].position == 'right') {\n if (rightIndex > 0) {\n opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[1] += yAxisWidth[_i32].width;\n }\n rightIndex += 1;\n }\n }\n } else {\n config.yAxisWidth = yAxisWidth;\n }\n opts.chartData.yAxisData = _calYAxisData;\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n xAxisHeight = _calCategoriesData.xAxisHeight,\n angle = _calCategoriesData.angle;\n config.xAxisHeight = xAxisHeight;\n config._xAxisTextAngle_ = angle;\n opts.area[2] += xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData;\n } else {\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n categories = opts.chartData.xAxisData.rangesFormat;\n var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n _xAxisHeight = _calCategoriesData2.xAxisHeight,\n _angle = _calCategoriesData2.angle;\n config.xAxisHeight = _xAxisHeight;\n config._xAxisTextAngle_ = _angle;\n opts.area[2] += _xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData2;\n } else {\n opts.chartData.xAxisData = {\n xAxisPoints: []\n };\n }\n }\n\n //计算右对齐偏移距离\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n var offsetLeft = 0,\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n startX = opts.chartData.xAxisData.startX,\n endX = opts.chartData.xAxisData.endX,\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n _this.scrollOption.currentOffset = offsetLeft;\n _this.scrollOption.startTouchX = offsetLeft;\n _this.scrollOption.distance = 0;\n _this.scrollOption.lastMoveTime = 0;\n opts._scrollDistance_ = offsetLeft;\n }\n if (type === 'pie' || type === 'ring' || type === 'rose') {\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n }\n switch (type) {\n case 'word':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawWordCloudDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'map':\n context.clearRect(0, 0, opts.width, opts.height);\n drawMapDataPoints(series, opts, config, context);\n setTimeout(function () {\n _this2.uevent.trigger('renderComplete');\n }, 50);\n break;\n case 'funnel':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'line':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\n calPoints = _drawLineDataPoints.calPoints,\n eachSpacing = _drawLineDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'scatter':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n calPoints = _drawScatterDataPoints.calPoints,\n eachSpacing = _drawScatterDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bubble':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n calPoints = _drawBubbleDataPoints.calPoints,\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mix':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\n calPoints = _drawMixDataPoints.calPoints,\n eachSpacing = _drawMixDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'column':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n calPoints = _drawColumnDataPoints.calPoints,\n eachSpacing = _drawColumnDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mount':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\n calPoints = _drawMountDataPoints.calPoints,\n eachSpacing = _drawMountDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawXAxis(categories, opts, config, context);\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\n calPoints = _drawBarDataPoints.calPoints,\n eachSpacing = _drawBarDataPoints.eachSpacing;\n opts.chartData.yAxisPoints = yAxisPoints;\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'area':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n calPoints = _drawAreaDataPoints.calPoints,\n eachSpacing = _drawAreaDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'ring':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'pie':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'rose':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'radar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'arcbar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'gauge':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'candle':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n calPoints = _drawCandleDataPoints.calPoints,\n eachSpacing = _drawCandleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n if (seriesMA) {\n drawLegend(seriesMA, opts, config, context, opts.chartData);\n } else {\n drawLegend(opts.series, opts, config, context, opts.chartData);\n }\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n }\n}\nfunction uChartsEvent() {\n this.events = {};\n}\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n this.events[type] = this.events[type] || [];\n this.events[type].push(listener);\n};\nuChartsEvent.prototype.delEventListener = function (type) {\n this.events[type] = [];\n};\nuChartsEvent.prototype.trigger = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var type = args[0];\n var params = args.slice(1);\n if (!!this.events[type]) {\n this.events[type].forEach(function (listener) {\n try {\n listener.apply(null, params);\n } catch (e) {\n //console.log('[uCharts] '+e);\n }\n });\n }\n};\nvar uCharts = function uCharts(opts) {\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n if (opts.background == \"\" || opts.background == \"none\") {\n opts.background = \"#FFFFFF\";\n }\n opts.title = assign({}, opts.title);\n opts.subtitle = assign({}, opts.subtitle);\n opts.duration = opts.duration ? opts.duration : 1000;\n opts.yAxis = assign({}, {\n data: [],\n showTitle: false,\n disabled: false,\n disableGrid: false,\n gridSet: 'number',\n splitNumber: 5,\n gridType: 'solid',\n dashLength: 4 * opts.pix,\n gridColor: '#cccccc',\n padding: 10,\n fontColor: '#666666'\n }, opts.yAxis);\n opts.xAxis = assign({}, {\n rotateLabel: false,\n rotateAngle: 45,\n disabled: false,\n disableGrid: false,\n splitNumber: 5,\n calibration: false,\n gridType: 'solid',\n dashLength: 4,\n scrollAlign: 'left',\n boundaryGap: 'center',\n axisLine: true,\n axisLineColor: '#cccccc'\n }, opts.xAxis);\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n opts.legend = assign({}, {\n show: true,\n position: 'bottom',\n float: 'center',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n padding: 5,\n margin: 5,\n itemGap: 10,\n fontSize: opts.fontSize,\n lineHeight: opts.fontSize,\n fontColor: opts.fontColor,\n formatter: {},\n hiddenColor: '#CECECE'\n }, opts.legend);\n opts.extra = assign({}, opts.extra);\n opts.rotate = opts.rotate ? true : false;\n opts.animation = opts.animation ? true : false;\n opts.rotate = opts.rotate ? true : false;\n opts.canvas2d = opts.canvas2d ? true : false;\n var config$$1 = assign({}, config);\n config$$1.color = opts.color ? opts.color : config$$1.color;\n if (opts.type == 'pie') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'ring') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'rose') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n\n //屏幕旋转\n config$$1.rotate = opts.rotate;\n if (opts.rotate) {\n var tempWidth = opts.width;\n var tempHeight = opts.height;\n opts.width = tempHeight;\n opts.height = tempWidth;\n }\n\n //适配高分屏\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n config$$1.xAxisHeight += 6 * opts.pix;\n }\n config$$1.fontSize = opts.fontSize * opts.pix;\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\n config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\n if (!opts.context) {\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\n }\n this.context = opts.context;\n if (!this.context.setTextAlign) {\n this.context.setStrokeStyle = function (e) {\n return this.strokeStyle = e;\n };\n this.context.setLineWidth = function (e) {\n return this.lineWidth = e;\n };\n this.context.setLineCap = function (e) {\n return this.lineCap = e;\n };\n this.context.setFontSize = function (e) {\n return this.font = e + \"px sans-serif\";\n };\n this.context.setFillStyle = function (e) {\n return this.fillStyle = e;\n };\n this.context.setTextAlign = function (e) {\n return this.textAlign = e;\n };\n this.context.draw = function () {};\n }\n //兼容NVUEsetLineDash\n if (!this.context.setLineDash) {\n this.context.setLineDash = function (e) {};\n }\n opts.chartData = {};\n this.uevent = new uChartsEvent();\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts = opts;\n this.config = config$$1;\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\nuCharts.prototype.updateData = function () {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.opts = assign({}, this.opts, data);\n this.opts.updateData = true;\n var scrollPosition = data.scrollPosition || 'current';\n switch (scrollPosition) {\n case 'current':\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n break;\n case 'left':\n this.opts._scrollDistance_ = 0;\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n break;\n case 'right':\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: offsetLeft,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts._scrollDistance_ = offsetLeft;\n break;\n }\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.zoom = function () {\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6828\");\n return;\n }\n //当前屏幕中间点\n var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n this.opts.animation = false;\n this.opts.xAxis.itemCount = val.itemCount;\n //重新计算x轴偏移距离\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var centerLeft = eachSpacing * centerPoint;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = screenWidth / 2 - centerLeft;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.dobuleZoom = function (e) {\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6868\");\n return;\n }\n var tcs = e.changedTouches;\n if (tcs.length < 2) {\n return;\n }\n for (var i = 0; i < tcs.length; i++) {\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\n }\n var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];\n var xlength = Math.abs(ntcs[0].x - ntcs[1].x);\n // 记录初始的两指之间的数据\n if (!this.scrollOption.moveCount) {\n var cts0 = {\n changedTouches: [{\n x: tcs[0].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n var cts1 = {\n changedTouches: [{\n x: tcs[1].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n if (this.opts.rotate) {\n cts0 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[0].y\n }]\n };\n cts1 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[1].y\n }]\n };\n }\n var moveCurrent1 = this.getCurrentDataIndex(cts0).index;\n var moveCurrent2 = this.getCurrentDataIndex(cts1).index;\n var moveCount = Math.abs(moveCurrent1 - moveCurrent2);\n this.scrollOption.moveCount = moveCount;\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\n return;\n }\n var currentEachSpacing = xlength / this.scrollOption.moveCount;\n var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\n itemCount = itemCount <= 2 ? 2 : itemCount;\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\n this.opts.animation = false;\n this.opts.xAxis.itemCount = itemCount;\n // 重新计算滚动条偏移距离\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption.currentOffset = offsetLeft;\n this.scrollOption.startTouchX = 0;\n this.scrollOption.distance = 0;\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.stopAnimation = function () {\n this.animationInstance && this.animationInstance.stop();\n};\nuCharts.prototype.addEventListener = function (type, listener) {\n this.uevent.addEventListener(type, listener);\n};\nuCharts.prototype.delEventListener = function (type) {\n this.uevent.delEventListener(type);\n};\nuCharts.prototype.getCurrentDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n return findPieChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'rose') {\n return findRoseChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'radar') {\n return findRadarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.radarData, this.opts.categories.length);\n } else if (this.opts.type === 'funnel') {\n return findFunnelChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.funnelData);\n } else if (this.opts.type === 'map') {\n return findMapChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts);\n } else if (this.opts.type === 'word') {\n return findWordChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.wordCloudData);\n } else if (this.opts.type === 'bar') {\n return findBarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n } else {\n return findCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n }\n }\n return -1;\n};\nuCharts.prototype.getLegendDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n return findLegendIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.legendData);\n }\n return -1;\n};\nuCharts.prototype.touchLegend = function (e) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n var index = this.getLegendDataIndex(e);\n if (index >= 0) {\n if (this.opts.type == 'candle') {\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n } else {\n this.opts.series[index].show = !this.opts.series[index].show;\n }\n this.opts.animation = option.animation ? true : false;\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n }\n }\n};\nuCharts.prototype.showToolTip = function (e) {\n var _this3 = this;\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (!touches) {\n __f__(\"log\", \"[uCharts] 未获取到event坐标信息\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7046\");\n }\n var _touches$ = getTouches(touches, this.opts, e);\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mount') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color\n }];\n var offset = {\n x: opts.chartData.calPoints[index].x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'bar') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.x = _touches$.x;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mix') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n textList = _getMixToolTipData.textList,\n offset = _getMixToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'candle') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'map') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n seriesData.name = seriesData.properties.name;\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'word') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'radar') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,\n color: item.color\n };\n });\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n};\nuCharts.prototype.translate = function (distance) {\n this.scrollOption = {\n currentOffset: distance,\n startTouchX: distance,\n distance: 0,\n lastMoveTime: 0\n };\n var opts = assign({}, this.opts, {\n _scrollDistance_: distance,\n animation: false\n });\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\nuCharts.prototype.scrollStart = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n var _touches$ = getTouches(touches, this.opts, e);\n if (touches && this.opts.enableScroll === true) {\n this.scrollOption.startTouchX = _touches$.x;\n }\n};\nuCharts.prototype.scroll = function (e) {\n if (this.scrollOption.lastMoveTime === 0) {\n this.scrollOption.lastMoveTime = Date.now();\n }\n var Limit = this.opts.touchMoveLimit || 60;\n var currMoveTime = Date.now();\n var duration = currMoveTime - this.scrollOption.lastMoveTime;\n if (duration < Math.floor(1000 / Limit)) return;\n if (this.scrollOption.startTouchX == 0) return;\n this.scrollOption.lastMoveTime = currMoveTime;\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches && this.opts.enableScroll === true) {\n var _touches$ = getTouches(touches, this.opts, e);\n var _distance;\n _distance = _touches$.x - this.scrollOption.startTouchX;\n var currentOffset = this.scrollOption.currentOffset;\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n this.scrollOption.distance = _distance = validDistance - currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset + _distance,\n animation: false\n });\n this.opts = opts;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n return currentOffset + _distance;\n }\n};\nuCharts.prototype.scrollEnd = function (e) {\n if (this.opts.enableScroll === true) {\n var _scrollOption = this.scrollOption,\n currentOffset = _scrollOption.currentOffset,\n distance = _scrollOption.distance;\n this.scrollOption.currentOffset = currentOffset + distance;\n this.scrollOption.distance = 0;\n this.scrollOption.moveCount = 0;\n }\n};\nvar _default = uCharts;\nexports.default = _default;\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ4QXhpc0hlaWdodCIsInhBeGlzVGV4dFBhZGRpbmciLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImZvbnRTaXplIiwiZm9udENvbG9yIiwiZGF0YVBvaW50U2hhcGUiLCJjb2xvciIsImxpbmVhckNvbG9yIiwicGllQ2hhcnRMaW5lUGFkZGluZyIsInBpZUNoYXJ0VGV4dFBhZGRpbmciLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVGb250U2l6ZSIsInRvb2xUaXBQYWRkaW5nIiwidG9vbFRpcEJhY2tncm91bmQiLCJ0b29sVGlwT3BhY2l0eSIsInRvb2xUaXBMaW5lSGVpZ2h0IiwicmFkYXJMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJleHRyYSIsIm1vdW50Iiwid2lkdGhSYXRpbyIsInZhbGlkRGlzdGFuY2UiLCJ1ZXZlbnQiLCJ0cmlnZ2VyIiwic2Nyb2xsT3B0aW9uIiwicG9zaXRpb24iLCJ4QXhpcyIsInNjcm9sbFBvc2l0aW9uIiwiaXNJbkFuZ2xlUmFuZ2UiLCJhbmdsZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImFkanVzdCIsIlBJIiwiY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzIiwicG9pbnRzIiwiaXNOb3RNaWRkbGVQb2ludCIsIm1heCIsIm1pbiIsImlzTm90TWlkZGxlUG9pbnRYIiwiYSIsInBBeCIsInBBeSIsInBCeCIsInBCeSIsImxhc3QiLCJjdHJBIiwiY3RyQiIsImNvbnZlcnRDb29yZGluYXRlT3JpZ2luIiwiY2VudGVyIiwiYXZvaWRDb2xsaXNpb24iLCJvYmoiLCJmaXhQaWVTZXJpZXMiLCJzZXJpZXMiLCJwaWVTZXJpZXNBcnIiLCJjb25zdHJ1Y3RvciIsImluZGV4T2YiLCJfcGllU2VyaWVzXyIsIm9sZHNlcmllcyIsImZvcm1hdHRlciIsInZhbHVlIiwiZmlsbFNlcmllcyIsImluZGV4IiwiaXRlbSIsImxpbmVhckluZGV4Iiwic2hvdyIsInBvaW50U2hhcGUiLCJsZWdlbmRTaGFwZSIsImZpbGxDdXN0b21Db2xvciIsImxpbmVhclR5cGUiLCJjdXN0b21Db2xvciIsIm5ld2NvbG9yIiwiY2hhemhpIiwiZ2V0RGF0YVJhbmdlIiwibWluRGF0YSIsIm1heERhdGEiLCJyYW5nZSIsIm1pblJhbmdlIiwibWF4UmFuZ2UiLCJtZWFzdXJlVGV4dCIsInRleHQiLCJjb250ZXh0IiwiU3RyaW5nIiwidW5kZWZpbmVkIiwic2V0Rm9udFNpemUiLCJzcGxpdCIsInRlc3QiLCJkYXRhQ29tYmluZSIsInJlZHVjZSIsImNvbmNhdCIsImRhdGFDb21iaW5lU3RhY2siLCJBcnJheSIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsInVwQ29sb3IiLCJ1cEZpbGwiLCJkb3duQ29sb3IiLCJkb3duRmlsbCIsInRleHQxIiwidGV4dDIiLCJ0ZXh0MyIsInRleHQ0IiwidmFsaWRDYWxQb2ludHMiLCJmaW5kQ3VycmVudEluZGV4IiwiY3VycmVudFBvaW50cyIsImN1cnJlbnQiLCJzcGFjaW5nIiwiYm91bmRhcnlHYXAiLCJpc0luRXhhY3RDaGFydEFyZWEiLCJ0aW1lUG9pbnRzIiwicG9pbnRWYWx1ZSIsInBvaW50SW5kZXgiLCJtaW5WYWx1ZSIsImZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCIsInlBeGlzUG9pbnRzIiwiZmluZExlZ2VuZEluZGV4IiwibGVnZW5kRGF0YSIsImN1cnJlbnRJbmRleCIsImdhcCIsImlzSW5FeGFjdExlZ2VuZEFyZWEiLCJmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleCIsInJhZGFyRGF0YSIsImNvdW50IiwiZWFjaEFuZ2xlQXJlYSIsImlzSW5FeGFjdFBpZUNoYXJ0QXJlYSIsInJhZGl1cyIsImZpeEFuZ2xlIiwiYXRhbjIiLCJhbmdsZUxpc3QiLCJyYW5nZVN0YXJ0IiwicmFuZ2VFbmQiLCJmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgiLCJmdW5uZWxEYXRhIiwiZnVubmVsQXJlYSIsImZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgiLCJ3b3JkRGF0YSIsImZpbmRNYXBDaGFydEN1cnJlbnRJbmRleCIsImNEYXRhIiwibWFwRGF0YSIsInRtcCIsInBvaW50VG9Db29yZGluYXRlIiwiYm91bmRzIiwic2NhbGUiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInBvaSIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJpc1BvaVdpdGhpblBvbHkiLCJtZXJjYXRvciIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwibGVnZW5kVGV4dCIsIml0ZW1XaWR0aCIsIml0ZW1HYXAiLCJsZWdlbmRXaWR0aCIsImZsb2F0IiwibWF4SGVpZ2h0IiwibWF4TGVuZ3RoIiwibGluZU51bSIsInRlbXAiLCJzbGljZSIsIm1heFdpZHRoIiwiY2FsQ2F0ZWdvcmllc0RhdGEiLCJyZXN1bHQiLCJjYXRlZ29yaWVzVGV4dExlbnRoIiwieGl0ZW0iLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJyb3RhdGVBbmdsZSIsInRlbXBIZWlnaHQiLCJzaW4iLCJlbmFibGVTY3JvbGwiLCJzY3JvbGxTaG93IiwiZGlzYWJsZWQiLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJnZXRSYWRhckRhdGFQb2ludHMiLCJwcm9jZXNzIiwicmFkYXJPcHRpb24iLCJyYWRhciIsImVhY2giLCJsaXN0SXRlbSIsInByb3BvcnRpb24iLCJjb3MiLCJfcmFkaXVzXyIsImdldEZ1bm5lbERhdGFQb2ludHMiLCJtaW5SYWRpdXMiLCJkYXRhQXJyIiwicmFkaXVzTGVuZ3RoIiwiZ2V0QXJjYmFyRGF0YVBvaW50cyIsImFyY2Jhck9wdGlvbiIsInRvdGFsQW5nbGUiLCJkaXJlY3Rpb24iLCJnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMiLCJnZXRHYXVnZUF4aXNQb2ludHMiLCJ0ZW1wU3RhcnRBbmdsZSIsIl9zdGFydEFuZ2xlXyIsIl9lbmRBbmdsZV8iLCJnZXRHYXVnZURhdGFQb2ludHMiLCJnYXVnZU9wdGlvbiIsInBvaW50ZXIiLCJfb2xkQW5nbGVfIiwib2xkQW5nbGUiLCJvbGREYXRhIiwiZ2V0UGllVGV4dE1heExlbmd0aCIsInRleHRTaXplIiwiZml4Q29sdW1lRGF0YSIsImNvbHVtbkxlbiIsInNlcmllc0dhcCIsImNhdGVnb3J5R2FwIiwibWl4IiwiY29sdW1uIiwiZml4QmFyRGF0YSIsImZpeENvbHVtZU1ldGVyRGF0YSIsImJvcmRlciIsImZpeENvbHVtZVN0YWNrRGF0YSIsImluZGV4biIsImZpeEJhclN0YWNrRGF0YSIsInNwYWNpbmdWYWxpZCIsImRhdGFDb3VudCIsIml0ZW1Db3VudCIsInN0YXJ0WCIsImVuZFgiLCJnZXRDYW5kbGVEYXRhUG9pbnRzIiwidmFsaWRIZWlnaHQiLCJjUG9pbnRzIiwiaW5kZXhzIiwicG9pbnQiLCJnZXREYXRhUG9pbnRzIiwidmFsaWRXaWR0aCIsInhyYW5nZXMiLCJ4bWluUmFuZ2UiLCJ4bWF4UmFuZ2UiLCJzaGlmdCIsInBvcCIsInQiLCJnZXRNb3VudERhdGFQb2ludHMiLCJtb3VudE9wdGlvbiIsIm1vdW50V2lkdGgiLCJnZXRCYXJEYXRhUG9pbnRzIiwiZ2V0U3RhY2tEYXRhUG9pbnRzIiwic2VyaWVzSW5kZXgiLCJzdGFja1NlcmllcyIsInZhbHVlMCIsImhlaWdodDAiLCJoZWlnaHRjIiwieTAiLCJnZXRCYXJTdGFja0RhdGFQb2ludHMiLCJ4MCIsImdldFlBeGlzVGV4dExpc3QiLCJ5RGF0YSIsImRhdGFSYW5nZSIsInlBeGlzIiwicmV2ZXJzZSIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdNb3VudFBvaW50VGV4dCIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwibGFiZWxQb2ludFNob3ciLCJwb3NQb2ludCIsInBvc1BvaW50QXhpcyIsImxhYmVsUG9pbnRDb2xvciIsImxhYmVsUG9pbnRSYWRpdXMiLCJwb3NSZWxhdGl2ZUNhbnZhcyIsImRyYXdQaWVUZXh0IiwibGluZVJhZGl1cyIsInRleHRPYmplY3RDb2xsZWN0aW9uIiwibGFzdFRleHRPYmplY3QiLCJzZXJpZXNDb252ZXJ0IiwibGFiZWxTaG93Iiwib3JnaW5YMSIsIm9yZ2luWTEiLCJvcmdpblgyIiwib3JnaW5ZMiIsIm9yZ2luWDMiLCJvcmdpblkzIiwidGV4dE9iamVjdCIsImxpbmVTdGFydCIsImxpbmVFbmQiLCJsaW5lU3RhcnRQb2lzdGlvbiIsImxpbmVFbmRQb2lzdGlvbiIsInRleHRQb3NpdGlvbiIsImN1cnZlU3RhcnRYIiwidGV4dFN0YXJ0WCIsInF1YWRyYXRpY0N1cnZlVG8iLCJkcmF3VG9vbFRpcFNwbGl0TGluZSIsInRvb2xUaXBPcHRpb24iLCJ0b29sdGlwIiwiZ3JpZFR5cGUiLCJkYXNoTGVuZ3RoIiwiZW5kWSIsInNldExpbmVEYXNoIiwiZ3JpZENvbG9yIiwieEF4aXNMYWJlbCIsInRleHRYIiwidGV4dFkiLCJsYWJlbEJnQ29sb3IiLCJsYWJlbEJnT3BhY2l0eSIsImxhYmVsRm9udENvbG9yIiwiZHJhd01hcmtMaW5lIiwibWFya0xpbmVPcHRpb24iLCJtYXJrTGluZSIsImxpbmVDb2xvciIsInNob3dMYWJlbCIsImxhYmVsQWxpZ24iLCJsYWJlbE9mZnNldFgiLCJsYWJlbE9mZnNldFkiLCJiZ1dpZHRoIiwiYmdTdGFydFgiLCJiZ1N0YXJ0WSIsImRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUiLCJ5QXhpc0xhYmVsIiwidFN0YXJ0TGVmdCIsInRTdGFydFJpZ2h0IiwiYmdFbmRYIiwiZHJhd1Rvb2xUaXBTcGxpdEFyZWEiLCJhY3RpdmVCZ0NvbG9yIiwiYWN0aXZlQmdPcGFjaXR5IiwiYWN0aXZlV2lkdGgiLCJkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYSIsImRyYXdUb29sVGlwIiwic2hvd0JveCIsInNob3dBcnJvdyIsInNob3dDYXRlZ29yeSIsImJnQ29sb3IiLCJiZ09wYWNpdHkiLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyT3BhY2l0eSIsInVuc2hpZnQiLCJsZWdlbmRNYXJnaW5SaWdodCIsImFycm93V2lkdGgiLCJpc092ZXJSaWdodEJvcmRlciIsInRvb2xUaXBXaWR0aCIsInRvb2xUaXBIZWlnaHQiLCJfc2Nyb2xsRGlzdGFuY2VfIiwiZmlsbFJlY3QiLCJkcmF3Q29sdW1uRGF0YVBvaW50cyIsImNvbHVtbk9wdGlvbiIsIm1ldGVyQm9yZGVyIiwibWV0ZXJGaWxsQ29sb3IiLCJiYXJCb3JkZXJDaXJjbGUiLCJiYXJCb3JkZXJSYWRpdXMiLCJsaW5lYXJPcGFjaXR5IiwiY29sb3JTdG9wIiwic2F2ZSIsImxlZnROdW0iLCJyaWdodE51bSIsInRvb2x0aXBQb2ludHMiLCJmaWxsQ29sb3IiLCJzdHJva2VDb2xvciIsImdyZCIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwibGVmdCIsInRvcCIsInIwIiwicjEiLCJyMiIsInIzIiwiZGF0YUxhYmVsIiwicmVzdG9yZSIsImRyYXdNb3VudERhdGFQb2ludHMiLCJiZXppZXJDdXJ2ZVRvIiwiZHJhd0JhckRhdGFQb2ludHMiLCJkcmF3Q2FuZGxlRGF0YVBvaW50cyIsInNlcmllc01BIiwiY2FuZGxlT3B0aW9uIiwiYXZlcmFnZSIsImNhbmRsZSIsInVwTGluZSIsImRvd25MaW5lIiwiZGF5IiwibGVmdFNwYWNlIiwicmlnaHRTcGFjZSIsInNwbGl0UG9pbnRMaXN0Iiwic3RhcnRQb2ludCIsImN0cmxQb2ludCIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFkiLCJzY3JvbGxTY3JlZW5XaWR0aCIsInNjcm9sbFRvdGFsV2lkdGgiLCJzY3JvbGxXaWR0aCIsInNjcm9sbExlZnQiLCJzZXRMaW5lQ2FwIiwic2Nyb2xsQmFja2dyb3VuZENvbG9yIiwic2Nyb2xsQ29sb3IiLCJkaXNhYmxlR3JpZCIsImdyaWRFdmFsIiwibWF4WEF4aXNMaXN0TGVuZ3RoIiwibGFiZWxDb3VudCIsInJhdGlvIiwibmV3Q2F0ZWdvcmllcyIsImNnTGVuZ3RoIiwieEF4aXNGb250U2l6ZSIsIl94QXhpc1RleHRBbmdsZV8iLCJzY3JvbGxIZWlnaHQiLCJ0cnVlUG9pbnRzIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwidFN0YXJ0Q2VudGVyIiwidGV4dEFsaWduIiwidG1wc3RyYXQiLCJnYXB3aWR0aCIsInNob3dUaXRsZSIsInRpdGxlT2Zmc2V0WCIsInRpdGxlT2Zmc2V0WSIsImRyYXdMZWdlbmQiLCJsZWdlbmRBcmVhIiwiYmFja2dyb3VuZENvbG9yIiwiaXRlbUxpc3QiLCJsaXN0SW5kZXgiLCJoaWRkZW5Db2xvciIsImZvbnRUcmFucyIsImRyYXdQaWVEYXRhUG9pbnRzIiwicGllT3B0aW9uIiwiYWN0aXZlT3BhY2l0eSIsImFjdGl2ZVJhZGl1cyIsImxhYmVsV2lkdGgiLCJyaW5nV2lkdGgiLCJjdXN0b21SYWRpdXMiLCJjZW50ZXJDb2xvciIsIl9waWVUZXh0TWF4TGVuZ3RoXyIsImxpbmVKb2luIiwiZmlsbGNvbG9yIiwiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiaW5uZXJQaWVXaWR0aCIsImRyYXdSb3NlRGF0YVBvaW50cyIsInJvc2VPcHRpb24iLCJkcmF3QXJjYmFyRGF0YVBvaW50cyIsImxpbmVDYXAiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiYXhpc0xhYmVsIiwiYXhpc0xhYmVsVG9maXgiLCJncmlkQ291bnQiLCJjb29yZGluYXRlQW5nbGUiLCJ4ciIsInlyIiwiX2xvb3AiLCJzdGFydFBvcyIsInJhZGFyRGF0YVBvaW50cyIsInN0ZXBMZW5ndGgiLCJsYWJlbCIsImxvbmxhdDJtZXJjYXRvciIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibG9nIiwidGFuIiwibWVyY2F0b3IybG9ubGF0IiwibG9ubGF0IiwiYXRhbiIsImV4cCIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImFjdGl2ZSIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJhY3RpdmVUZXh0Q29sb3IiLCJkcmF3Iiwibm9ybWFsSW50IiwiaXRlciIsImFyciIsInJhbmRvbSIsImNvbGxpc2lvbk5ldyIsImlzSW4iLCJnZXRXb3JkQ2xvdWRQb2ludCIsInRIZWlnaHQiLCJ0V2lkdGgiLCJicmVha251bSIsIlNwaW4iLCJpc1NwaW4iLCJhcmVhdiIsImRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzIiwid29yZE9wdGlvbiIsImF1dG9Db2xvcnMiLCJ3b3JkIiwid29yZENsb3VkRGF0YSIsInN0cm9rZVRleHQiLCJkcmF3RnVubmVsRGF0YVBvaW50cyIsImZ1bm5lbE9wdGlvbiIsIm1pblNpemUiLCJmdW5uZWwiLCJzZXJpZXNOZXciLCJkcmF3RnVubmVsVGV4dCIsImRyYXdGdW5uZWxDZW50ZXJUZXh0IiwiY2VudGVyVGV4dCIsImNlbnRlclRleHRTaXplIiwiY2VudGVyVGV4dENvbG9yIiwiZHJhd0NhbnZhcyIsIlRpbWluZyIsImVhc2VJbiIsImVhc2VPdXQiLCJlYXNlSW5PdXQiLCJsaW5lYXIiLCJBbmltYXRpb24iLCJpc1N0b3AiLCJkdXJhdGlvbiIsInRpbWluZyIsImRlbGF5IiwiY3JlYXRlQW5pbWF0aW9uRnJhbWUiLCJzZXRUaW1lb3V0Iiwic3RlcCIsInRpbWVTdGFtcCIsIkRhdGUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhbmltYXRpb25GcmFtZSIsInN0YXJ0VGltZVN0YW1wIiwiX3N0ZXAiLCJ0aW1lc3RhbXAiLCJvblByb2Nlc3MiLCJvbkFuaW1hdGlvbkZpbmlzaCIsInRpbWluZ0Z1bmN0aW9uIiwiYmluZCIsInByb3RvdHlwZSIsInN0b3AiLCJkcmF3Q2hhcnRzIiwiX3RoaXMiLCJhbmltYXRpb24iLCJhbmltYXRpb25JbnN0YW5jZSIsIl9jYWxMZWdlbmREYXRhIiwibGVnZW5kSGVpZ2h0IiwiX2NhbFlBeGlzRGF0YSIsIm1heFRpdGxlSGVpZ2h0IiwicmlnaHRJbmRleCIsImxlZnRJbmRleCIsIl9jYWxDYXRlZ29yaWVzRGF0YSIsImNhdGVnb3JpZXNEYXRhIiwic2Nyb2xsQWxpZ24iLCJvZmZzZXRMZWZ0IiwidG90YWxXaWR0aCIsInNjcmVlbldpZHRoIiwiY3VycmVudE9mZnNldCIsInN0YXJ0VG91Y2hYIiwibGFzdE1vdmVUaW1lIiwiY2xlYXJSZWN0IiwiX2RyYXdMaW5lRGF0YVBvaW50cyIsImVuYWJsZU1hcmtMaW5lIiwiX2RyYXdTY2F0dGVyRGF0YVBvaW50cyIsIl9kcmF3QnViYmxlRGF0YVBvaW50cyIsIl9kcmF3TWl4RGF0YVBvaW50cyIsIl9kcmF3Q29sdW1uRGF0YVBvaW50cyIsIl9kcmF3TW91bnREYXRhUG9pbnRzIiwiX2RyYXdCYXJEYXRhUG9pbnRzIiwiX2RyYXdBcmVhRGF0YVBvaW50cyIsImFyY2JhckRhdGEiLCJnYXVnZURhdGEiLCJfZHJhd0NhbmRsZURhdGFQb2ludHMiLCJ1Q2hhcnRzRXZlbnQiLCJldmVudHMiLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuZXIiLCJkZWxFdmVudExpc3RlbmVyIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicGFyYW1zIiwidUNoYXJ0cyIsImdyaWRTZXQiLCJjYW52YXMyZCIsImNvbmZpZyQkMSIsInRlbXBXaWR0aCIsInN0cm9rZVN0eWxlIiwibGluZVdpZHRoIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsImRvYnVsZVpvb20iLCJ0Y3MiLCJjbGllbnRZIiwibnRjcyIsInhsZW5ndGgiLCJtb3ZlQ291bnQiLCJjdHMwIiwiY3RzMSIsIm1vdmVDdXJyZW50MSIsImdldEN1cnJlbnREYXRhSW5kZXgiLCJtb3ZlQ3VycmVudDIiLCJjdXJyZW50RWFjaFNwYWNpbmciLCJjdXJyZW50TGVmdCIsInN0b3BBbmltYXRpb24iLCJfdG91Y2hlcyQiLCJnZXRMZWdlbmREYXRhSW5kZXgiLCJ0b3VjaExlZ2VuZCIsInNob3dUb29sVGlwIiwiX2dldFRvb2xUaXBEYXRhIiwiX2dldE1peFRvb2xUaXBEYXRhIiwic2Nyb2xsU3RhcnQiLCJzY3JvbGwiLCJub3ciLCJMaW1pdCIsInRvdWNoTW92ZUxpbWl0IiwiY3Vyck1vdmVUaW1lIiwiX2Rpc3RhbmNlIiwic2Nyb2xsRW5kIiwiX3Njcm9sbE9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUViLElBQUlBLE1BQU0sR0FBRztFQUNYQyxPQUFPLEVBQUUsaUJBQWlCO0VBQzFCQyxVQUFVLEVBQUUsRUFBRTtFQUNkQyxXQUFXLEVBQUUsRUFBRTtFQUNmQyxnQkFBZ0IsRUFBRSxDQUFDO0VBQ25CQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDekJDLFVBQVUsRUFBRSxDQUFDO0VBQ2JDLE1BQU0sRUFBRSxLQUFLO0VBQ2JDLFFBQVEsRUFBRSxFQUFFO0VBQ1pDLFNBQVMsRUFBRSxTQUFTO0VBQ3BCQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7RUFDeERDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0VBQzFHQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztFQUNoSEMsbUJBQW1CLEVBQUUsRUFBRTtFQUN2QkMsbUJBQW1CLEVBQUUsQ0FBQztFQUN0QkMsYUFBYSxFQUFFLEVBQUU7RUFDakJDLGdCQUFnQixFQUFFLEVBQUU7RUFDcEJDLGNBQWMsRUFBRSxDQUFDO0VBQ2pCQyxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCQyxjQUFjLEVB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LElBQUksQ0FBQ2UsWUFBWSxDQUFDb3dCLFNBQVMsR0FBRyxDQUFDO0VBQ2pDO0FBQ0YsQ0FBQztBQUFDLGVBRWFwQixPQUFPO0FBQUEsMkIiLCJmaWxlIjoiOTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzIChSKVxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjAv5b+r5omL77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMiBRSVVOIChSKSDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0cyAoUikg5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbid1c2Ugc3RyaWN0JztcclxuXHJcbnZhciBjb25maWcgPSB7XHJcbiAgdmVyc2lvbjogJ3YyLjQuNC0yMDIyMTEwMicsXHJcbiAgeUF4aXNXaWR0aDogMTUsXHJcbiAgeEF4aXNIZWlnaHQ6IDIyLFxyXG4gIHhBeGlzVGV4dFBhZGRpbmc6IDMsXHJcbiAgcGFkZGluZzogWzEwLCAxMCwgMTAsIDEwXSxcclxuICBwaXhlbFJhdGlvOiAxLFxyXG4gIHJvdGF0ZTogZmFsc2UsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlRm9udFNpemU6IDE1LFxyXG4gIHRvb2xUaXBQYWRkaW5nOiAzLFxyXG4gIHRvb2xUaXBCYWNrZ3JvdW5kOiAnIzAwMDAwMCcsXHJcbiAgdG9vbFRpcE9wYWNpdHk6IDAuNyxcclxuICB0b29sVGlwTGluZUhlaWdodDogMjAsXHJcbiAgcmFkYXJMYWJlbFRleHRNYXJnaW46IDEzLFxyXG59O1xyXG5cclxudmFyIGFzc2lnbiA9IGZ1bmN0aW9uKHRhcmdldCwgLi4udmFyQXJncykge1xyXG4gIGlmICh0YXJnZXQgPT0gbnVsbCkge1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignW3VDaGFydHNdIENhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xyXG4gIH1cclxuICBpZiAoIXZhckFyZ3MgfHwgdmFyQXJncy5sZW5ndGggPD0gMCkge1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9XHJcbiAgLy8g5rex5bqm5ZCI5bm25a+56LGhXHJcbiAgZnVuY3Rpb24gZGVlcEFzc2lnbihvYmoxLCBvYmoyKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqMikge1xyXG4gICAgICBvYmoxW2tleV0gPSBvYmoxW2tleV0gJiYgb2JqMVtrZXldLnRvU3RyaW5nKCkgPT09IFwiW29iamVjdCBPYmplY3RdXCIgP1xyXG4gICAgICAgIGRlZXBBc3NpZ24ob2JqMVtrZXldLCBvYmoyW2tleV0pIDogb2JqMVtrZXldID0gb2JqMltrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajE7XHJcbiAgfVxyXG4gIHZhckFyZ3MuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgdGFyZ2V0ID0gZGVlcEFzc2lnbih0YXJnZXQsIHZhbCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbnZhciB1dGlsID0ge1xyXG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQobnVtLCBsaW1pdCkge1xyXG4gICAgbGltaXQgPSBsaW1pdCB8fCAyO1xyXG4gICAgaWYgKHRoaXMuaXNGbG9hdChudW0pKSB7XHJcbiAgICAgIG51bSA9IG51bS50b0ZpeGVkKGxpbWl0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBudW07XHJcbiAgfSxcclxuICBpc0Zsb2F0OiBmdW5jdGlvbiBpc0Zsb2F0KG51bSkge1xyXG4gICAgcmV0dXJuIG51bSAlIDEgIT09IDA7XHJcbiAgfSxcclxuICBhcHByb3hpbWF0ZWx5RXF1YWw6IGZ1bmN0aW9uIGFwcHJveGltYXRlbHlFcXVhbChudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSAtIG51bTIpIDwgMWUtMTA7XHJcbiAgfSxcclxuICBpc1NhbWVTaWduOiBmdW5jdGlvbiBpc1NhbWVTaWduKG51bTEsIG51bTIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyhudW0xKSA9PT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSA9PT0gbnVtMiB8fCBNYXRoLmFicyhudW0xKSAhPT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSAhPT0gbnVtMjtcclxuICB9LFxyXG4gIGlzU2FtZVhDb29yZGluYXRlQXJlYTogZnVuY3Rpb24gaXNTYW1lWENvb3JkaW5hdGVBcmVhKHAxLCBwMikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lU2lnbihwMS54LCBwMi54KTtcclxuICB9LFxyXG4gIGlzQ29sbGlzaW9uOiBmdW5jdGlvbiBpc0NvbGxpc2lvbihvYmoxLCBvYmoyKSB7XHJcbiAgICBvYmoxLmVuZCA9IHt9O1xyXG4gICAgb2JqMS5lbmQueCA9IG9iajEuc3RhcnQueCArIG9iajEud2lkdGg7XHJcbiAgICBvYmoxLmVuZC55ID0gb2JqMS5zdGFydC55IC0gb2JqMS5oZWlnaHQ7XHJcbiAgICBvYmoyLmVuZCA9IHt9O1xyXG4gICAgb2JqMi5lbmQueCA9IG9iajIuc3RhcnQueCArIG9iajIud2lkdGg7XHJcbiAgICBvYmoyLmVuZC55ID0gb2JqMi5zdGFydC55IC0gb2JqMi5oZWlnaHQ7XHJcbiAgICB2YXIgZmxhZyA9IG9iajIuc3RhcnQueCA+IG9iajEuZW5kLnggfHwgb2JqMi5lbmQueCA8IG9iajEuc3RhcnQueCB8fCBvYmoyLmVuZC55ID4gb2JqMS5zdGFydC55IHx8IG9iajIuc3RhcnQueSA8IG9iajEuZW5kLnk7XHJcbiAgICByZXR1cm4gIWZsYWc7XHJcbiAgfVxyXG59O1xyXG5cclxuLy/lhbzlrrlINeeCueWHu+S6i+S7tlxyXG5mdW5jdGlvbiBnZXRINU9mZnNldChlKSB7XHJcbiAgZS5tcCA9IHtcclxuICAgIGNoYW5nZWRUb3VjaGVzOiBbXVxyXG4gIH07XHJcbiAgZS5tcC5jaGFuZ2VkVG91Y2hlcy5wdXNoKHtcclxuICAgIHg6IGUub2Zmc2V0WCxcclxuICAgIHk6IGUub2Zmc2V0WVxyXG4gIH0pO1xyXG4gIHJldHVybiBlO1xyXG59XHJcblxyXG4vLyBoZXgg6L2sIHJnYmFcclxuZnVuY3Rpb24gaGV4VG9SZ2IoaGV4VmFsdWUsIG9wYykge1xyXG4gIHZhciByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xyXG4gIHZhciBoZXggPSBoZXhWYWx1ZS5yZXBsYWNlKHJneCwgZnVuY3Rpb24obSwgciwgZywgYikge1xyXG4gICAgcmV0dXJuIHIgKyByICsgZyArIGcgKyBiICsgYjtcclxuICB9KTtcclxuICB2YXIgcmdiID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XHJcbiAgdmFyIHIgPSBwYXJzZUludChyZ2JbMV0sIDE2KTtcclxuICB2YXIgZyA9IHBhcnNlSW50KHJnYlsyXSwgMTYpO1xyXG4gIHZhciBiID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XHJcbiAgcmV0dXJuICdyZ2JhKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnLCcgKyBvcGMgKyAnKSc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSYW5nZShudW0sIHR5cGUsIGxpbWl0KSB7XHJcbiAgaWYgKGlzTmFOKG51bSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignW3VDaGFydHNdIHNlcmllc+aVsOaNrumcgOS4uk51bWJlcuagvOW8jycpO1xyXG4gIH1cclxuICBsaW1pdCA9IGxpbWl0IHx8IDEwO1xyXG4gIHR5cGUgPSB0eXBlID8gdHlwZSA6ICd1cHBlcic7XHJcbiAgdmFyIG11bHRpcGxlID0gMTtcclxuICB3aGlsZSAobGltaXQgPCAxKSB7XHJcbiAgICBsaW1pdCAqPSAxMDtcclxuICAgIG11bHRpcGxlICo9IDEwO1xyXG4gIH1cclxuICBpZiAodHlwZSA9PT0gJ3VwcGVyJykge1xyXG4gICAgbnVtID0gTWF0aC5jZWlsKG51bSAqIG11bHRpcGxlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgbnVtID0gTWF0aC5mbG9vcihudW0gKiBtdWx0aXBsZSk7XHJcbiAgfVxyXG4gIHdoaWxlIChudW0gJSBsaW1pdCAhPT0gMCkge1xyXG4gICAgaWYgKHR5cGUgPT09ICd1cHBlcicpIHtcclxuICAgICAgaWYgKG51bSA9PSBudW0gKyAxKSB7IC8v5L+u5aSN5pWw5o2u5YC86L+H5aSnbnVtKyvml6DmlYjnmoRidWcgYnkg5ZCR5pel6JG1IEB4cmtfanlcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBudW0rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bS0tO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbnVtIC8gbXVsdGlwbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhbmRsZU1BKGRheUFyciwgbmFtZUFyciwgY29sb3JBcnIsIGtkYXRhKSB7XHJcbiAgbGV0IHNlcmllc1RlbXAgPSBbXTtcclxuICBmb3IgKGxldCBrID0gMDsgayA8IGRheUFyci5sZW5ndGg7IGsrKykge1xyXG4gICAgbGV0IHNlcmllc0l0ZW0gPSB7XHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICBuYW1lOiBuYW1lQXJyW2tdLFxyXG4gICAgICBjb2xvcjogY29sb3JBcnJba11cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2RhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCBkYXlBcnJba10pIHtcclxuICAgICAgICBzZXJpZXNJdGVtLmRhdGEucHVzaChudWxsKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXlBcnJba107IGorKykge1xyXG4gICAgICAgIHN1bSArPSBrZGF0YVtpIC0gal1bMV07XHJcbiAgICAgIH1cclxuICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2goKyhzdW0gLyBkYXlBcnJba10pLnRvRml4ZWQoMykpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzVGVtcC5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzVGVtcDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVmFsaWREaXN0YW5jZShzZWxmLCBkaXN0YW5jZSwgY2hhcnREYXRhLCBjb25maWcsIG9wdHMpIHtcclxuICB2YXIgZGF0YUNoYXJ0QXJlYVdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNoYXJ0V2lkdGggPSBjaGFydERhdGEuZWFjaFNwYWNpbmcgKiAob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgZGF0YUNoYXJ0V2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmNoYXJ0RGF0YS5lYWNoU3BhY2luZztcclxuICB9XHJcbiAgdmFyIHZhbGlkRGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICBpZiAoZGlzdGFuY2UgPj0gMCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IDA7XHJcbiAgICBzZWxmLnVldmVudC50cmlnZ2VyKCdzY3JvbGxMZWZ0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdsZWZ0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdsZWZ0JztcclxuICB9IGVsc2UgaWYgKE1hdGguYWJzKGRpc3RhbmNlKSA+PSBkYXRhQ2hhcnRXaWR0aCAtIGRhdGFDaGFydEFyZWFXaWR0aCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IGRhdGFDaGFydEFyZWFXaWR0aCAtIGRhdGFDaGFydFdpZHRoO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsUmlnaHQnKTtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gJ3JpZ2h0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdyaWdodCc7XHJcbiAgfSBlbHNlIHtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gZGlzdGFuY2VcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBkaXN0YW5jZTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkRGlzdGFuY2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSkge1xyXG4gIGZ1bmN0aW9uIGFkanVzdChhbmdsZSkge1xyXG4gICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHdoaWxlIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgIGFuZ2xlIC09IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFuZ2xlO1xyXG4gIH1cclxuICBhbmdsZSA9IGFkanVzdChhbmdsZSk7XHJcbiAgc3RhcnRBbmdsZSA9IGFkanVzdChzdGFydEFuZ2xlKTtcclxuICBlbmRBbmdsZSA9IGFkanVzdChlbmRBbmdsZSk7XHJcbiAgaWYgKHN0YXJ0QW5nbGUgPiBlbmRBbmdsZSkge1xyXG4gICAgZW5kQW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICBpZiAoYW5nbGUgPCBzdGFydEFuZ2xlKSB7XHJcbiAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYW5nbGUgPj0gc3RhcnRBbmdsZSAmJiBhbmdsZSA8PSBlbmRBbmdsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaSkge1xyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSB7XHJcbiAgICBpZiAocG9pbnRzW2kgLSAxXSAmJiBwb2ludHNbaSArIDFdKSB7XHJcbiAgICAgIHJldHVybiBwb2ludHNbaV0ueSA+PSBNYXRoLm1heChwb2ludHNbaSAtIDFdLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcG9pbnRzW2ldLnkgPD0gTWF0aC5taW4ocG9pbnRzW2kgLSAxXS55LFxyXG4gICAgICAgIHBvaW50c1tpICsgMV0ueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnggPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBvaW50c1tpXS54IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueCxcclxuICAgICAgICBwb2ludHNbaSArIDFdLngpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YXIgYSA9IDAuMjtcclxuICB2YXIgYiA9IDAuMjtcclxuICB2YXIgcEF4ID0gbnVsbDtcclxuICB2YXIgcEF5ID0gbnVsbDtcclxuICB2YXIgcEJ4ID0gbnVsbDtcclxuICB2YXIgcEJ5ID0gbnVsbDtcclxuICBpZiAoaSA8IDEpIHtcclxuICAgIHBBeCA9IHBvaW50c1swXS54ICsgKHBvaW50c1sxXS54IC0gcG9pbnRzWzBdLngpICogYTtcclxuICAgIHBBeSA9IHBvaW50c1swXS55ICsgKHBvaW50c1sxXS55IC0gcG9pbnRzWzBdLnkpICogYTtcclxuICB9IGVsc2Uge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLnggKyAocG9pbnRzW2kgKyAxXS54IC0gcG9pbnRzW2kgLSAxXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueSArIChwb2ludHNbaSArIDFdLnkgLSBwb2ludHNbaSAtIDFdLnkpICogYTtcclxuICB9XHJcblxyXG4gIGlmIChpID4gcG9pbnRzLmxlbmd0aCAtIDMpIHtcclxuICAgIHZhciBsYXN0ID0gcG9pbnRzLmxlbmd0aCAtIDE7XHJcbiAgICBwQnggPSBwb2ludHNbbGFzdF0ueCAtIChwb2ludHNbbGFzdF0ueCAtIHBvaW50c1tsYXN0IC0gMV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2xhc3RdLnkgLSAocG9pbnRzW2xhc3RdLnkgLSBwb2ludHNbbGFzdCAtIDFdLnkpICogYjtcclxuICB9IGVsc2Uge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54IC0gKHBvaW50c1tpICsgMl0ueCAtIHBvaW50c1tpXS54KSAqIGI7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnkgLSAocG9pbnRzW2kgKyAyXS55IC0gcG9pbnRzW2ldLnkpICogYjtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkgKyAxKSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpKSkge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLng7XHJcbiAgfVxyXG4gIGlmIChwQXkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEF5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueTtcclxuICB9XHJcbiAgaWYgKHBCeSA+PSBNYXRoLm1heChwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSB8fCBwQnkgPD0gTWF0aC5taW4ocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKHBBeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQXggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEJ4ID49IE1hdGgubWF4KHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBCeCA8PSBNYXRoLm1pbihwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY3RyQToge1xyXG4gICAgICB4OiBwQXgsXHJcbiAgICAgIHk6IHBBeVxyXG4gICAgfSxcclxuICAgIGN0ckI6IHtcclxuICAgICAgeDogcEJ4LFxyXG4gICAgICB5OiBwQnlcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gY29udmVydENvb3JkaW5hdGVPcmlnaW4oeCwgeSwgY2VudGVyKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IGNlbnRlci54ICsgeCxcclxuICAgIHk6IGNlbnRlci55IC0geVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGF2b2lkQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSB7XHJcbiAgaWYgKHRhcmdldCkge1xyXG4gICAgLy8gaXMgY29sbGlzaW9uIHRlc3RcclxuICAgIHdoaWxlICh1dGlsLmlzQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSkge1xyXG4gICAgICBpZiAob2JqLnN0YXJ0LnggPiAwKSB7XHJcbiAgICAgICAgb2JqLnN0YXJ0LnktLTtcclxuICAgICAgfSBlbHNlIGlmIChvYmouc3RhcnQueCA8IDApIHtcclxuICAgICAgICBvYmouc3RhcnQueSsrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvYmouc3RhcnQueSA+IDApIHtcclxuICAgICAgICAgIG9iai5zdGFydC55Kys7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9iai5zdGFydC55LS07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyl7XHJcbiAgbGV0IHBpZVNlcmllc0FyciA9IFtdO1xyXG4gIGlmKHNlcmllcy5sZW5ndGg+MCAmJiBzZXJpZXNbMF0uZGF0YS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSl7XHJcbiAgICBvcHRzLl9waWVTZXJpZXNfID0gc2VyaWVzO1xyXG4gICAgbGV0IG9sZHNlcmllcyA9IHNlcmllc1swXS5kYXRhO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgb2xkc2VyaWVzW2ldLmZvcm1hdHRlciA9IHNlcmllc1swXS5mb3JtYXR0ZXI7XHJcbiAgICAgIG9sZHNlcmllc1tpXS5kYXRhID0gb2xkc2VyaWVzW2ldLnZhbHVlO1xyXG4gICAgICBwaWVTZXJpZXNBcnIucHVzaChvbGRzZXJpZXNbaV0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy5zZXJpZXMgPSBwaWVTZXJpZXNBcnI7XHJcbiAgfWVsc2V7XHJcbiAgICBwaWVTZXJpZXNBcnIgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIHJldHVybiBwaWVTZXJpZXNBcnI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgaW5kZXggPSAwO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGlmICghaXRlbS5jb2xvcikge1xyXG4gICAgICBpdGVtLmNvbG9yID0gY29uZmlnLmNvbG9yW2luZGV4XTtcclxuICAgICAgaW5kZXggPSAoaW5kZXggKyAxKSAlIGNvbmZpZy5jb2xvci5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ubGluZWFySW5kZXgpIHtcclxuICAgICAgaXRlbS5saW5lYXJJbmRleCA9IGk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0uaW5kZXgpIHtcclxuICAgICAgaXRlbS5pbmRleCA9IDA7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0uc2hvdyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGl0ZW0uc2hvdyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ucG9pbnRTaGFwZSkge1xyXG4gICAgICBpdGVtLnBvaW50U2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJsaW5lXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjb2x1bW4nOlxyXG4gICAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJyZWN0XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhcmVhJzpcclxuICAgICAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJ0cmlhbmdsZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxDdXN0b21Db2xvcihsaW5lYXJUeXBlLCBjdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpIHtcclxuICB2YXIgbmV3Y29sb3IgPSBjdXN0b21Db2xvciB8fCBbXTtcclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPT0gMCApIHtcclxuICAgIG5ld2NvbG9yID0gY29uZmlnLmxpbmVhckNvbG9yO1xyXG4gIH1cclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPCBzZXJpZXMubGVuZ3RoKSB7XHJcbiAgICBsZXQgY2hhemhpID0gc2VyaWVzLmxlbmd0aCAtIG5ld2NvbG9yLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhemhpOyBpKyspIHtcclxuICAgICAgbmV3Y29sb3IucHVzaChjb25maWcubGluZWFyQ29sb3JbKGkgKyAxKSAlIGNvbmZpZy5saW5lYXJDb2xvci5sZW5ndGhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG5ld2NvbG9yO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSkge1xyXG4gIHZhciBsaW1pdCA9IDA7XHJcbiAgdmFyIHJhbmdlID0gbWF4RGF0YSAtIG1pbkRhdGE7XHJcbiAgaWYgKHJhbmdlID49IDEwMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwMCkge1xyXG4gICAgbGltaXQgPSAxMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwKSB7XHJcbiAgICBsaW1pdCA9IDU7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxKSB7XHJcbiAgICBsaW1pdCA9IDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjEpIHtcclxuICAgIGxpbWl0ID0gMC4xO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMSkge1xyXG4gICAgbGltaXQgPSAwLjAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMDAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMDAxO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbWluUmFuZ2U6IGZpbmRSYW5nZShtaW5EYXRhLCAnbG93ZXInLCBsaW1pdCksXHJcbiAgICBtYXhSYW5nZTogZmluZFJhbmdlKG1heERhdGEsICd1cHBlcicsIGxpbWl0KVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lYXN1cmVUZXh0KHRleHQsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIHdpZHRoID0gMDtcclxuICB0ZXh0ID0gU3RyaW5nKHRleHQpO1xyXG5cclxuXHJcblxyXG4gIGlmIChjb250ZXh0ICE9PSBmYWxzZSAmJiBjb250ZXh0ICE9PSB1bmRlZmluZWQgJiYgY29udGV4dC5zZXRGb250U2l6ZSAmJiBjb250ZXh0Lm1lYXN1cmVUZXh0KSB7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIHJldHVybiBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpLndpZHRoO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB2YXIgdGV4dCA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gdGV4dFtpXTtcclxuICAgICAgaWYgKC9bYS16QS1aXS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDc7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1swLTldLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gNS41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXC4vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjc7XHJcbiAgICAgIH0gZWxzZSBpZiAoLy0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAzLjI1O1xyXG4gICAgICB9IGVsc2UgaWYgKC86Ly50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9bXFx1NGUwMC1cXHU5ZmE1XS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXCh8XFwpLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMy43MztcclxuICAgICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC8lLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gODtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aCArPSAxMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZHRoICogZm9udFNpemUgLyAxMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGFDb21iaW5lKHNlcmllcykge1xyXG4gIHJldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiAoYS5kYXRhID8gYS5kYXRhIDogYSkuY29uY2F0KGIuZGF0YSk7XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgbGVuKSB7XHJcbiAgdmFyIHN1bSA9IG5ldyBBcnJheShsZW4pO1xyXG4gIGZvciAodmFyIGogPSAwOyBqIDwgc3VtLmxlbmd0aDsgaisrKSB7XHJcbiAgICBzdW1bal0gPSAwO1xyXG4gIH1cclxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdW0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgc3VtW2pdICs9IHNlcmllc1tpXS5kYXRhW2pdO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEuZGF0YSA/IGEuZGF0YSA6IGEpLmNvbmNhdChiLmRhdGEpLmNvbmNhdChzdW0pO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG91Y2hlcyh0b3VjaGVzLCBvcHRzLCBlKSB7XHJcbiAgbGV0IHgsIHk7XHJcbiAgaWYgKHRvdWNoZXMuY2xpZW50WCkge1xyXG4gICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgIHkgPSBvcHRzLmhlaWdodCAtIHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB4ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeCA9IHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB5ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgeSA9IG9wdHMuaGVpZ2h0IC0gdG91Y2hlcy54ICogb3B0cy5waXg7XHJcbiAgICAgIHggPSB0b3VjaGVzLnkgKiBvcHRzLnBpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB0b3VjaGVzLnggKiBvcHRzLnBpeDtcclxuICAgICAgeSA9IHRvdWNoZXMueSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeDogeCxcclxuICAgIHk6IHlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFNlcmllc0RhdGFJdGVtKHNlcmllcywgaW5kZXgsIGdyb3VwKSB7XHJcbiAgdmFyIGRhdGEgPSBbXTtcclxuICB2YXIgbmV3U2VyaWVzID0gW107XHJcbiAgdmFyIGluZGV4SXNBcnIgPSBpbmRleC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMTtcclxuICBpZihpbmRleElzQXJyKXtcclxuICAgIGxldCB0ZW1wU2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllcy5wdXNoKHRlbXBTZXJpZXNbZ3JvdXBbaV1dKTtcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIG5ld1NlcmllcyA9IHNlcmllcztcclxuICB9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3U2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IG5ld1Nlcmllc1tpXTtcclxuICAgIGxldCB0bXBpbmRleCA9IC0xO1xyXG4gICAgaWYoaW5kZXhJc0Fycil7XHJcbiAgICAgIHRtcGluZGV4ID0gaW5kZXhbaV07XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdG1waW5kZXggPSBpbmRleDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLmRhdGFbdG1waW5kZXhdICE9PSBudWxsICYmIHR5cGVvZiBpdGVtLmRhdGFbdG1waW5kZXhdICE9PSAndW5kZWZpbmVkJyAmJiBpdGVtLnNob3cpIHtcclxuICAgICAgbGV0IHNlcmllc0l0ZW0gPSB7fTtcclxuICAgICAgc2VyaWVzSXRlbS5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHNlcmllc0l0ZW0udHlwZSA9IGl0ZW0udHlwZTtcclxuICAgICAgc2VyaWVzSXRlbS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgICAgIHNlcmllc0l0ZW0ucG9pbnRTaGFwZSA9IGl0ZW0ucG9pbnRTaGFwZTtcclxuICAgICAgc2VyaWVzSXRlbS5kaXNhYmxlTGVnZW5kID0gaXRlbS5kaXNhYmxlTGVnZW5kO1xyXG4gICAgICBzZXJpZXNJdGVtLm5hbWUgPSBpdGVtLm5hbWU7XHJcbiAgICAgIHNlcmllc0l0ZW0uc2hvdyA9IGl0ZW0uc2hvdztcclxuICAgICAgc2VyaWVzSXRlbS5kYXRhID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLmRhdGFbdG1waW5kZXhdKSA6IGl0ZW0uZGF0YVt0bXBpbmRleF07XHJcbiAgICAgIGRhdGEucHVzaChzZXJpZXNJdGVtKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1heFRleHRMaXN0TGVuZ3RoKGxpc3QsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIGxlbmd0aExpc3QgPSBsaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbSwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBsZW5ndGhMaXN0KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzKGxlbmd0aCkge1xyXG4gIHZhciBlYWNoQW5nbGUgPSAyICogTWF0aC5QSSAvIGxlbmd0aDtcclxuICB2YXIgQ29vcmRpbmF0ZVNlcmllcyA9IFtdO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgIENvb3JkaW5hdGVTZXJpZXMucHVzaChlYWNoQW5nbGUgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIENvb3JkaW5hdGVTZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiAtMSAqIGl0ZW0gKyBNYXRoLlBJIC8gMjtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGdyb3VwLCBjYXRlZ29yaWVzKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cz9vcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM6W107XHJcbiAgbGV0IHBvaW50cyA9IHt9O1xyXG4gIGlmKGdyb3VwLmxlbmd0aCA+IDApe1xyXG4gICAgbGV0IGZpbHRlclBvaW50cyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmaWx0ZXJQb2ludHMucHVzaChjYWxQb2ludHNbZ3JvdXBbaV1dKVxyXG4gICAgfVxyXG4gICAgcG9pbnRzID0gZmlsdGVyUG9pbnRzWzBdW2luZGV4WzBdXTtcclxuICB9ZWxzZXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmKGNhbFBvaW50c1tpXVtpbmRleF0pe1xyXG4gICAgICAgIHBvaW50cyA9IGNhbFBvaW50c1tpXVtpbmRleF07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGxldCB0aXRsZVRleHQgPSBudWxsO1xyXG4gICAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoPjApIHtcclxuICAgICAgdGl0bGVUZXh0ID0gY2F0ZWdvcmllc1tpbmRleF07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGl0bGVUZXh0LCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIHRleHRMaXN0ID0gdGV4dExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVMZWdlbmQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzKSxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZVRvb2xUaXBEYXRhKHNlcmllcywgc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMsIGV4dHJhKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA2ICYmIGFyZ3VtZW50c1s2XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzZdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cztcclxuICBsZXQgdXBDb2xvciA9IGV4dHJhLmNvbG9yLnVwRmlsbDtcclxuICBsZXQgZG93bkNvbG9yID0gZXh0cmEuY29sb3IuZG93bkZpbGw7XHJcbiAgLy/popzoibLpobrluo/kuLrlvIDnm5jvvIzmlLbnm5jvvIzmnIDkvY7vvIzmnIDpq5hcclxuICBsZXQgY29sb3IgPSBbdXBDb2xvciwgdXBDb2xvciwgZG93bkNvbG9yLCB1cENvbG9yXTtcclxuICB2YXIgdGV4dExpc3QgPSBbXTtcclxuICBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaW5kZXggPT0gMCkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRhWzFdIC0gaXRlbS5kYXRhWzBdIDwgMCkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbG9yWzFdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVswXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbMF0gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSA8IGl0ZW0uZGF0YVswXSkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMl0gPiBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzJdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzNdIDwgc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclszXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHRleHQxID0ge1xyXG4gICAgICB0ZXh0OiAn5byA55uY77yaJyArIGl0ZW0uZGF0YVswXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzBdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQyID0ge1xyXG4gICAgICB0ZXh0OiAn5pS255uY77yaJyArIGl0ZW0uZGF0YVsxXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzFdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQ0ID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA6auY77yaJyArIGl0ZW0uZGF0YVszXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzNdXHJcbiAgICB9O1xyXG4gICAgdGV4dExpc3QucHVzaCh0ZXh0MSwgdGV4dDIsIHRleHQzLCB0ZXh0NCk7XHJcbiAgfSk7XHJcbiAgdmFyIHZhbGlkQ2FsUG9pbnRzID0gW107XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IHBvaW50cyA9IGNhbFBvaW50c1tpXTtcclxuICAgIGlmICh0eXBlb2YgcG9pbnRzW2luZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgcG9pbnRzW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICB2YWxpZENhbFBvaW50cy5wdXNoKHBvaW50c1tpbmRleF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQueCA9IE1hdGgucm91bmQodmFsaWRDYWxQb2ludHNbMF1bMF0ueCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU2VyaWVzKHNlcmllcykge1xyXG4gIGxldCB0ZW1wU2VyaWVzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChzZXJpZXNbaV0uc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgIHRlbXBTZXJpZXMucHVzaChzZXJpZXNbaV0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wU2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQ3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHNwYWNpbmcgPSAwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB4QXhpc1BvaW50cy5wdXNoKG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2ldIC0gc3BhY2luZyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScpICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgICAgbGV0IHRpbWVQb2ludHMgPSBBcnJheShjYWxQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGltZVBvaW50c1tpXSA9IEFycmF5KGNhbFBvaW50c1tpXS5sZW5ndGgpXHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhbFBvaW50c1tpXS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICB0aW1lUG9pbnRzW2ldW2pdID0gKE1hdGguYWJzKGNhbFBvaW50c1tpXVtqXS54IC0gY3VycmVudFBvaW50cy54KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcG9pbnRWYWx1ZSA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHBvaW50SW5kZXggPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGltZVBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRWYWx1ZVtpXSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHRpbWVQb2ludHNbaV0pO1xyXG4gICAgICAgICAgcG9pbnRJbmRleFtpXSA9IHRpbWVQb2ludHNbaV0uaW5kZXhPZihwb2ludFZhbHVlW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pblZhbHVlID0gTWF0aC5taW4uYXBwbHkobnVsbCwgcG9pbnRWYWx1ZSk7XHJcbiAgICAgICAgY3VycmVudC5pbmRleCA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRWYWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYocG9pbnRWYWx1ZVtpXSA9PSBtaW5WYWx1ZSl7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuZ3JvdXAucHVzaChpKTtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleC5wdXNoKHBvaW50SW5kZXhbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnggKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cztcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgeUF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnkgKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTGVnZW5kSW5kZXgoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YSwgb3B0cykge1xyXG4gIGxldCBjdXJyZW50SW5kZXggPSAtMTtcclxuICBsZXQgZ2FwID0gMDtcclxuICBpZiAoaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLmFyZWEpKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgbGV0IGFyZWEgPSBpdGVtW2pdWydhcmVhJ107XHJcbiAgICAgICAgaWYgKGFyZWEgJiYgY3VycmVudFBvaW50cy54ID4gYXJlYVswXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhWzJdICsgZ2FwICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWFbMV0gLSBnYXAgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYVszXSArIGdhcCkge1xyXG4gICAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgYXJlYSkge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPiBhcmVhLnN0YXJ0LnggJiYgY3VycmVudFBvaW50cy54IDwgYXJlYS5lbmQueCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhLnN0YXJ0LnkgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYS5lbmQueTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPD0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEwICYmIGN1cnJlbnRQb2ludHMueCA+PSBvcHRzLmFyZWFbM10gLSAxMCAmJiBjdXJyZW50UG9pbnRzLnkgPj0gb3B0cy5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueSA8PSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLCBjb3VudCkge1xyXG4gIHZhciBlYWNoQW5nbGVBcmVhID0gMiAqIE1hdGguUEkgLyBjb3VudDtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgaWYgKGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCByYWRhckRhdGEuY2VudGVyLCByYWRhckRhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGZpeEFuZ2xlID0gZnVuY3Rpb24gZml4QW5nbGUoYW5nbGUpIHtcclxuICAgICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgICAgYW5nbGUgLT0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFuZ2xlO1xyXG4gICAgfTtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocmFkYXJEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSByYWRhckRhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtMSAqIGFuZ2xlO1xyXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHZhciBhbmdsZUxpc3QgPSByYWRhckRhdGEuYW5nbGVMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIGl0ZW0gPSBmaXhBbmdsZSgtMSAqIGl0ZW0pO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgdmFyIHJhbmdlU3RhcnQgPSBmaXhBbmdsZShpdGVtIC0gZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICB2YXIgcmFuZ2VFbmQgPSBmaXhBbmdsZShpdGVtICsgZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICBpZiAocmFuZ2VFbmQgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgICAgcmFuZ2VFbmQgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgPD0gcmFuZ2VFbmQgfHwgYW5nbGUgKyAyICogTWF0aC5QSSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlICsgMiAqIE1hdGguUEkgPD0gcmFuZ2VFbmQpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBmdW5uZWxEYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5uZWxEYXRhLnNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBmdW5uZWxEYXRhLnNlcmllc1tpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmZ1bm5lbEFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5mdW5uZWxBcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uZnVubmVsQXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmZ1bm5lbEFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgd29yZERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHdvcmREYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IHdvcmREYXRhW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5hcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uYXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIGNEYXRhID0gb3B0cy5jaGFydERhdGEubWFwRGF0YTtcclxuICB2YXIgZGF0YSA9IG9wdHMuc2VyaWVzO1xyXG4gIHZhciB0bXAgPSBwb2ludFRvQ29vcmRpbmF0ZShjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCwgY0RhdGEuYm91bmRzLCBjRGF0YS5zY2FsZSwgY0RhdGEueG9mZnNldCwgY0RhdGEueW9mZnNldCk7XHJcbiAgdmFyIHBvaSA9IFt0bXAueCwgdG1wLnldO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgICBpZiAoaXNQb2lXaXRoaW5Qb2x5KHBvaSwgaXRlbSwgb3B0cy5jaGFydERhdGEubWFwRGF0YS5tZXJjYXRvcikpIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0Um9zZURhdGFQb2ludHMob3B0cy5fc2VyaWVzXywgb3B0cy5leHRyYS5yb3NlLnR5cGUsIHBpZURhdGEucmFkaXVzLCBwaWVEYXRhLnJhZGl1cyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucm9zZSAmJiBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Jvc2VfcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRQaWVDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHBpZURhdGEuc2VyaWVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5waWUgJiYgb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5leHRyYS5yaW5nICYmIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBjZW50ZXIsIHJhZGl1cykge1xyXG4gIHJldHVybiBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnggLSBjZW50ZXIueCwgMikgKyBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnkgLSBjZW50ZXIueSwgMikgPD0gTWF0aC5wb3cocmFkaXVzLCAyKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKSB7XHJcbiAgdmFyIG5ld1BvaW50cyA9IFtdO1xyXG4gIHZhciBpdGVtcyA9IFtdO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZihlYWNoU2VyaWVzLmNvbm5lY3ROdWxscyl7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdQb2ludHMucHVzaChpdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGl0ZW1zID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH0pO1xyXG4gIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICB9XHJcbiAgcmV0dXJuIG5ld1BvaW50cztcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGNhbExlZ2VuZERhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNoYXJ0RGF0YSwgY29udGV4dCkge1xyXG4gIGxldCBsZWdlbmREYXRhID0ge1xyXG4gICAgYXJlYToge1xyXG4gICAgICBzdGFydDoge1xyXG4gICAgICAgIHg6IDAsXHJcbiAgICAgICAgeTogMFxyXG4gICAgICB9LFxyXG4gICAgICBlbmQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IDAsXHJcbiAgICAgIGhlaWdodDogMCxcclxuICAgICAgd2hvbGVXaWR0aDogMCxcclxuICAgICAgd2hvbGVIZWlnaHQ6IDBcclxuICAgIH0sXHJcbiAgICBwb2ludHM6IFtdLFxyXG4gICAgd2lkdGhBcnI6IFtdLFxyXG4gICAgaGVpZ2h0QXJyOiBbXVxyXG4gIH07XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgICByZXR1cm4gbGVnZW5kRGF0YTtcclxuICB9XHJcbiAgbGV0IHBhZGRpbmcgPSBvcHRzLmxlZ2VuZC5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgbGV0IG1hcmdpbiA9IG9wdHMubGVnZW5kLm1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIGxldCBmb250U2l6ZSA9IG9wdHMubGVnZW5kLmZvbnRTaXplID8gb3B0cy5sZWdlbmQuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICBsZXQgc2hhcGVXaWR0aCA9IDE1ICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgbGV0IGxpbmVIZWlnaHQgPSBNYXRoLm1heChvcHRzLmxlZ2VuZC5saW5lSGVpZ2h0ICogb3B0cy5waXgsIGZvbnRTaXplKTtcclxuICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgIGxldCBsZWdlbmRMaXN0ID0gW107XHJcbiAgICBsZXQgd2lkdGhDb3VudCA9IDA7XHJcbiAgICBsZXQgd2lkdGhDb3VudEFyciA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgICBjb25zdCBsZWdlbmRUZXh0ID0gaXRlbS5sZWdlbmRUZXh0ID8gaXRlbS5sZWdlbmRUZXh0IDogaXRlbS5uYW1lO1xyXG4gICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChsZWdlbmRUZXh0IHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh3aWR0aENvdW50ICsgaXRlbVdpZHRoID4gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkge1xyXG4gICAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgd2lkdGhDb3VudCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93ID0gW2l0ZW1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoQ291bnQgKz0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICBsZWdlbmREYXRhLndpZHRoQXJyID0gd2lkdGhDb3VudEFycjtcclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gTWF0aC5tYXguYXBwbHkobnVsbCwgd2lkdGhDb3VudEFycik7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZFdpZHRoIC0gMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gKG9wdHMud2lkdGggLSBsZWdlbmRXaWR0aCkgLyAyIC0gcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IChvcHRzLndpZHRoICsgbGVnZW5kV2lkdGgpIC8gMiArIHBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nICsgMiAqIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5wb2ludHMgPSBsZWdlbmRMaXN0O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsZXQgbGVuID0gc2VyaWVzLmxlbmd0aDtcclxuICAgIGxldCBtYXhIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSAtIDIgKiBtYXJnaW4gLSAyICogcGFkZGluZztcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1pbihNYXRoLmZsb29yKG1heEhlaWdodCAvIGxpbmVIZWlnaHQpLCBsZW4pO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW4gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gKG9wdHMuaGVpZ2h0IC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IChvcHRzLmhlaWdodCArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGxldCBsaW5lTnVtID0gbGVuICUgbWF4TGVuZ3RoID09PSAwID8gbGVuIC8gbWF4TGVuZ3RoIDogTWF0aC5mbG9vcigobGVuIC8gbWF4TGVuZ3RoKSArIDEpO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZU51bTsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wID0gc2VyaWVzLnNsaWNlKGkgKiBtYXhMZW5ndGgsIGkgKiBtYXhMZW5ndGggKyBtYXhMZW5ndGgpO1xyXG4gICAgICBjdXJyZW50Um93LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICBsZWdlbmREYXRhLnBvaW50cyA9IGN1cnJlbnRSb3c7XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBjdXJyZW50Um93W2ldO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChpdGVtW2pdLm5hbWUgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmIChpdGVtV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGVnZW5kRGF0YS53aWR0aEFyci5wdXNoKG1heFdpZHRoKTtcclxuICAgICAgICBsZWdlbmREYXRhLmhlaWdodEFyci5wdXNoKGl0ZW0ubGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSAwXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVnZW5kRGF0YS53aWR0aEFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlZ2VuZFdpZHRoICs9IGxlZ2VuZERhdGEud2lkdGhBcnJbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmREYXRhLmFyZWEud2lkdGggKyBwYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCAtIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcsIGNvbnRleHQpIHtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICB2YXIgZm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gIHZhciBjYXRlZ29yaWVzVGV4dExlbnRoID0gY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtLGluZGV4LG9wdHMpIDogaXRlbTtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgXHJcbiAgdmFyIG1heFRleHRMZW5ndGggPSBNYXRoLm1heC5hcHBseSh0aGlzLCBjYXRlZ29yaWVzVGV4dExlbnRoKTtcclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCA9PSB0cnVlKSB7XHJcbiAgICByZXN1bHQuYW5nbGUgPSBvcHRzLnhBeGlzLnJvdGF0ZUFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgIE1hdGguYWJzKG1heFRleHRMZW5ndGggKiBNYXRoLnNpbihyZXN1bHQuYW5nbGUpKVxyXG4gICAgdGVtcEhlaWdodCA9IHRlbXBIZWlnaHQgPCBmb250U2l6ZSArIDIgKiBjb25maWcueEF4aXNUZXh0UGFkZGluZyA/IHRlbXBIZWlnaHQgKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgOiB0ZW1wSGVpZ2h0O1xyXG4gICAgaWYob3B0cy5lbmFibGVTY3JvbGwgPT0gdHJ1ZSAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cgPT0gdHJ1ZSl7XHJcbiAgICAgIHRlbXBIZWlnaHQgKz0gMTIgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IHRlbXBIZWlnaHQ7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkKXtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IDA7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBjb25maWcueEF4aXNIZWlnaHRcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICAvLyBnZXQgbWF4IGxlbmd0aCBvZiBjYXRlZ29yaWVzIHRleHRcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHRleHRMZW5ndGgpO1xyXG4gIC8vIOWmguaenOWIu+W6puWAvOaWh+acrOWGheWuuei/h+mVvyzliJnlsIblhbbpgIbml7bpkojml4vovaw0NcKwXHJcbiAgaWYgKG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBvcHRpb24sIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmKG9wdGlvbi50eXBlID09ICdmdW5uZWwnKXtcclxuICAgICAgc2VyaWVzW2ldLnJhZGl1cyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGEgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSAgKGVhY2hTcGFjaW5nICogKHNlcmllcy5sZW5ndGggLSBpKSkgLyAoZWFjaFNwYWNpbmcgKiBzZXJpZXMubGVuZ3RoKSAqIHJhZGl1cyAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBzZXJpZXNbaV0uX3Byb3BvcnRpb25fID0gc2VyaWVzW2ldLmRhdGEgLyBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgLy8gaWYob3B0aW9uLnR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgLy8gICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIC8vIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKGFyY2Jhck9wdGlvbi5kaXJlY3Rpb24gPT0gJ2Njdycpe1xyXG4gICAgICAgIGlmIChhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSA8IGFyY2Jhck9wdGlvbi5lbmRBbmdsZSkge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IDIgKyBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYgKGFyY2Jhck9wdGlvbi5lbmRBbmdsZSA8IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlKSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gMiArIGFyY2Jhck9wdGlvbi5lbmRBbmdsZSAtIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSBhcmNiYXJPcHRpb24uZW5kQW5nbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZihhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKXtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzIDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGUgKyAxO1xyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBpdGVtLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICsgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIGl0ZW0uX29sZEFuZ2xlXyA9IGdhdWdlT3B0aW9uLm9sZEFuZ2xlO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLm9sZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgaXRlbS5fb2xkQW5nbGVfICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhID49IGdhdWdlT3B0aW9uLm9sZERhdGEpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAoaXRlbS5fZW5kQW5nbGVfIC0gaXRlbS5fb2xkQW5nbGVfKSAqIHByb2Nlc3MgKyBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fb2xkQW5nbGVfIC0gKGl0ZW0uX29sZEFuZ2xlXyAtIGl0ZW0uX2VuZEFuZ2xlXykgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcyk7XHJcbiAgbGV0IG1heExlbmd0aCA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKCtpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDIpKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIG1lYXN1cmVUZXh0KHRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpKTtcclxuICB9XHJcbiAgcmV0dXJuIG1heExlbmd0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMpIHtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHZhciBzZXJpZXNHYXAgPSAwO1xyXG4gICAgdmFyIGNhdGVnb3J5R2FwID0gMDtcclxuICAgIGlmIChvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEuY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEubWl4ICYmIG9wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5taXguY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgaXRlbS54ICs9IChpbmRleCArIDAuNSAtIGNvbHVtbkxlbiAvIDIpICogKGl0ZW0ud2lkdGggKyBzZXJpZXNHYXApO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmJhci5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmJhci5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICBzZXJpZXNHYXAgPSAgTWF0aC5taW4oc2VyaWVzR2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGNhdGVnb3J5R2FwID0gIE1hdGgubWluKGNhdGVnb3J5R2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwIC0gc2VyaWVzR2FwICogKGNvbHVtbkxlbiAtIDEpKSAvIGNvbHVtbkxlbik7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueSArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVNZXRlckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBib3JkZXIpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXA7XHJcbiAgICBpZiAob3B0cy5leHRyYS5jb2x1bW4gJiYgb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoIC09IGJvcmRlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXhuKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXApO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmJhciAmJiBvcHRzLmV4dHJhLmJhci53aWR0aCAmJiArb3B0cy5leHRyYS5iYXIud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5iYXIud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBkYXRhQ291bnQgPSBvcHRzLmVuYWJsZVNjcm9sbCA/IE1hdGgubWluKG9wdHMueEF4aXMuaXRlbUNvdW50LCBjYXRlZ29yaWVzLmxlbmd0aCkgOiBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT0gJ2JhcicpICYmIGRhdGFDb3VudCA+IDEgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgIGRhdGFDb3VudCAtPSAxO1xyXG4gIH1cclxuICB2YXIgd2lkdGhSYXRpbyA9IDA7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxKXtcclxuICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICB3aWR0aFJhdGlvID0gb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMTtcclxuICAgIGRhdGFDb3VudCArPSB3aWR0aFJhdGlvO1xyXG4gIH1cclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBkYXRhQ291bnQ7XHJcbiAgdmFyIHhBeGlzUG9pbnRzID0gW107XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIHdpZHRoUmF0aW8gLyAyICogZWFjaFNwYWNpbmcgKyBpbmRleCAqIGVhY2hTcGFjaW5nKTtcclxuICB9KTtcclxuICBpZiAob3B0cy54QXhpcy5ib3VuZGFyeUdhcCAhPT0gJ2p1c3RpZnknKSB7XHJcbiAgICBpZiAob3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgICAgeEF4aXNQb2ludHMucHVzaChzdGFydFggKyB3aWR0aFJhdGlvICogZWFjaFNwYWNpbmcgKyBjYXRlZ29yaWVzLmxlbmd0aCAqIGVhY2hTcGFjaW5nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHhBeGlzUG9pbnRzLnB1c2goZW5kWCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFg6IHN0YXJ0WCxcclxuICAgIGVuZFg6IGVuZFgsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDYW5kbGVEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBjUG9pbnRzID0gW107XHJcbiAgICAgIGl0ZW0uZm9yRWFjaChmdW5jdGlvbihpdGVtcywgaW5kZXhzKSB7XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtcy52YWx1ZSB8fCBpdGVtcztcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgIGNQb2ludHMucHVzaChwb2ludCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwb2ludHMucHVzaChjUG9pbnRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnICkge1xyXG4gICAgYm91bmRhcnlHYXAgPSBvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwO1xyXG4gIH1cclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgICAgbGV0IHhyYW5nZXMsIHhtaW5SYW5nZSwgeG1heFJhbmdlO1xyXG4gICAgICAgICAgeHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgICAgICAgIHhtaW5SYW5nZSA9IHhyYW5nZXMuc2hpZnQoKTtcclxuICAgICAgICAgIHhtYXhSYW5nZSA9IHhyYW5nZXMucG9wKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW1bMV07XHJcbiAgICAgICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgdmFsaWRXaWR0aCAqIChpdGVtWzBdIC0geG1pblJhbmdlKSAvICh4bWF4UmFuZ2UgLSB4bWluUmFuZ2UpO1xyXG4gICAgICAgICAgaWYob3B0cy50eXBlID09ICdidWJibGUnKXtcclxuICAgICAgICAgICAgcG9pbnQuciA9IGl0ZW1bMl07XHJcbiAgICAgICAgICAgIHBvaW50LnQgPSBpdGVtWzNdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIGhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbikge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIG1vdW50V2lkdGggPSBlYWNoU3BhY2luZyAqIG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0uZGF0YTtcclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC53aWR0aCA9IG1vdW50V2lkdGg7XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkV2lkdGggKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHBvaW50LnggPSBoZWlnaHQgKyBvcHRzLmFyZWFbM107XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHN0YWNrU2VyaWVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gOSAmJiBhcmd1bWVudHNbOV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s5XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdICsgTWF0aC5yb3VuZChlYWNoU3BhY2luZyAvIDIpO1xyXG5cclxuICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc2VyaWVzSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgdmFsdWUgKz0gc3RhY2tTZXJpZXNbaV0uZGF0YVtpbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2YWx1ZTAgPSB2YWx1ZSAtIGl0ZW07XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gdmFsaWRIZWlnaHQgKiAodmFsdWUwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50LnkwID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodGMpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzZXJpZXNJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgICB2YWx1ZSArPSBzdGFja1Nlcmllc1tpXS5kYXRhW2luZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHZhbHVlMCA9IHZhbHVlIC0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSB2YWxpZEhlaWdodCAqICh2YWx1ZTAgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gMDtcclxuICAgICAgfVxyXG4gICAgICB2YXIgaGVpZ2h0YyA9IGhlaWdodDA7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBoZWlnaHRjICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LmhlaWdodCA9IGhlaWdodCAtIGhlaWdodGM7XHJcbiAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LngwID0gb3B0cy5hcmVhWzNdICsgaGVpZ2h0YztcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFlBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrLCB5RGF0YSkge1xyXG4gIHZhciBpbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogLTE7XHJcbiAgdmFyIGRhdGE7XHJcbiAgaWYgKHN0YWNrID09ICdzdGFjaycpIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZShzZXJpZXMpO1xyXG4gIH1cclxuICB2YXIgc29ydGVkID0gW107XHJcbiAgLy8gcmVtb3ZlIG51bGwgZnJvbSBkYXRhXHJcbiAgZGF0YSA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSAhPT0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKGZ1bmN0aW9uKHN1Yml0ZW0pIHtcclxuICAgICAgICAgICAgc29ydGVkLnB1c2goc3ViaXRlbSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0ZWQucHVzaChpdGVtWzFdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydGVkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnRlZC5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH0pXHJcbiAgdmFyIG1pbkRhdGEgPSB5RGF0YS5taW4gfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IHlEYXRhLm1heCB8fCAwO1xyXG4gIGlmIChzb3J0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgbWluRGF0YSA9IE1hdGgubWluLmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgICBtYXhEYXRhID0gTWF0aC5tYXguYXBwbHkodGhpcywgc29ydGVkKTtcclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIGlmKG1heERhdGEgPT0gMCl7XHJcbiAgICAgIG1heERhdGEgPSAxMDtcclxuICAgIH1lbHNle1xyXG4gICAgICBtaW5EYXRhID0gMDtcclxuICAgIH1cclxuICB9XHJcbiAgdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSAoeURhdGEubWluID09PSB1bmRlZmluZWQgfHwgeURhdGEubWluID09PSBudWxsKSA/IGRhdGFSYW5nZS5taW5SYW5nZSA6IHlEYXRhLm1pbjtcclxuICB2YXIgbWF4UmFuZ2UgPSAoeURhdGEubWF4ID09PSB1bmRlZmluZWQgfHwgeURhdGEubWF4ID09PSBudWxsKSA/IGRhdGFSYW5nZS5tYXhSYW5nZSA6IHlEYXRhLm1heDtcclxuICB2YXIgZWFjaFJhbmdlID0gKG1heFJhbmdlIC0gbWluUmFuZ2UpIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgcmFuZ2UgPSBbXTtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8PSBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyOyBpKyspIHtcclxuICAgIHJhbmdlLnB1c2gobWluUmFuZ2UgKyBlYWNoUmFuZ2UgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIHJhbmdlLnJldmVyc2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWUF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIC8v5aaC5p6c5piv5aSaWei9tO+8jOmHjeaWsOiuoeeul1xyXG4gIHZhciBZTGVuZ3RoID0gb3B0cy55QXhpcy5kYXRhLmxlbmd0aDtcclxuICB2YXIgbmV3U2VyaWVzID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gIGlmIChZTGVuZ3RoID4gMCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbmV3U2VyaWVzW2ldID0gW107XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VyaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHNlcmllc1tqXS5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICBuZXdTZXJpZXNbaV0ucHVzaChzZXJpZXNbal0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IFlMZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIC8v5aaC5p6c5oC75byA5YWz5LiN5pi+56S677yM5by65Yi25q+P5LiqWei9tOS4uuS4jeaYvuekulxyXG4gICAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgeURhdGEuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHlEYXRhLnR5cGUgPT09ICdjYXRlZ29yaWVzJyl7XHJcbiAgICAgICAgaWYoIXlEYXRhLmZvcm1hdHRlcil7XHJcbiAgICAgICAgICB5RGF0YS5mb3JtYXR0ZXIgPSAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgeURhdGEuY2F0ZWdvcmllcyA9IHlEYXRhLmNhdGVnb3JpZXMgfHwgb3B0cy5jYXRlZ29yaWVzO1xyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IHlEYXRhLmNhdGVnb3JpZXM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHV0aWwudG9GaXhlZCh2YWwsIHlEYXRhLnRvZml4IHx8IDApICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmFuZ2VzQXJyW2ldID0gZ2V0WUF4aXNUZXh0TGlzdChuZXdTZXJpZXNbaV0sIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwgeURhdGEsIGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB5QXhpc0ZvbnRTaXplcyA9IHlEYXRhLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyW2ldID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiB5RGF0YS5wb3NpdGlvbiA/IHlEYXRhLnBvc2l0aW9uIDogJ2xlZnQnLFxyXG4gICAgICAgIHdpZHRoOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIHJhbmdlc0Zvcm1hdEFycltpXSA9IHJhbmdlc0FycltpXS5tYXAoZnVuY3Rpb24oaXRlbXMsaW5kZXgpIHtcclxuICAgICAgICBpdGVtcyA9IHlEYXRhLmZvcm1hdHRlcihpdGVtcyxpbmRleCxvcHRzKTtcclxuICAgICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoID0gTWF0aC5tYXgoeUF4aXNXaWR0aEFycltpXS53aWR0aCwgbWVhc3VyZVRleHQoaXRlbXMsIHlBeGlzRm9udFNpemVzLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBjYWxpYnJhdGlvbiA9IHlEYXRhLmNhbGlicmF0aW9uID8gNCAqIG9wdHMucGl4IDogMDtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCArPSBjYWxpYnJhdGlvbiArIDMgKiBvcHRzLnBpeDtcclxuICAgICAgaWYgKHlEYXRhLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PT0gJ2Jhcicpe1xyXG4gICAgICByYW5nZXNBcnJbMF0gPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmFuZ2VzQXJyWzBdID0gZ2V0WUF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwge30pO1xyXG4gICAgfVxyXG4gICAgeUF4aXNXaWR0aEFyclswXSA9IHtcclxuICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH07XHJcbiAgICBcclxuICAgIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0gPSB7XHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRydWVcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMueUF4aXMuZGF0YVswXSA9IHtcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICBtYXg6IG9wdHMueUF4aXMubWF4LFxyXG4gICAgICAgIG1pbjogb3B0cy55QXhpcy5taW4sXHJcbiAgICAgICAgZm9ybWF0dGVyOiAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsfVxyXG4gICAgICB9O1xyXG4gICAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0uY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0udHlwZSA9ICdjYXRlZ29yaWVzJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHlBeGlzRm9udFNpemUgPSBvcHRzLnlBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgcmFuZ2VzRm9ybWF0QXJyWzBdID0gcmFuZ2VzQXJyWzBdLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KSB7XHJcbiAgICAgIGl0ZW0gPSBvcHRzLnlBeGlzLmRhdGFbMF0uZm9ybWF0dGVyKGl0ZW0saW5kZXgsb3B0cyk7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyWzBdLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtLCB5QXhpc0ZvbnRTaXplLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICByYW5nZXNGb3JtYXQ6IHJhbmdlc0Zvcm1hdEFycixcclxuICAgIHJhbmdlczogcmFuZ2VzQXJyLFxyXG4gICAgeUF4aXNXaWR0aDogeUF4aXNXaWR0aEFyclxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFRvb2x0aXBZQXhpc0RhdGEocG9pbnQsIHNlcmllcywgb3B0cywgY29uZmlnLCBlYWNoU3BhY2luZykge1xyXG4gIGxldCByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgbGV0IHNwYWNpbmdWYWxpZCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBtaW5BeGlzID0gb3B0cy5hcmVhWzBdO1xyXG4gIGxldCBpdGVtcyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgbWF4VmFsID0gTWF0aC5tYXguYXBwbHkodGhpcywgcmFuZ2VzW2ldKTtcclxuICAgIGxldCBtaW5WYWwgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCByYW5nZXNbaV0pO1xyXG4gICAgbGV0IGl0ZW0gPSBtYXhWYWwgLSAobWF4VmFsIC0gbWluVmFsKSAqIChwb2ludCAtIG1pbkF4aXMpIC8gc3BhY2luZ1ZhbGlkO1xyXG4gICAgaXRlbSA9IG9wdHMueUF4aXMuZGF0YSAmJiBvcHRzLnlBeGlzLmRhdGFbaV0uZm9ybWF0dGVyID8gb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlcihpdGVtLCBpLCBvcHRzKSA6IGl0ZW0udG9GaXhlZCgwKTtcclxuICAgIGl0ZW1zLnB1c2goU3RyaW5nKGl0ZW0pKVxyXG4gIH1cclxuICByZXR1cm4gaXRlbXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbE1hcmtMaW5lRGF0YShwb2ludHMsIG9wdHMpIHtcclxuICBsZXQgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgcG9pbnRzW2ldLnlBeGlzSW5kZXggPSBwb2ludHNbaV0ueUF4aXNJbmRleCA/IHBvaW50c1tpXS55QXhpc0luZGV4IDogMDtcclxuICAgIGxldCByYW5nZSA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW3BvaW50c1tpXS55QXhpc0luZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZS5zaGlmdCgpO1xyXG4gICAgbGV0IGhlaWdodCA9IHNwYWNpbmdWYWxpZCAqIChwb2ludHNbaV0udmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICBwb2ludHNbaV0ueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gIH1cclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpIHtcclxuICBpZiAob3B0cy5yb3RhdGVMb2NrICE9PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLmhlaWdodCwgMCk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gIH0gZWxzZSBpZiAob3B0cy5fcm90YXRlXyAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICAgIG9wdHMuX3JvdGF0ZV8gPSB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BvaW50U2hhcGUocG9pbnRzLCBjb2xvciwgc2hhcGUsIGNvbnRleHQsIG9wdHMpIHtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlVHlwZSA9PSAnaG9sbG93Jykge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShcIiNmZmZmZmZcIik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnY2lyY2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggKyAyLjUgKiBvcHRzLnBpeCwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkgKyA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdub25lJykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXIpIHtcclxuICB2YXIgdGl0bGVmb250U2l6ZSA9IG9wdHMudGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHN1YnRpdGxlZm9udFNpemUgPSBvcHRzLnN1YnRpdGxlLmZvbnRTaXplIHx8IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplO1xyXG4gIHZhciB0aXRsZSA9IG9wdHMudGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgc3VidGl0bGUgPSBvcHRzLnN1YnRpdGxlLm5hbWUgfHwgJyc7XHJcbiAgdmFyIHRpdGxlRm9udENvbG9yID0gb3B0cy50aXRsZS5jb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICB2YXIgc3VidGl0bGVGb250Q29sb3IgPSBvcHRzLnN1YnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciB0aXRsZUhlaWdodCA9IHRpdGxlID8gdGl0bGVmb250U2l6ZSA6IDA7XHJcbiAgdmFyIHN1YnRpdGxlSGVpZ2h0ID0gc3VidGl0bGUgPyBzdWJ0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgbWFyZ2luID0gNTtcclxuICBpZiAoc3VidGl0bGUpIHtcclxuICAgIHZhciB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChzdWJ0aXRsZSwgc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBzdGFydFggPSBjZW50ZXIueCAtIHRleHRXaWR0aCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRYfHwgMCkgKiBvcHRzLnBpeCA7XHJcbiAgICB2YXIgc3RhcnRZID0gY2VudGVyLnkgKyBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXggLyAyICsgKG9wdHMuc3VidGl0bGUub2Zmc2V0WSB8fCAwKSAqIG9wdHMucGl4O1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHN0YXJ0WSArPSAodGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHN1YnRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoc3VidGl0bGUsIHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICBpZiAodGl0bGUpIHtcclxuICAgIHZhciBfdGV4dFdpZHRoID0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCwgY29udGV4dCk7XHJcbiAgICB2YXIgX3N0YXJ0WCA9IGNlbnRlci54IC0gX3RleHRXaWR0aCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRYIHx8IDApO1xyXG4gICAgdmFyIF9zdGFydFkgPSBjZW50ZXIueSArIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAoc3VidGl0bGUpIHtcclxuICAgICAgX3N0YXJ0WSAtPSAoc3VidGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIF9zdGFydFgsIF9zdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSA/IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGRhdGFbaW5kZXhdXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpbmRleF0gPT09ICdvYmplY3QnICYmIGRhdGFbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaW5kZXhdLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKT4tMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XVsxXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzLmZvcm1hdHRlciA/IHNlcmllcy5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01vdW50UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllc1tpbmRleF0udGV4dFNpemUgPyBzZXJpZXNbaW5kZXhdLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXNbaW5kZXhdLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0udmFsdWVcclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllc1tpbmRleF0uZm9ybWF0dGVyID8gc2VyaWVzW2luZGV4XS5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhclBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBzZXJpZXMudGV4dFNpemUgPyBzZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllcy50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW2luZGV4XVxyXG4gICAgICBpZiAodHlwZW9mIGRhdGFbaW5kZXhdID09PSAnb2JqZWN0JyAmJiBkYXRhW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHZhbHVlID0gZGF0YVtpbmRleF0udmFsdWUgO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54ICsgNCAqIG9wdHMucGl4ICwgaXRlbS55ICsgZm9udFNpemUgLyAyIC0gMyApO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgcmFkaXVzIC09IGdhdWdlT3B0aW9uLndpZHRoIC8gMiArIGdhdWdlT3B0aW9uLmxhYmVsT2Zmc2V0ICogb3B0cy5waXg7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCB0b3RhbE51bWJlciA9IGdhdWdlT3B0aW9uLmVuZE51bWJlciAtIGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGxldCBzcGxpdE51bWJlciA9IHRvdGFsTnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBub3dBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgbGV0IG5vd051bWJlciA9IGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhub3dBbmdsZSAqIE1hdGguUEkpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihub3dBbmdsZSAqIE1hdGguUEkpXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhYmVsVGV4dCA9IGdhdWdlT3B0aW9uLmZvcm1hdHRlciA/IGdhdWdlT3B0aW9uLmZvcm1hdHRlcihub3dOdW1iZXIsaSxvcHRzKSA6IG5vd051bWJlcjtcclxuICAgIHBvcy54ICs9IGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgcG9zLnkgKz0gY2VudGVyUG9zaXRpb24ueTtcclxuICAgIHZhciBzdGFydFggPSBwb3MueDtcclxuICAgIHZhciBzdGFydFkgPSBwb3MueTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShnYXVnZU9wdGlvbi5sYWJlbENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQobGFiZWxUZXh0LCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBub3dBbmdsZSArPSBzcGxpdEFuZ2xlO1xyXG4gICAgaWYgKG5vd0FuZ2xlID49IDIpIHtcclxuICAgICAgbm93QW5nbGUgPSBub3dBbmdsZSAlIDI7XHJcbiAgICB9XHJcbiAgICBub3dOdW1iZXIgKz0gc3BsaXROdW1iZXI7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJMYWJlbChhbmdsZUxpc3QsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oYW5nbGUsIGluZGV4KSB7XHJcbiAgICBpZihyYWRhck9wdGlvbi5sYWJlbFBvaW50U2hvdyA9PT0gdHJ1ZSAmJiBvcHRzLmNhdGVnb3JpZXNbaW5kZXhdICE9PSAnJyl7XHJcbiAgICAgIHZhciBwb3NQb2ludCA9IHtcclxuICAgICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgICAgeTogcmFkaXVzICogTWF0aC5zaW4oYW5nbGUpXHJcbiAgICAgIH07XHJcbiAgICAgIHZhciBwb3NQb2ludEF4aXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3NQb2ludC54LCBwb3NQb2ludC55LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsUG9pbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuYXJjKHBvc1BvaW50QXhpcy54LCBwb3NQb2ludEF4aXMueSwgcmFkYXJPcHRpb24ubGFiZWxQb2ludFJhZGl1cyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICAgIHZhciBwb3MgPSB7XHJcbiAgICAgIHg6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgIHk6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLnNpbihhbmdsZSlcclxuICAgIH07XHJcbiAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIHZhciBzdGFydFggPSBwb3NSZWxhdGl2ZUNhbnZhcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvc1JlbGF0aXZlQ2FudmFzLnk7XHJcbiAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIH0gZWxzZSBpZiAocG9zLnggPCAwKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXIpIHtcclxuICB2YXIgbGluZVJhZGl1cyA9IGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nO1xyXG4gIHZhciB0ZXh0T2JqZWN0Q29sbGVjdGlvbiA9IFtdO1xyXG4gIHZhciBsYXN0VGV4dE9iamVjdCA9IG51bGw7XHJcbiAgdmFyIHNlcmllc0NvbnZlcnQgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgpIHtcclxuICAgIHZhciB0ZXh0ID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLGluZGV4LHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDQpICogMTAwKSArICclJztcclxuICAgIHRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogdGV4dDtcclxuICAgIHZhciBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Byb3BvcnRpb25fIC8gMik7XHJcbiAgICBpZiAoaXRlbS5fcm9zZV9wcm9wb3J0aW9uXykge1xyXG4gICAgICBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIH1cclxuICAgIHZhciBjb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICB2YXIgcmFkaXVzID0gaXRlbS5fcmFkaXVzXztcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyYzogYXJjLFxyXG4gICAgICB0ZXh0OiB0ZXh0LFxyXG4gICAgICBjb2xvcjogY29sb3IsXHJcbiAgICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgICB0ZXh0Q29sb3I6IGl0ZW0udGV4dENvbG9yLFxyXG4gICAgICB0ZXh0U2l6ZTogaXRlbS50ZXh0U2l6ZSxcclxuICAgICAgbGFiZWxTaG93OiBpdGVtLmxhYmVsU2hvd1xyXG4gICAgfTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc0NvbnZlcnQubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzQ29udmVydFtpXTtcclxuICAgIC8vIGxpbmUgZW5kXHJcbiAgICBsZXQgb3JnaW5YMSA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgbGV0IG9yZ2luWTEgPSBNYXRoLnNpbihpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIC8vIGxpbmUgc3RhcnRcclxuICAgIGxldCBvcmdpblgyID0gTWF0aC5jb3MoaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICBsZXQgb3JnaW5ZMiA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgLy8gdGV4dCBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDMgPSBvcmdpblgxID49IDAgPyBvcmdpblgxICsgY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgOiBvcmdpblgxIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmc7XHJcbiAgICBsZXQgb3JnaW5ZMyA9IG9yZ2luWTE7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCBzdGFydFkgPSBvcmdpblkzO1xyXG4gICAgaWYgKGxhc3RUZXh0T2JqZWN0ICYmIHV0aWwuaXNTYW1lWENvb3JkaW5hdGVBcmVhKGxhc3RUZXh0T2JqZWN0LnN0YXJ0LCB7XHJcbiAgICAgICAgeDogb3JnaW5YM1xyXG4gICAgICB9KSkge1xyXG4gICAgICBpZiAob3JnaW5YMyA+IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIGlmIChvcmdpblgxIDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmdpblkzID4gMCkge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9yZ2luWDMgPCAwKSB7XHJcbiAgICAgIG9yZ2luWDMgLT0gdGV4dFdpZHRoO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHRPYmplY3QgPSB7XHJcbiAgICAgIGxpbmVTdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDIsXHJcbiAgICAgICAgeTogb3JnaW5ZMlxyXG4gICAgICB9LFxyXG4gICAgICBsaW5lRW5kOiB7XHJcbiAgICAgICAgeDogb3JnaW5YMSxcclxuICAgICAgICB5OiBvcmdpblkxXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMyxcclxuICAgICAgICB5OiBzdGFydFlcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IHRleHRXaWR0aCxcclxuICAgICAgaGVpZ2h0OiBjb25maWcuZm9udFNpemUsXHJcbiAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplXHJcbiAgICB9O1xyXG4gICAgbGFzdFRleHRPYmplY3QgPSBhdm9pZENvbGxpc2lvbih0ZXh0T2JqZWN0LCBsYXN0VGV4dE9iamVjdCk7XHJcbiAgICB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5wdXNoKGxhc3RUZXh0T2JqZWN0KTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYoc2VyaWVzQ29udmVydFtpXS5sYWJlbFNob3cgPT09IGZhbHNlKXtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBsZXQgaXRlbSA9IHRleHRPYmplY3RDb2xsZWN0aW9uW2ldO1xyXG4gICAgbGV0IGxpbmVTdGFydFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lU3RhcnQueCwgaXRlbS5saW5lU3RhcnQueSwgY2VudGVyKTtcclxuICAgIGxldCBsaW5lRW5kUG9pc3Rpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihpdGVtLmxpbmVFbmQueCwgaXRlbS5saW5lRW5kLnksIGNlbnRlcik7XHJcbiAgICBsZXQgdGV4dFBvc2l0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5zdGFydC54LCBpdGVtLnN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGxldCBjdXJ2ZVN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGggOiB0ZXh0UG9zaXRpb24ueDtcclxuICAgIGxldCB0ZXh0U3RhcnRYID0gaXRlbS5zdGFydC54IDwgMCA/IHRleHRQb3NpdGlvbi54IC0gNSA6IHRleHRQb3NpdGlvbi54ICsgNTtcclxuICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhsaW5lRW5kUG9pc3Rpb24ueCwgbGluZUVuZFBvaXN0aW9uLnksIGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHRleHRQb3NpdGlvbi54ICsgaXRlbS53aWR0aCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY3VydmVTdGFydFgsIHRleHRQb3NpdGlvbi55LCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChpdGVtLnRleHQsIHRleHRTdGFydFgsIHRleHRQb3NpdGlvbi55ICsgMyk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0TGluZShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IG9wdHMuZXh0cmEudG9vbHRpcCB8fCB7fTtcclxuICB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID0gdG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSB1bmRlZmluZWQgPyAnc29saWQnIDogdG9vbFRpcE9wdGlvbi5ncmlkVHlwZTtcclxuICB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPSB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPT0gdW5kZWZpbmVkID8gNCA6IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aDtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFt0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGgsIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aF0pO1xyXG4gIH1cclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24uZ3JpZENvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQubW92ZVRvKG9mZnNldFgsIHN0YXJ0WSk7XHJcbiAgY29udGV4dC5saW5lVG8ob2Zmc2V0WCwgZW5kWSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi54QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gb3B0cy5jYXRlZ29yaWVzW29wdHMudG9vbHRpcC5pbmRleF07XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgbGV0IHRleHRYID0gb2Zmc2V0WCAtIDAuNSAqIHRleHRXaWR0aDtcclxuICAgIGxldCB0ZXh0WSA9IGVuZFkgKyAyICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQucmVjdCh0ZXh0WCAtIGNvbmZpZy50b29sVGlwUGFkZGluZywgdGV4dFksIHRleHRXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCB0ZXh0WSArIGNvbmZpZy50b29sVGlwUGFkZGluZyArIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgbWFya0xpbmVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0LFxyXG4gICAgZGF0YTogW11cclxuICB9LCBvcHRzLmV4dHJhLm1hcmtMaW5lKTtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgcG9pbnRzID0gY2FsTWFya0xpbmVEYXRhKG1hcmtMaW5lT3B0aW9uLmRhdGEsIG9wdHMpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IGFzc2lnbih7fSwge1xyXG4gICAgICBsaW5lQ29sb3I6ICcjREU0QTQyJyxcclxuICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgbGFiZWxGb250Q29sb3I6ICcjNjY2NjY2JyxcclxuICAgICAgbGFiZWxCZ0NvbG9yOiAnI0RGRThGRicsXHJcbiAgICAgIGxhYmVsQmdPcGFjaXR5OiAwLjgsXHJcbiAgICAgIGxhYmVsQWxpZ246ICdsZWZ0JyxcclxuICAgICAgbGFiZWxPZmZzZXRYOiAwLFxyXG4gICAgICBsYWJlbE9mZnNldFk6IDAsXHJcbiAgICB9LCBwb2ludHNbaV0pO1xyXG4gICAgaWYgKG1hcmtMaW5lT3B0aW9uLnR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW21hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGgsIG1hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5saW5lQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgaWYgKGl0ZW0uc2hvd0xhYmVsKSB7XHJcbiAgICAgIGxldCBsYWJlbFRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogaXRlbS52YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdXaWR0aCA9IHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDI7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCA9IGl0ZW0ubGFiZWxBbGlnbiA9PSAnbGVmdCcgPyBvcHRzLmFyZWFbM10gLSBiZ1dpZHRoIDogb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgICAgYmdTdGFydFggKz0gaXRlbS5sYWJlbE9mZnNldFg7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WSA9IGl0ZW0ueSAtIDAuNSAqIGNvbmZpZy5mb250U2l6ZSAtIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgYmdTdGFydFkgKz0gaXRlbS5sYWJlbE9mZnNldFk7XHJcbiAgICAgIGxldCB0ZXh0WCA9IGJnU3RhcnRYICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICBsZXQgdGV4dFkgPSBpdGVtLnk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGl0ZW0ubGFiZWxCZ0NvbG9yLCBpdGVtLmxhYmVsQmdPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5sYWJlbEJnQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIGJnU3RhcnRZLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5sYWJlbEZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCBiZ1N0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSArIGNvbmZpZy50b29sVGlwUGFkZGluZy8yKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZFR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0XHJcbiAgfSwgb3B0cy5leHRyYS50b29sdGlwKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLnRvb2x0aXAub2Zmc2V0LnkpO1xyXG4gIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMudG9vbHRpcC5vZmZzZXQueSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi55QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gY2FsVG9vbHRpcFlBeGlzRGF0YShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nKTtcclxuICAgIGxldCB3aWR0aEFyciA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgICBsZXQgdFN0YXJ0UmlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbFRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0W2ldLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdTdGFydFgsIGJnRW5kWCwgYmdXaWR0aDtcclxuICAgICAgaWYgKHdpZHRoQXJyW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGJnU3RhcnRYID0gdFN0YXJ0TGVmdCAtICh0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKSAtIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCwgYmdTdGFydFggKyB0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBiZ1N0YXJ0WCA9IHRTdGFydFJpZ2h0ICsgMiAqIG9wdHMucGl4O1xyXG4gICAgICAgIGJnRW5kWCA9IE1hdGgubWF4KGJnU3RhcnRYICsgd2lkdGhBcnJbaV0ud2lkdGgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH1cclxuICAgICAgYmdXaWR0aCA9IGJnRW5kWCAtIGJnU3RhcnRYO1xyXG4gICAgICBsZXQgdGV4dFggPSBiZ1N0YXJ0WCArIChiZ1dpZHRoIC0gdGV4dFdpZHRoKSAvIDI7XHJcbiAgICAgIGxldCB0ZXh0WSA9IG9wdHMudG9vbHRpcC5vZmZzZXQueTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQucmVjdChiZ1N0YXJ0WCwgdGV4dFkgLSAwLjUgKiBjb25maWcuZm9udFNpemUgLSBjb25maWcudG9vbFRpcFBhZGRpbmcsIGJnV2lkdGgsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHRbaV0sIHRleHRYLCB0ZXh0WSArIDAuNSAqIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICB0U3RhcnRMZWZ0IC09ICh3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0U3RhcnRSaWdodCArPSB3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOCxcclxuICAgIGFjdGl2ZVdpZHRoOiBlYWNoU3BhY2luZ1xyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoID0gdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aCA+IGVhY2hTcGFjaW5nID8gZWFjaFNwYWNpbmcgOiB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3Qob2Zmc2V0WCAtIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGggLyAyLCBzdGFydFksIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGgsIGVuZFkgLSBzdGFydFkpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoXCIjRkZGRkZGXCIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3QoIHN0YXJ0WCAsb2Zmc2V0WCAtIGVhY2hTcGFjaW5nIC8gMiAsICBlbmRYIC0gc3RhcnRYLGVhY2hTcGFjaW5nKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwKHRleHRMaXN0LCBvZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3dCb3g6IHRydWUsXHJcbiAgICBzaG93QXJyb3c6IHRydWUsXHJcbiAgICBzaG93Q2F0ZWdvcnk6IGZhbHNlLFxyXG4gICAgYmdDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYmdPcGFjaXR5OiAwLjcsXHJcbiAgICBib3JkZXJDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBib3JkZXJSYWRpdXM6IDAsXHJcbiAgICBib3JkZXJPcGFjaXR5OiAwLjcsXHJcbiAgICBmb250Q29sb3I6ICcjRkZGRkZGJyxcclxuICAgIHNwbGl0TGluZTogdHJ1ZSxcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIGlmKHRvb2xUaXBPcHRpb24uc2hvd0NhdGVnb3J5PT10cnVlICYmIG9wdHMuY2F0ZWdvcmllcyl7XHJcbiAgICB0ZXh0TGlzdC51bnNoaWZ0KHt0ZXh0Om9wdHMuY2F0ZWdvcmllc1tvcHRzLnRvb2x0aXAuaW5kZXhdLGNvbG9yOm51bGx9KVxyXG4gIH1cclxuICB2YXIgbGVnZW5kV2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgdmFyIGxlZ2VuZE1hcmdpblJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIHZhciBhcnJvd1dpZHRoID0gdG9vbFRpcE9wdGlvbi5zaG93QXJyb3cgPyA4ICogb3B0cy5waXggOiAwO1xyXG4gIHZhciBpc092ZXJSaWdodEJvcmRlciA9IGZhbHNlO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4Jykge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc3BsaXRMaW5lID09IHRydWUpIHtcclxuICAgICAgZHJhd1Rvb2xUaXBTcGxpdExpbmUob3B0cy50b29sdGlwLm9mZnNldC54LCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQgPSBhc3NpZ24oe1xyXG4gICAgeDogMCxcclxuICAgIHk6IDBcclxuICB9LCBvZmZzZXQpO1xyXG4gIG9mZnNldC55IC09IDggKiBvcHRzLnBpeDtcclxuICB2YXIgdGV4dFdpZHRoID0gdGV4dExpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLnRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgdmFyIHRvb2xUaXBXaWR0aCA9IGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQgKyA0ICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgTWF0aC5tYXguYXBwbHkobnVsbCwgdGV4dFdpZHRoKTtcclxuICB2YXIgdG9vbFRpcEhlaWdodCA9IDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcgKyB0ZXh0TGlzdC5sZW5ndGggKiBjb25maWcudG9vbFRpcExpbmVIZWlnaHQ7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0JveCA9PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG4gIC8vIGlmIGJleW9uZCB0aGUgcmlnaHQgYm9yZGVyXHJcbiAgaWYgKG9mZnNldC54IC0gTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArIHRvb2xUaXBXaWR0aCA+IG9wdHMud2lkdGgpIHtcclxuICAgIGlzT3ZlclJpZ2h0Qm9yZGVyID0gdHJ1ZTtcclxuICB9XHJcbiAgaWYgKHRvb2xUaXBIZWlnaHQgKyBvZmZzZXQueSA+IG9wdHMuaGVpZ2h0KSB7XHJcbiAgICBvZmZzZXQueSA9IG9wdHMuaGVpZ2h0IC0gdG9vbFRpcEhlaWdodDtcclxuICB9XHJcbiAgLy8gZHJhdyBiYWNrZ3JvdW5kIHJlY3RcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24uYmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmJvcmRlckNvbG9yLCB0b29sVGlwT3B0aW9uLmJvcmRlck9wYWNpdHkpKTtcclxuICB2YXIgcmFkaXVzID0gdG9vbFRpcE9wdGlvbi5ib3JkZXJSYWRpdXM7XHJcbiAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAvLyDlop7liqDlt6bkvqfku43nhLbotoXlh7rnmoTliKTmlq1cclxuICAgIGlmKHRvb2xUaXBXaWR0aCArIGFycm93V2lkdGggPiBvcHRzLndpZHRoKXtcclxuICAgICAgb2Zmc2V0LnggPSBvcHRzLndpZHRoICsgTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArICh0b29sVGlwV2lkdGggLSBvcHRzLndpZHRoKVxyXG4gICAgfVxyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLCBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cyxcclxuICAgICAgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4IC0gNSAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsXHJcbiAgICAgIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsIDAsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggPiAwKSB7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICAvLyBkcmF3IGxlZ2VuZFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtLmNvbG9yICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICB2YXIgc3RhcnRYID0gb2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgKGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAtIGNvbmZpZy5mb250U2l6ZSkgLyAyICsgY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogaW5kZXggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKyAxO1xyXG4gICAgICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFksIGxlZ2VuZFdpZHRoLCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICAvLyDlnIblvaLlm77kvovor7fms6jph4rkuIrooYzvvIzlubbmiorkuIvooYzlj5bmtojms6jph4pcclxuICAgICAgLy8gY29udGV4dC5hcmMoc3RhcnRYICsgbGVnZW5kV2lkdGggLyAyICwgc3RhcnRZICsgb3B0cy5mb250U2l6ZSAvIDIsIDQgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodDtcclxuICAgIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgK2xlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgc3RhcnRZID0gb2Zmc2V0LnkgKyAoY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0IC0gY29uZmlnLmZvbnRTaXplKSAvIDIgKyBjb25maWcudG9vbFRpcExpbmVIZWlnaHQgKiBpbmRleCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKVxyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIC8vY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgIC8vIOe7mOWItuWghuWPoOaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyICsgMTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0MCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55MCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgIGhlaWdodCAtPSBoZWlnaHQwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIGl0ZW0ueSwgaXRlbS53aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgICAgLy/nlLvog4zmma/popzoibJcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgIGlmIChzZXJpZXNJbmRleCA9PSAwICYmIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHNlcmllc0luZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPT0gMCAmJiBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IG1vdW50T3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbW91bnQnLFxyXG4gICAgd2lkdGhSYXRpbzogMSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubW91bnQpO1xyXG4gIG1vdW50T3B0aW9uLndpZHRoUmF0aW8gPSBtb3VudE9wdGlvbi53aWR0aFJhdGlvIDw9IDAgPyAwIDogbW91bnRPcHRpb24ud2lkdGhSYXRpbztcclxuICBtb3VudE9wdGlvbi53aWR0aFJhdGlvID0gbW91bnRPcHRpb24ud2lkdGhSYXRpbyA+PSAyID8gMiA6IG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gIH1cclxuICBtb3VudE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihtb3VudE9wdGlvbi5saW5lYXJUeXBlLCBtb3VudE9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbMF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBzd2l0Y2ggKG1vdW50T3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYmFyJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgobW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IG1vdW50T3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueSAtIG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXggLyAyOyBcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBtb3VudE9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyaWFuZ2xlJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgaWYobW91bnRPcHRpb24uYm9yZGVyV2lkdGggPiAwKXtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhpdGVtLnggLSBpdGVtLndpZHRoLzQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdLCBpdGVtLnggLSBpdGVtLndpZHRoLzQsIGl0ZW0ueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oaXRlbS54ICsgaXRlbS53aWR0aC80LCBpdGVtLnksIGl0ZW0ueCArIGl0ZW0ud2lkdGgvNCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0sIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzaGFycCc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54IC0gMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54ICsgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1swXSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0TW91bnREYXRhUG9pbnRzKHNlcmllcywgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIG1vdW50T3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogcG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBbXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pL29wdHMuY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIHlBeGlzUG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgLyAyICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHlBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgLy92YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgICAgICAgIHZhciBzdGFydFkgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IGl0ZW0uaGVpZ2h0O1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBpdGVtLmhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgcjMsIHIzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGl0ZW0ueCAtIHIxLCB0b3AgKyB3aWR0aCAtIHIxLCByMSwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMiwgdG9wICsgd2lkdGggLSByMiwgcjIsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZICsgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBzdGFydFkgKyBpdGVtLndpZHRoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeUF4aXNQb2ludHM6IHlBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogMTtcclxuICB2YXIgY2FuZGxlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBjb2xvcjoge30sXHJcbiAgICBhdmVyYWdlOiB7fVxyXG4gIH0sIG9wdHMuZXh0cmEuY2FuZGxlKTtcclxuICBjYW5kbGVPcHRpb24uY29sb3IgPSBhc3NpZ24oe30sIHtcclxuICAgIHVwTGluZTogJyNmMDQ4NjQnLFxyXG4gICAgdXBGaWxsOiAnI2YwNDg2NCcsXHJcbiAgICBkb3duTGluZTogJyMyZmMyNWInLFxyXG4gICAgZG93bkZpbGw6ICcjMmZjMjViJ1xyXG4gIH0sIGNhbmRsZU9wdGlvbi5jb2xvcik7XHJcbiAgY2FuZGxlT3B0aW9uLmF2ZXJhZ2UgPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3c6IGZhbHNlLFxyXG4gICAgbmFtZTogW10sXHJcbiAgICBkYXk6IFtdLFxyXG4gICAgY29sb3I6IGNvbmZpZy5jb2xvclxyXG4gIH0sIGNhbmRsZU9wdGlvbi5hdmVyYWdlKTtcclxuICBvcHRzLmV4dHJhLmNhbmRsZSA9IGNhbmRsZU9wdGlvbjtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIC8v55S75Z2H57q/XHJcbiAgaWYgKGNhbmRsZU9wdGlvbi5hdmVyYWdlLnNob3cgfHwgc2VyaWVzTUEpIHsgLy9NZXJnZSBwdWxsIHJlcXVlc3QgITEyIGZyb20g6YKx6LS157+UXHJcbiAgICBzZXJpZXNNQS5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LFxyXG4gICAgICAgICAgICAgICAgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nlLtL57q/XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdFswXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBzcGxpdFBvaW50TGlzdFswXVtpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIC8v5aaC5p6c5LiK5raoXHJcbiAgICAgICAgaWYgKGRhdGFbaV1bMV0gLSBkYXRhW2ldWzBdID4gMCkge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBMaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci51cEZpbGwpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMl0ueCwgaXRlbVsyXS55KTsgLy/lupXngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IuZG93bkxpbmUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25GaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgYWRkTGluZTogZmFsc2UsXHJcbiAgICB3aWR0aDogMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEuYXJlYSk7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICBsZXQgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIGxldCBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAvLyDnu5jliLbljLrln5/mlbBcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIG9wdHMuYXJlYVswXSwgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdyYWRpZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmVhT3B0aW9uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAvL+eUu+i/nue6v1xyXG4gICAgICBpZiAoYXJlYU9wdGlvbi5hZGRMaW5lKSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8v55S754K5XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgc2NhdHRlck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2NpcmNsZSdcclxuICB9LCBvcHRzLmV4dHJhLnNjYXR0ZXIpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIHZhciBzaGFwZSA9IGVhY2hTZXJpZXMucG9pbnRTaGFwZTtcclxuICAgIGlmIChzaGFwZSA9PT0gJ2RpYW1vbmQnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlY3QoaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUsIDcsIDcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAndHJpYW5nbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGJ1YmJsZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIGJvcmRlcjoyXHJcbiAgfSwgb3B0cy5leHRyYS5idWJibGUpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGJ1YmJsZU9wdGlvbi5ib3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBidWJibGVPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgaXRlbS5yLCBpdGVtLnkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgaXRlbS5yICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBcclxuICAgIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgdmFyIGZvbnRTaXplID0gZWFjaFNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBcIiNGRkZGRkZcIik7XHJcbiAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0udCksIGl0ZW0ueCwgaXRlbS55ICsgZm9udFNpemUvMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLmxpbmUpO1xyXG4gIGxpbmVPcHRpb24ud2lkdGggKj0gb3B0cy5waXg7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmNvbHVtbik7XHJcbiAgbGV0IGFyZWFPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmFyZWEpO1xyXG4gIGxldCBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogMlxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmxpbmUpO1xyXG4gIGxldCBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIHZhciBjb2x1bW5JbmRleCA9IDA7XHJcbiAgdmFyIGNvbHVtbkxlbmd0aCA9IDA7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2NvbHVtbicpIHtcclxuICAgICAgY29sdW1uTGVuZ3RoICs9IDE7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgLy8g57uY5Yi25p+x54q25pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdjb2x1bW4nKSB7XHJcbiAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueTtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueTtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgfVxyXG4gICAgLy/nu5jliLbljLrln5/lm77mlbDmja5cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2FyZWEnKSB7XHJcbiAgICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBwb2ludHMgPSBzcGxpdFBvaW50TGlzdFtpXTtcclxuICAgICAgICAvLyDnu5jliLbljLrln5/mlbDmja5cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi5ncmFkaWVudCkge1xyXG4gICAgICAgICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCBvcHRzLmFyZWFbMF0sIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdmFyIGZpcnN0UG9pbnQgPSBwb2ludHNbMF07XHJcbiAgICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGZpcnN0UG9pbnQueCwgZmlyc3RQb2ludC55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChlYWNoU2VyaWVzLnN0eWxlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1swXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyDnu5jliLbmipjnur/mlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2xpbmUnKSB7XHJcbiAgICAgIHZhciBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobGluZU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGVhY2hTZXJpZXMuc3R5bGUgPT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksXHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy8g57uY5Yi254K55pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdwb2ludCcpIHtcclxuICAgICAgZWFjaFNlcmllcy5hZGRQb2ludCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZWFjaFNlcmllcy5hZGRQb2ludCA9PSB0cnVlICYmIGVhY2hTZXJpZXMudHlwZSAhPT0gJ2NvbHVtbicpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgdmFyIGNvbHVtbkluZGV4ID0gMDtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBpZiAoZWFjaFNlcmllcy50eXBlICE9PSAnY29sdW1uJykge1xyXG4gICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nLFxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBvcHRzLmV4dHJhLnRvb2x0aXAgfHwge307XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uaG9yaXplbnRhbExpbmUgJiYgb3B0cy50b29sdGlwICYmIHByb2Nlc3MgPT09IDEgJiYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ2NvbHVtbicgfHwgb3B0cy50eXBlID09ICdtb3VudCcgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4JykpIHtcclxuICAgIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpXHJcbiAgfVxyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gIH1cclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdUb29sVGlwKG9wdHMudG9vbHRpcC50ZXh0TGlzdCwgb3B0cy50b29sdGlwLm9mZnNldCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuXHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0geEF4aXNEYXRhLnN0YXJ0WCxcclxuICAgIGVuZFggPSB4QXhpc0RhdGEuZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBib3VuZGFyeUdhcCA9ICdjZW50ZXInO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2JhcicgfHwgb3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScpIHtcclxuICAgIGJvdW5kYXJ5R2FwID0gb3B0cy54QXhpcy5ib3VuZGFyeUdhcDtcclxuICB9XHJcbiAgdmFyIHN0YXJ0WSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5hcmVhWzBdO1xyXG5cclxuICAvL+e7mOWItua7muWKqOadoVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIHZhciBzY3JvbGxZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gKyBjb25maWcueEF4aXNIZWlnaHQ7XHJcbiAgICB2YXIgc2Nyb2xsU2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgdmFyIHNjcm9sbFRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICAgIHNjcm9sbFRvdGFsV2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmVhY2hTcGFjaW5nO1xyXG4gICAgfVxyXG4gICAgdmFyIHNjcm9sbFdpZHRoID0gc2Nyb2xsU2NyZWVuV2lkdGggKiBzY3JvbGxTY3JlZW5XaWR0aCAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB2YXIgc2Nyb2xsTGVmdCA9IDA7XHJcbiAgICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfKSB7XHJcbiAgICAgIHNjcm9sbExlZnQgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICogKHNjcm9sbFNjcmVlbldpZHRoKSAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxCYWNrZ3JvdW5kQ29sb3IgfHwgXCIjRUZFQkVGXCIpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxDb2xvciB8fCBcIiNBNkE2QTZcIik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyBzY3JvbGxMZWZ0LCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIHNjcm9sbExlZnQgKyBzY3JvbGxXaWR0aCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L205Yi75bqm57q/XHJcbiAgaWYgKG9wdHMueEF4aXMuY2FsaWJyYXRpb24gPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtIC0gZWFjaFNwYWNpbmcgLyAyLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0gLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSArIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L20572R5qC8XHJcbiAgaWYgKG9wdHMueEF4aXMuZGlzYWJsZUdyaWQgIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgaWYgKG9wdHMueEF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW29wdHMueEF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4LCBvcHRzLnhBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeF0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy54QXhpcy5ncmlkRXZhbCA9IG9wdHMueEF4aXMuZ3JpZEV2YWwgfHwgMTtcclxuICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGluZGV4ICUgb3B0cy54QXhpcy5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0sIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOaWh+ahiFxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkICE9PSB0cnVlKSB7XHJcbiAgICAvLyDlr7lY6L205YiX6KGo5YGa5oq956iA5aSE55CGXHJcbiAgICAvL+m7mOiupOWFqOmDqOaYvuekuljovbTmoIfnrb5cclxuICAgIGxldCBtYXhYQXhpc0xpc3RMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIC8v5aaC5p6c6K6+572u5LqGWOi9tOWNleWxj+aVsOmHj1xyXG4gICAgaWYgKG9wdHMueEF4aXMubGFiZWxDb3VudCkge1xyXG4gICAgICAvL+WmguaenOiuvue9rljovbTlr4bluqZcclxuICAgICAgaWYgKG9wdHMueEF4aXMuaXRlbUNvdW50KSB7XHJcbiAgICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoID0gTWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gb3B0cy54QXhpcy5pdGVtQ291bnQgKiBvcHRzLnhBeGlzLmxhYmVsQ291bnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heFhBeGlzTGlzdExlbmd0aCA9IG9wdHMueEF4aXMubGFiZWxDb3VudDtcclxuICAgICAgfVxyXG4gICAgICBtYXhYQXhpc0xpc3RMZW5ndGggLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmF0aW8gPSBNYXRoLmNlaWwoY2F0ZWdvcmllcy5sZW5ndGggLyBtYXhYQXhpc0xpc3RMZW5ndGgpO1xyXG5cclxuICAgIGxldCBuZXdDYXRlZ29yaWVzID0gW107XHJcbiAgICBsZXQgY2dMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2dMZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSAlIHJhdGlvICE9PSAwKSB7XHJcbiAgICAgICAgbmV3Q2F0ZWdvcmllcy5wdXNoKFwiXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0NhdGVnb3JpZXMucHVzaChjYXRlZ29yaWVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmV3Q2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdID0gY2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdO1xyXG4gICAgdmFyIHhBeGlzRm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgaWYgKGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID09PSAwKSB7XHJcbiAgICAgIG5ld0NhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHZhciB4aXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKSA6IGl0ZW07XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC1tZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWmguaenOWcqOS4u+inhuWbvuWMuuWfn+WGhVxyXG4gICAgICAgIHZhciBfc2Nyb2xsRGlzdGFuY2VfID0gb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDA7XHJcbiAgICAgICAgdmFyIHRydWVQb2ludHMgPSBib3VuZGFyeUdhcCA9PSAnY2VudGVyJyA/IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMiA6IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgICBpZigodHJ1ZVBvaW50cyAtIE1hdGguYWJzKF9zY3JvbGxEaXN0YW5jZV8pKSA+PSBvcHRzLmFyZWFbM10gJiYgKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPD0gKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0pKXtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc1BvaW50c1tpbmRleF0gKyBvZmZzZXQsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgKyAoY29uZmlnLnhBeGlzSGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0IC0geEF4aXNGb250U2l6ZSkgLyAyKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgeGl0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKGl0ZW0pIDogaXRlbTtcclxuICAgICAgICAvLyDlpoLmnpzlnKjkuLvop4blm77ljLrln5/lhoVcclxuICAgICAgICB2YXIgX3Njcm9sbERpc3RhbmNlXyA9IG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwO1xyXG4gICAgICAgIHZhciB0cnVlUG9pbnRzID0gYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicgPyB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIgOiB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgaWYoKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPj0gb3B0cy5hcmVhWzNdICYmICh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpIDw9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdKSl7XHJcbiAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KFN0cmluZyh4aXRlbSksIHhBeGlzRm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIG9mZnNldFggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgICBpZiAoYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgb2Zmc2V0WCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciBzY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB2YXIgb2Zmc2V0WSA9IHN0YXJ0WSArIDYgKiBvcHRzLnBpeCArIHhBeGlzRm9udFNpemUgLSB4QXhpc0ZvbnRTaXplICogTWF0aC5hYnMoTWF0aC5zaW4oY29uZmlnLl94QXhpc1RleHRBbmdsZV8pKTtcclxuICAgICAgICAgIGlmKG9wdHMueEF4aXMucm90YXRlQW5nbGUgPCAwKXtcclxuICAgICAgICAgICAgb2Zmc2V0WCAtPSB4QXhpc0ZvbnRTaXplIC8gMjtcclxuICAgICAgICAgICAgdGV4dFdpZHRoID0gMDtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBvZmZzZXRYICs9IHhBeGlzRm9udFNpemUgLyAyO1xyXG4gICAgICAgICAgICB0ZXh0V2lkdGggPSAtdGV4dFdpZHRoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC50cmFuc2xhdGUob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJvdGF0ZSgtMSAqIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgdGV4dFdpZHRoICwgMCApO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAvL+e7mOWItljovbTovbTnur9cclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5heGlzTGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVHcmlkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgeEF4aXNlYWNoU3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgVG90YWxXaWR0aCA9IHhBeGlzZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxICl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgVG90YWxXaWR0aCArPSAob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMSkqeEF4aXNlYWNoU3BhY2luZztcclxuICB9XHJcbiAgbGV0IGVuZFggPSBzdGFydFggKyBUb3RhbFdpZHRoO1xyXG4gIGxldCBwb2ludHMgPSBbXTtcclxuICBsZXQgc3RhcnRZID0gMVxyXG4gIGlmIChvcHRzLnhBeGlzLmF4aXNMaW5lID09PSBmYWxzZSkge1xyXG4gICAgc3RhcnRZID0gMFxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gc3RhcnRZOyBpIDwgb3B0cy55QXhpcy5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgcG9pbnRzLnB1c2gob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBlYWNoU3BhY2luZyAqIGkpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMueUF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtvcHRzLnlBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeCwgb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnlBeGlzLmdyaWRDb2xvcik7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgLy8gc2V0IFlBeGlzIGJhY2tncm91bmRcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAnbGVmdCcpIHtcclxuICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgc3RhcnRYLCBlbmRZICsgMiAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAncmlnaHQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KGVuZFgsIDAsIG9wdHMud2lkdGgsIGVuZFkgKyAyICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgXHJcbiAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgdFN0YXJ0Q2VudGVyID0gb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMjtcclxuICBpZiAob3B0cy55QXhpcy5kYXRhKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgaWYoeURhdGEudHlwZSA9PT0gJ2NhdGVnb3JpZXMnKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAvIDIgKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICBsZXQgcmFuZ2VzRm9ybWF0ID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc0Zvcm1hdFtpXTtcclxuICAgICAgICBsZXQgeUF4aXNGb250U2l6ZSA9IHlEYXRhLmZvbnRTaXplID8geURhdGEuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgeUF4aXNXaWR0aCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoW2ldO1xyXG4gICAgICAgIGxldCB0ZXh0QWxpZ24gPSB5RGF0YS50ZXh0QWxpZ24gfHwgXCJyaWdodFwiO1xyXG4gICAgICAgIC8v55S7Wei9tOWIu+W6puWPiuaWh+ahiFxyXG4gICAgICAgIHJhbmdlc0Zvcm1hdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICB2YXIgcG9zID0gcG9pbnRzW2luZGV4XTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHlBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGxldCB0bXBzdHJhdCA9IDA7XHJcbiAgICAgICAgICBsZXQgZ2Fwd2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQgLSAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v55S75paH5a2XXHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG5cclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0UmlnaHQsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0UmlnaHQgKyAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgeUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0Q2VudGVyLCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydENlbnRlciAtIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/nlLvmloflrZdcclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0geUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/nlLtZ6L206L2057q/XHJcbiAgICAgICAgaWYgKHlEYXRhLmF4aXNMaW5lICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRSaWdodCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRSaWdodCwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRDZW50ZXIsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0Q2VudGVyLCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/nlLtZ6L205qCH6aKYXHJcbiAgICAgICAgaWYgKG9wdHMueUF4aXMuc2hvd1RpdGxlKSB7XHJcbiAgICAgICAgICBsZXQgdGl0bGVGb250U2l6ZSA9IHlEYXRhLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgICBsZXQgdGl0bGUgPSB5RGF0YS50aXRsZTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHRpdGxlRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEudGl0bGVGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydExlZnQgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRSaWdodCAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRDZW50ZXIgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICB0U3RhcnRMZWZ0IC09ICh5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0U3RhcnRSaWdodCArPSB5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0xlZ2VuZChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2hhcnREYXRhKSB7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBsZWdlbmREYXRhID0gY2hhcnREYXRhLmxlZ2VuZERhdGE7XHJcbiAgbGV0IGxlZ2VuZExpc3QgPSBsZWdlbmREYXRhLnBvaW50cztcclxuICBsZXQgbGVnZW5kQXJlYSA9IGxlZ2VuZERhdGEuYXJlYTtcclxuICBsZXQgcGFkZGluZyA9IG9wdHMubGVnZW5kLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVdpZHRoID0gMTUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVSaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICBsZXQgaXRlbUdhcCA9IG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICBsZXQgbGluZUhlaWdodCA9IE1hdGgubWF4KG9wdHMubGVnZW5kLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCwgZm9udFNpemUpO1xyXG4gIC8v55S76IOM5pmv5Y+K6L655qGGXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aChvcHRzLmxlZ2VuZC5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMubGVnZW5kLmJvcmRlckNvbG9yKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmxlZ2VuZC5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIGNvbnRleHQubW92ZVRvKGxlZ2VuZEFyZWEuc3RhcnQueCwgbGVnZW5kQXJlYS5zdGFydC55KTtcclxuICBjb250ZXh0LnJlY3QobGVnZW5kQXJlYS5zdGFydC54LCBsZWdlbmRBcmVhLnN0YXJ0LnksIGxlZ2VuZEFyZWEud2lkdGgsIGxlZ2VuZEFyZWEuaGVpZ2h0KTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgbGVnZW5kTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW1MaXN0LCBsaXN0SW5kZXgpIHtcclxuICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMDtcclxuICAgIHdpZHRoID0gbGVnZW5kRGF0YS53aWR0aEFycltsaXN0SW5kZXhdO1xyXG4gICAgaGVpZ2h0ID0gbGVnZW5kRGF0YS5oZWlnaHRBcnJbbGlzdEluZGV4XTtcclxuICAgIGxldCBzdGFydFggPSAwO1xyXG4gICAgbGV0IHN0YXJ0WSA9IDA7XHJcbiAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgc3dpdGNoIChvcHRzLmxlZ2VuZC5mbG9hdCkge1xyXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgcGFkZGluZztcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBsZWdlbmRBcmVhLndpZHRoIC0gd2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyAobGVnZW5kQXJlYS53aWR0aCAtIHdpZHRoKSAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIGxpc3RJbmRleCAqIGxpbmVIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobGlzdEluZGV4ID09IDApIHtcclxuICAgICAgICB3aWR0aCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGggPSBsZWdlbmREYXRhLndpZHRoQXJyW2xpc3RJbmRleCAtIDFdO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIHBhZGRpbmcgKyB3aWR0aDtcclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIChsZWdlbmRBcmVhLmhlaWdodCAtIGhlaWdodCkgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGl0ZW1MaXN0W2ldO1xyXG4gICAgICBpdGVtLmFyZWEgPSBbMCwgMCwgMCwgMF07XHJcbiAgICAgIGl0ZW0uYXJlYVswXSA9IHN0YXJ0WDtcclxuICAgICAgaXRlbS5hcmVhWzFdID0gc3RhcnRZO1xyXG4gICAgICBpdGVtLmFyZWFbM10gPSBzdGFydFkgKyBsaW5lSGVpZ2h0O1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS5sZWdlbmRTaGFwZSkge1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCA0ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndHJpYW5nbGUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RpYW1vbmQnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NpcmNsZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCwgNSAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyZWN0JzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzcXVhcmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ25vbmUnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIHN0YXJ0WCArPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodDtcclxuICAgICAgbGV0IGZvbnRUcmFucyA9IDAuNSAqIGxpbmVIZWlnaHQgKyAwLjUgKiBmb250U2l6ZSAtIDI7XHJcbiAgICAgIGNvbnN0IGxlZ2VuZFRleHQgPSBpdGVtLmxlZ2VuZFRleHQgPyBpdGVtLmxlZ2VuZFRleHQgOiBpdGVtLm5hbWU7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnNob3cgPyBvcHRzLmxlZ2VuZC5mb250Q29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQobGVnZW5kVGV4dCwgc3RhcnRYLCBzdGFydFkgKyBmb250VHJhbnMpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgICBzdGFydFggKz0gbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDtcclxuICAgICAgICBpdGVtLmFyZWFbMl0gPSBzdGFydFg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYICsgbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDs7XHJcbiAgICAgICAgc3RhcnRYIC09IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0O1xyXG4gICAgICAgIHN0YXJ0WSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQaWVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHBpZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgYWN0aXZlT3BhY2l0eTogMC41LFxyXG4gICAgYWN0aXZlUmFkaXVzOiAxMCxcclxuICAgIG9mZnNldEFuZ2xlOiAwLFxyXG4gICAgbGFiZWxXaWR0aDogMTUsXHJcbiAgICByaW5nV2lkdGg6IDMwLFxyXG4gICAgY3VzdG9tUmFkaXVzOiAwLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGNlbnRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy50eXBlID09IFwicGllXCIgPyBvcHRzLmV4dHJhLnBpZSA6IG9wdHMuZXh0cmEucmluZyk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG5cclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgLSBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfLCAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcpO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgaWYgKHBpZU9wdGlvbi5jdXN0b21SYWRpdXMgPiAwKSB7XHJcbiAgICByYWRpdXMgPSBwaWVPcHRpb24uY3VzdG9tUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcGllT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHBpZU9wdGlvbi5saW5lYXJUeXBlLCBwaWVPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocGllT3B0aW9uLm9mZnNldEFuZ2xlKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBwaWVPcHRpb24uYWN0aXZlT3BhY2l0eSB8fCAwLjUpKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfICsgYWN0aXZlUmFkaXVzLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChwaWVPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmxpbmVKb2luID0gXCJyb3VuZFwiO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwaWVPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocGllT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihwaWVPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocGllT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICB2YXIgaW5uZXJQaWVXaWR0aCA9IHJhZGl1cyAqIDAuNjtcclxuICAgIGlmICh0eXBlb2YgcGllT3B0aW9uLnJpbmdXaWR0aCA9PT0gJ251bWJlcicgJiYgcGllT3B0aW9uLnJpbmdXaWR0aCA+IDApIHtcclxuICAgICAgaW5uZXJQaWVXaWR0aCA9IE1hdGgubWF4KDAsIHJhZGl1cyAtIHBpZU9wdGlvbi5yaW5nV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocGllT3B0aW9uLmNlbnRlckNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJQaWVXaWR0aCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEgJiYgb3B0cy50eXBlID09PSAncmluZycpIHtcclxuICAgIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBzZXJpZXM6IHNlcmllc1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByb3NlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnYXJlYScsXHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjUsXHJcbiAgICBhY3RpdmVSYWRpdXM6IDEwLFxyXG4gICAgb2Zmc2V0QW5nbGU6IDAsXHJcbiAgICBsYWJlbFdpZHRoOiAxNSxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5yb3NlKTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSByb3NlT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyAtIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8sIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyk7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgbWluUmFkaXVzID0gcm9zZU9wdGlvbi5taW5SYWRpdXMgfHwgcmFkaXVzICogMC41O1xyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0FyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJjYmFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzdGFydEFuZ2xlOiAwLjc1LFxyXG4gICAgZW5kQW5nbGU6IDAuMjUsXHJcbiAgICB0eXBlOiAnZGVmYXVsdCcsXHJcbiAgICBkaXJlY3Rpb246ICdjdycsXHJcbiAgICBsaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgd2lkdGg6IDEyICxcclxuICAgIGdhcDogMiAsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5hcmNiYXIpO1xyXG4gIHNlcmllcyA9IGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24sIHByb2Nlc3MpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbjtcclxuICBpZiAoYXJjYmFyT3B0aW9uLmNlbnRlclggfHwgYXJjYmFyT3B0aW9uLmNlbnRlclkpIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBhcmNiYXJPcHRpb24uY2VudGVyWCA/IGFyY2Jhck9wdGlvbi5jZW50ZXJYIDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IGFyY2Jhck9wdGlvbi5jZW50ZXJZID8gYXJjYmFyT3B0aW9uLmNlbnRlclkgOiBvcHRzLmhlaWdodCAvIDJcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBvcHRzLndpZHRoIC8gMixcclxuICAgICAgeTogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH1cclxuICB2YXIgcmFkaXVzO1xyXG4gIGlmIChhcmNiYXJPcHRpb24ucmFkaXVzKSB7XHJcbiAgICByYWRpdXMgPSBhcmNiYXJPcHRpb24ucmFkaXVzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIHJhZGl1cyAtPSA1ICogb3B0cy5waXg7XHJcbiAgICByYWRpdXMgLT0gYXJjYmFyT3B0aW9uLndpZHRoIC8gMjtcclxuICB9XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoYXJjYmFyT3B0aW9uLmxpbmVhclR5cGUsIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIFxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgIC8v6IOM5pmv6aKc6ImyXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGFyY2Jhck9wdGlvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNFOUU5RTknKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgaWYgKGFyY2Jhck9wdGlvbi50eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cyAtIChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCArIGFyY2Jhck9wdGlvbi5nYXAgKiBvcHRzLnBpeCkgKiBpLCAwLCAyICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgaW5uZXJSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aDtcclxuICB2YXIgdG90YWxBbmdsZSA9IDA7XHJcbiAgLy/liKTmlq3ku6rooajnm5jnmoTmoLflvI/vvJpkZWZhdWx055m+5bqm5qC35byP77yMcHJvZ3Jlc3PmlrDmoLflvI9cclxuICBpZiAoZ2F1Z2VPcHRpb24udHlwZSA9PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAvLyMjIOesrOS4gOatpeeUu+S4reW/g+WchuW9ouiDjOaZr+WSjOi/m+W6puadoeiDjOaZr1xyXG4gICAgLy/kuK3lv4PlnIblvaLog4zmma9cclxuICAgIHZhciBwaWVSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDM7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55IC0gcGllUmFkaXVzLCBjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55ICsgcGllUmFkaXVzKTtcclxuICAgIC8v6YWN572u5riQ5Y+Y5aGr5YWF77yI6LW354K577ya5Lit5b+D54K55ZCR5LiK5YeP5Y2K5b6E77yb57uT5p2f54K55Lit5b+D54K55ZCR5LiL5Yqg5Y2K5b6E77yJXHJcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBwaWVSYWRpdXMsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIC8v55S76L+b5bqm5p2h6IOM5pmvXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMC4zKSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAvLyMjIOesrOS6jOatpeeUu+WIu+W6pue6v1xyXG4gICAgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBsZXQgc3BsaXRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXI7XHJcbiAgICBsZXQgY2hpbGRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXI7XHJcbiAgICBsZXQgc3RhcnRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cztcclxuICAgIGxldCBlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS53aWR0aDtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBsZXQgbGVuID0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICogZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyICsgMTtcclxuICAgIGxldCBwcm9jID0gc2VyaWVzWzBdLmRhdGEgKiBwcm9jZXNzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAvL+WIu+W6pue6v+maj+i/m+W6puWPmOiJslxyXG4gICAgICBpZiAocHJvYyA+IChpIC8gbGVuKSkge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vIyMg56ys5LiJ5q2l55S76L+b5bqm5p2hXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBzZXJpZXNbMF0uX3Byb3BvcnRpb25fICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIC8vIyMg56ys5Zub5q2l55S75oyH6ZKIXHJcbiAgICBsZXQgcG9pbnRlclJhZGl1cyA9IHJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMi41O1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChzZXJpZXNbMF0uX3Byb3BvcnRpb25fIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCAvIDMpO1xyXG4gICAgbGV0IGdyYWRpZW50MyA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgLXBvaW50ZXJSYWRpdXMgKiAwLjYsIDAsIHBvaW50ZXJSYWRpdXMgKiAwLjYpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMC41JywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYignI0ZGRkZGRicsIDApKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ3JhZGllbnQzKTtcclxuICAgIGNvbnRleHQuYXJjKDAsIDAsIHBvaW50ZXJSYWRpdXMsIDAuODUgKiBNYXRoLlBJLCAxLjE1ICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIC00KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiAtIDQsIDApO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCA0KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvL2RlZmF1bHTnmb7luqbmoLflvI9cclxuICB9IGVsc2Uge1xyXG4gICAgLy/nlLvog4zmma9cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNbaV07XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaENhdGVnb3JpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMsIGVhY2hDYXRlZ29yaWVzLl9zdGFydEFuZ2xlXyAqIE1hdGguUEksIGVhY2hDYXRlZ29yaWVzLl9lbmRBbmdsZV8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIC8v55S75Yi75bqm57q/XHJcbiAgICB0b3RhbEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIGdhdWdlT3B0aW9uLmVuZEFuZ2xlICsgMTtcclxuICAgIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICAgIGxldCBjaGlsZEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlcjtcclxuICAgIGxldCBzdGFydFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzO1xyXG4gICAgbGV0IGVuZFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzICsgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLndpZHRoO1xyXG4gICAgbGV0IGNoaWxkZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGRXaWR0aDtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoc3BsaXRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKiBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhjaGlsZGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8v55S75oyH6ZKIXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSgoZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIC1nYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gMik7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKC1pbm5lclJhZGl1cywgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSgnI0ZGRkZGRicpO1xyXG4gICAgICBjb250ZXh0LmFyYygwLCAwLCBnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gNiwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/nlLvku6rooajnm5jmoIfpopjvvIzlia/moIfpophcclxuICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ2dhdWdlJykge1xyXG4gICAgb3B0cy5leHRyYS5nYXVnZS5vbGRBbmdsZSA9IHNlcmllc1swXS5fcHJvcG9ydGlvbl87XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZERhdGEgPSBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIGlubmVyUmFkaXVzOiBpbm5lclJhZGl1cyxcclxuICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMsXHJcbiAgICB0b3RhbEFuZ2xlOiB0b3RhbEFuZ2xlXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByYWRhck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZENvbG9yOiAnI2NjY2NjYycsXHJcbiAgICBncmlkVHlwZTogJ3JhZGFyJyxcclxuICAgIGdyaWRFdmFsOjEsXHJcbiAgICBheGlzTGFiZWw6ZmFsc2UsXHJcbiAgICBheGlzTGFiZWxUb2ZpeDowLFxyXG4gICAgbGFiZWxDb2xvcjonIzY2NjY2NicsXHJcbiAgICBsYWJlbFBvaW50U2hvdzpmYWxzZSxcclxuICAgIGxhYmVsUG9pbnRSYWRpdXM6MyxcclxuICAgIGxhYmVsUG9pbnRDb2xvcjonI2NjY2NjYycsXHJcbiAgICBvcGFjaXR5OiAwLjIsXHJcbiAgICBncmlkQ291bnQ6IDMsXHJcbiAgICBib3JkZXI6ZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDoyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEucmFkYXIpO1xyXG4gIHZhciBjb29yZGluYXRlQW5nbGUgPSBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMob3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgeHIgPSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyXHJcbiAgdmFyIHlyID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oeHIgLSAoZ2V0TWF4VGV4dExpc3RMZW5ndGgob3B0cy5jYXRlZ29yaWVzLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKSwgeXIgLSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pO1xyXG4gIHJhZGl1cyAtPSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeDtcclxuICByYWRpdXMgPSByYWRpdXMgPCAxMCA/IDEwIDogcmFkaXVzO1xyXG4gIC8vIOeUu+WIhuWJsue6v1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgY29vcmRpbmF0ZUFuZ2xlLmZvckVhY2goZnVuY3Rpb24oYW5nbGUsaW5kZXgpIHtcclxuICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBpZiAoaW5kZXggJSByYWRhck9wdGlvbi5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIFxyXG4gIC8vIOeUu+iDjOaZr+e9keagvFxyXG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHtcclxuICAgIHZhciBzdGFydFBvcyA9IHt9O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgICBpZiAocmFkYXJPcHRpb24uZ3JpZFR5cGUgPT0gJ3JhZGFyJykge1xyXG4gICAgICBjb29yZGluYXRlQW5nbGUuZm9yRWFjaChmdW5jdGlvbihhbmdsZSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguY29zKGFuZ2xlKSwgcmFkaXVzIC9cclxuICAgICAgICAgIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICAgIHN0YXJ0UG9zID0gcG9zO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFBvcy54LCBzdGFydFBvcy55KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoMS41KSwgcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKDEuNSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgY2VudGVyUG9zaXRpb24ueSAtIHBvcy55LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfTtcclxuICBmb3IgKHZhciBpID0gMTsgaSA8PSByYWRhck9wdGlvbi5ncmlkQ291bnQ7IGkrKykge1xyXG4gICAgX2xvb3AoaSk7XHJcbiAgfVxyXG4gIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUsIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIFxyXG4gICAgdmFyIGZpbGxjb2xvciA9IGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpO1xyXG4gICAgaWYgKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIDAsY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocmFkYXJPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW3Nlcmllc0luZGV4XS5saW5lYXJJbmRleF0sIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbGNvbG9yKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIOeUu+WIu+W6puWAvFxyXG4gIGlmKHJhZGFyT3B0aW9uLmF4aXNMYWJlbCA9PT0gdHJ1ZSl7XHJcbiAgICBjb25zdCBtYXhEYXRhID0gTWF0aC5tYXgocmFkYXJPcHRpb24ubWF4LCBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQ29tYmluZShzZXJpZXMpKSk7XHJcbiAgICBjb25zdCBzdGVwTGVuZ3RoID0gcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50O1xyXG4gICAgY29uc3QgZm9udFNpemUgPSBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGFyT3B0aW9uLmdyaWRDb3VudCArIDE7IGkrKykge1xyXG4gICAgICBsZXQgbGFiZWwgPSBpICogbWF4RGF0YSAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudDtcclxuICAgICAgbGFiZWwgPSBsYWJlbC50b0ZpeGVkKHJhZGFyT3B0aW9uLmF4aXNMYWJlbFRvZml4KTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWwpLCBjZW50ZXJQb3NpdGlvbi54ICsgMyAqIG9wdHMucGl4LCBjZW50ZXJQb3NpdGlvbi55IC0gaSAqIHN0ZXBMZW5ndGggKyBmb250U2l6ZSAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvLyBkcmF3IGxhYmVsIHRleHRcclxuICBkcmF3UmFkYXJMYWJlbChjb29yZGluYXRlQW5nbGUsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgXHJcbiAgLy8gZHJhdyBkYXRhTGFiZWxcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHJhZGFyRGF0YVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgLy/lpoLmnpzmmK/kuK3lv4PngrnlnoLnm7TnmoTkuIrkuIvngrnkvY1cclxuICAgICAgICBpZihNYXRoLmFicyhpdGVtLnBvc2l0aW9uLnggLSBjZW50ZXJQb3NpdGlvbi54KTwyKXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5LiK6Z2iXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnkgPCBjZW50ZXJQb3NpdGlvbi55KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55IC0gNCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgKyAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5bem5L6nXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnggPCBjZW50ZXJQb3NpdGlvbi54KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54IC0gNCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggKyA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gIH1cclxuICBcclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgYW5nbGVMaXN0OiBjb29yZGluYXRlQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG4vLyDnu4/nuqzluqbovazloqjljaHmiZhcclxuZnVuY3Rpb24gbG9ubGF0Mm1lcmNhdG9yKGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbWVyY2F0b3IgPSBBcnJheSgyKTtcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIHZhciB5ID0gTWF0aC5sb2coTWF0aC50YW4oKDkwICsgbGF0aXR1ZGUpICogTWF0aC5QSSAvIDM2MCkpIC8gKE1hdGguUEkgLyAxODApO1xyXG4gIHkgPSB5ICogMjAwMzc1MDguMzQgLyAxODA7XHJcbiAgbWVyY2F0b3JbMF0gPSB4O1xyXG4gIG1lcmNhdG9yWzFdID0geTtcclxuICByZXR1cm4gbWVyY2F0b3I7XHJcbn1cclxuXHJcbi8vIOWiqOWNoeaJmOi9rOe7j+e6rOW6plxyXG5mdW5jdGlvbiBtZXJjYXRvcjJsb25sYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSkge1xyXG4gIHZhciBsb25sYXQgPSBBcnJheSgyKVxyXG4gIHZhciB4ID0gbG9uZ2l0dWRlIC8gMjAwMzc1MDguMzQgKiAxODA7XHJcbiAgdmFyIHkgPSBsYXRpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHkgPSAxODAgLyBNYXRoLlBJICogKDIgKiBNYXRoLmF0YW4oTWF0aC5leHAoeSAqIE1hdGguUEkgLyAxODApKSAtIE1hdGguUEkgLyAyKTtcclxuICBsb25sYXRbMF0gPSB4O1xyXG4gIGxvbmxhdFsxXSA9IHk7XHJcbiAgcmV0dXJuIGxvbmxhdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdCb3goZGF0YSkge1xyXG4gIHZhciBib3VuZHMgPSB7fSxjb29yZHM7XHJcbiAgYm91bmRzLnhNaW4gPSAxODA7XHJcbiAgYm91bmRzLnhNYXggPSAwO1xyXG4gIGJvdW5kcy55TWluID0gOTA7XHJcbiAgYm91bmRzLnlNYXggPSAwXHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgbG9uZ2l0dWRlID0gY29vcmRzW2pdWzBdO1xyXG4gICAgICAgIHZhciBsYXRpdHVkZSA9IGNvb3Jkc1tqXVsxXTtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7XHJcbiAgICAgICAgICB4OiBsb25naXR1ZGUsXHJcbiAgICAgICAgICB5OiBsYXRpdHVkZVxyXG4gICAgICAgIH1cclxuICAgICAgICBib3VuZHMueE1pbiA9IGJvdW5kcy54TWluIDwgcG9pbnQueCA/IGJvdW5kcy54TWluIDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueE1heCA9IGJvdW5kcy54TWF4ID4gcG9pbnQueCA/IGJvdW5kcy54TWF4IDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueU1pbiA9IGJvdW5kcy55TWluIDwgcG9pbnQueSA/IGJvdW5kcy55TWluIDogcG9pbnQueTtcclxuICAgICAgICBib3VuZHMueU1heCA9IGJvdW5kcy55TWF4ID4gcG9pbnQueSA/IGJvdW5kcy55TWF4IDogcG9pbnQueTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYm91bmRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb29yZGluYXRlVG9Qb2ludChsYXRpdHVkZSwgbG9uZ2l0dWRlLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IChsb25naXR1ZGUgLSBib3VuZHMueE1pbikgKiBzY2FsZSArIHhvZmZzZXQsXHJcbiAgICB5OiAoYm91bmRzLnlNYXggLSBsYXRpdHVkZSkgKiBzY2FsZSArIHlvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwb2ludFRvQ29vcmRpbmF0ZShwb2ludFksIHBvaW50WCwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAocG9pbnRYIC0geG9mZnNldCkgLyBzY2FsZSArIGJvdW5kcy54TWluLFxyXG4gICAgeTogYm91bmRzLnlNYXggLSAocG9pbnRZIC0geW9mZnNldCkgLyBzY2FsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpIHtcclxuICBpZiAoc19wb2lbMV0gPT0gZV9wb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID4gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA8IHBvaVsxXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPT0gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChlX3BvaVsxXSA9PSBwb2lbMV0gJiYgc19wb2lbMV0gPiBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzBdIDwgcG9pWzBdICYmIGVfcG9pWzFdIDwgcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGxldCB4c2VnID0gZV9wb2lbMF0gLSAoZV9wb2lbMF0gLSBzX3BvaVswXSkgKiAoZV9wb2lbMV0gLSBwb2lbMV0pIC8gKGVfcG9pWzFdIC0gc19wb2lbMV0pO1xyXG4gIGlmICh4c2VnIDwgcG9pWzBdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaXNQb2lXaXRoaW5Qb2x5KHBvaSwgcG9seSwgbWVyY2F0b3IpIHtcclxuICBsZXQgc2luc2MgPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seS5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGVwb2x5ID0gcG9seVtpXVswXTtcclxuICAgIGlmIChwb2x5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGVwb2x5ID0gcG9seVtpXVswXVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBlcG9seS5sZW5ndGggLSAxOyBqKyspIHtcclxuICAgICAgbGV0IHNfcG9pID0gZXBvbHlbal07XHJcbiAgICAgIGxldCBlX3BvaSA9IGVwb2x5W2ogKyAxXTtcclxuICAgICAgaWYgKG1lcmNhdG9yKSB7XHJcbiAgICAgICAgc19wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbal1bMF0sIGVwb2x5W2pdWzFdKTtcclxuICAgICAgICBlX3BvaSA9IGxvbmxhdDJtZXJjYXRvcihlcG9seVtqICsgMV1bMF0sIGVwb2x5W2ogKyAxXVsxXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpKSB7XHJcbiAgICAgICAgc2luc2MgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAoc2luc2MgJSAyID09IDEpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBtYXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGJvcmRlcjogdHJ1ZSxcclxuICAgIG1lcmNhdG9yOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYWN0aXZlOnRydWUsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBzZXJpZXNbaV0uZmlsbE9wYWNpdHl8fG1hcE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgaWYgKG1hcE9wdGlvbi5hY3RpdmUgPT0gdHJ1ZSAmJiBvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBjZW50ZXJQb2ludCA9IGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZDtcclxuICAgICAgaWYgKGNlbnRlclBvaW50KSB7XHJcbiAgICAgICAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgICAgICAgY2VudGVyUG9pbnQgPSBsb25sYXQybWVyY2F0b3IoZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkWzBdLCBkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMV0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvaW50ID0gY29vcmRpbmF0ZVRvUG9pbnQoY2VudGVyUG9pbnRbMV0sIGNlbnRlclBvaW50WzBdLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KTtcclxuICAgICAgICBsZXQgZm9udFNpemUgPSBkYXRhW2ldLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgIGxldCBmb250Q29sb3IgPSBkYXRhW2ldLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICAgICAgICBpZihtYXBPcHRpb24uYWN0aXZlICYmIG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3IgJiYgb3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKXtcclxuICAgICAgICAgIGZvbnRDb2xvciA9IG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLm5hbWU7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZvbnRDb2xvcilcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIHBvaW50LnggLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkgLyAyLCBwb2ludC55ICsgZm9udFNpemUgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEubWFwRGF0YSA9IHtcclxuICAgIGJvdW5kczogYm91bmRzLFxyXG4gICAgc2NhbGU6IHNjYWxlLFxyXG4gICAgeG9mZnNldDogeG9mZnNldCxcclxuICAgIHlvZmZzZXQ6IHlvZmZzZXQsXHJcbiAgICBtZXJjYXRvcjogbWFwT3B0aW9uLm1lcmNhdG9yXHJcbiAgfVxyXG4gIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgMSk7XHJcbiAgY29udGV4dC5kcmF3KCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHR5cGUsIGNvbnRleHQpIHtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5zZXJpZXM7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IHgsIHk7XHJcbiAgICAgICAgbGV0IGFyZWE7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIHggPSBub3JtYWxJbnQoLW9wdHMud2lkdGggLyAyLCBvcHRzLndpZHRoIC8gMiwgNSkgLSB0V2lkdGggLyAyO1xyXG4gICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgK1xyXG4gICAgICAgICAgICBvcHRzLmhlaWdodCAvIDJcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBsZXQgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYSwgcG9pbnRzLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAoIWlzQ29sbGlzaW9uKSBicmVhaztcclxuICAgICAgICAgIGlmIChicmVha251bSA9PSAxMDAwKSB7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbLTEwMCwgLTEwMCwgLTEwMCwgLTEwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAndmVydGljYWwnOlxyXG4gICAgICBmdW5jdGlvbiBTcGluKCkge1xyXG4gICAgICAgIC8v6I635Y+W5Z2H5YyA6ZqP5py65YC877yM5piv5ZCm5peL6L2s77yM5peL6L2s55qE5qaC546H5Li677yIMS0wLjXvvIlcclxuICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuNykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgICAgICBsZXQgdEhlaWdodCA9IHBvaW50c1tpXS50ZXh0U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgICAgICBsZXQgaXNTcGluID0gU3BpbigpO1xyXG4gICAgICAgIGxldCB4LCB5LCBhcmVhLCBhcmVhdjtcclxuICAgICAgICBsZXQgYnJlYWtudW0gPSAwO1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICBicmVha251bSsrO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uO1xyXG4gICAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMiwgKC14IC0gNSArIG9wdHMuaGVpZ2h0IC8gMiksIHkgKyA1ICsgb3B0cy53aWR0aCAvIDIsICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKV07XHJcbiAgICAgICAgICAgIGFyZWF2ID0gW29wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpIC0gNSwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSAtIDUsIG9wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpICsgdEhlaWdodCwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSArIHRXaWR0aCArIDVdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhdiwgcG9pbnRzLCBvcHRzLmhlaWdodCwgb3B0cy53aWR0aCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeCAtIDUgKyBvcHRzLndpZHRoIC8gMiwgeSAtIDUgLSB0SGVpZ2h0ICsgb3B0cy5oZWlnaHQgLyAyLCB4ICsgdFdpZHRoICsgNSArIG9wdHMud2lkdGggLyAyLCB5ICsgNSArIG9wdHMuaGVpZ2h0IC8gMl07XHJcbiAgICAgICAgICAgIGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAwLCAtMTAwMCwgLTEwMDAsIC0xMDAwXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoaXNTcGluKSB7XHJcbiAgICAgICAgICBwb2ludHNbaV0uYXJlYSA9IGFyZWF2O1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWF2ID0gYXJlYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwb2ludHNbaV0ucm90YXRlID0gaXNTcGluO1xyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgd29yZE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ25vcm1hbCcsXHJcbiAgICBhdXRvQ29sb3JzOiB0cnVlXHJcbiAgfSwgb3B0cy5leHRyYS53b3JkKTtcclxuICBpZiAoIW9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEgPSBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB3b3JkT3B0aW9uLnR5cGUsIGNvbnRleHQpO1xyXG4gIH1cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgY29udGV4dC5yZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YTtcclxuICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLndpZHRoIC8gMiwgb3B0cy5oZWlnaHQgLyAyKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocG9pbnRzW2ldLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodEhlaWdodCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWF2WzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBvaW50c1tpXS5hcmVhWzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgZnVubmVsT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOidmdW5uZWwnLFxyXG4gICAgYWN0aXZlV2lkdGg6IDEwLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC4zLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGZpbGxPcGFjaXR5OiAxLFxyXG4gICAgbWluU2l6ZTogMCxcclxuICAgIGxhYmVsQWxpZ246ICdyaWdodCcsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5mdW5uZWwpO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyBzZXJpZXMubGVuZ3RoO1xyXG4gIGxldCBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXVxyXG4gIH07XHJcbiAgbGV0IGFjdGl2ZVdpZHRoID0gZnVubmVsT3B0aW9uLmFjdGl2ZVdpZHRoICogb3B0cy5waXg7XHJcbiAgbGV0IHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBhY3RpdmVXaWR0aCwgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBhY3RpdmVXaWR0aCk7XHJcbiAgbGV0IHNlcmllc05ldyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbiwgZWFjaFNwYWNpbmcsIHByb2Nlc3MpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gIGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihmdW5uZWxPcHRpb24ubGluZWFyVHlwZSwgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgaWYoZnVubmVsT3B0aW9uLnR5cGUgPT0gJ3B5cmFtaWQnKXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpICsgMV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpICsgMV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1lYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC0gKHNlcmllc05ldy5sZW5ndGggLSAxKSAqIGVhY2hTcGFjaW5nKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGggKyBmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNOZXdbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSBdO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzTmV3W2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChzZXJpZXNOZXcubGVuZ3RoIC0gaSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoc2VyaWVzTmV3Lmxlbmd0aCAtIGkgLSAxKV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBlYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3RnVubmVsVGV4dChzZXJpZXNOZXcsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBmdW5uZWxPcHRpb24ubGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllc05ldywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNOZXdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZihpdGVtLmxhYmVsU2hvdyA9PT0gZmFsc2Upe1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydFgsIGVuZFgsIHN0YXJ0WSwgZm9udFNpemU7XHJcbiAgICBsZXQgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpLHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICB0ZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IHRleHQ7XHJcbiAgICBpZiAobGFiZWxBbGlnbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMl0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMl0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYICsgYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhYmVsQWxpZ24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMF0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMF0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYIC0gYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIGVuZFggLSA1IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpLCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGxhYmVsQWxpZ24sIGFjdGl2ZVdpZHRoLCBjZW50ZXJQb3NpdGlvbikge1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgaWYgKGl0ZW0uY2VudGVyVGV4dCkge1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS5jZW50ZXJUZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY2VudGVyVGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLmNlbnRlclRleHQsIGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChpdGVtLmNlbnRlclRleHQsIGZvbnRTaXplLCBjb250ZXh0KSAvIDIsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG52YXIgVGltaW5nID0ge1xyXG4gIGVhc2VJbjogZnVuY3Rpb24gZWFzZUluKHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcywgMyk7XHJcbiAgfSxcclxuICBlYXNlT3V0OiBmdW5jdGlvbiBlYXNlT3V0KHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcyAtIDEsIDMpICsgMTtcclxuICB9LFxyXG4gIGVhc2VJbk91dDogZnVuY3Rpb24gZWFzZUluT3V0KHBvcykge1xyXG4gICAgaWYgKChwb3MgLz0gMC41KSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIE1hdGgucG93KHBvcywgMyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHBvcyAtIDIsIDMpICsgMik7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lYXI6IGZ1bmN0aW9uIGxpbmVhcihwb3MpIHtcclxuICAgIHJldHVybiBwb3M7XHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gQW5pbWF0aW9uKG9wdHMpIHtcclxuICB0aGlzLmlzU3RvcCA9IGZhbHNlO1xyXG4gIG9wdHMuZHVyYXRpb24gPSB0eXBlb2Ygb3B0cy5kdXJhdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAxMDAwIDogb3B0cy5kdXJhdGlvbjtcclxuICBvcHRzLnRpbWluZyA9IG9wdHMudGltaW5nIHx8ICdlYXNlSW5PdXQnO1xyXG4gIHZhciBkZWxheSA9IDE3O1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCkge1xyXG4gICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCwgZGVsYXkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgdmFyIHRpbWVTdGFtcCA9ICtuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgc3RlcCh0aW1lU3RhbXApO1xyXG4gICAgICAgIH0sIGRlbGF5KTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwKSB7XHJcbiAgICAgICAgc3RlcChudWxsKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHZhciBhbmltYXRpb25GcmFtZSA9IGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCk7XHJcbiAgdmFyIHN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICB2YXIgX3N0ZXAgPSBmdW5jdGlvbiBzdGVwKHRpbWVzdGFtcCkge1xyXG4gICAgaWYgKHRpbWVzdGFtcCA9PT0gbnVsbCB8fCB0aGlzLmlzU3RvcCA9PT0gdHJ1ZSkge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChzdGFydFRpbWVTdGFtcCA9PT0gbnVsbCkge1xyXG4gICAgICBzdGFydFRpbWVTdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIGlmICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCA8IG9wdHMuZHVyYXRpb24pIHtcclxuICAgICAgdmFyIHByb2Nlc3MgPSAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXApIC8gb3B0cy5kdXJhdGlvbjtcclxuICAgICAgdmFyIHRpbWluZ0Z1bmN0aW9uID0gVGltaW5nW29wdHMudGltaW5nXTtcclxuICAgICAgcHJvY2VzcyA9IHRpbWluZ0Z1bmN0aW9uKHByb2Nlc3MpO1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2Vzcyhwcm9jZXNzKTtcclxuICAgICAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgIH1cclxuICB9O1xyXG4gIF9zdGVwID0gX3N0ZXAuYmluZCh0aGlzKTtcclxuICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG59XHJcblxyXG5BbmltYXRpb24ucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmlzU3RvcCA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2hhcnRzKHR5cGUsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgdmFyIHNlcmllcyA9IG9wdHMuc2VyaWVzO1xyXG4gIC8v5YW85a65RUNoYXJ0c+mlvOWbvuexu+aVsOaNruagvOW8j1xyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ21vdW50JyB8fCB0eXBlID09PSAncm9zZScgfHwgdHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgIHNlcmllcyA9IGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyk7XHJcbiAgfVxyXG4gIHZhciBjYXRlZ29yaWVzID0gb3B0cy5jYXRlZ29yaWVzO1xyXG4gIGlmICh0eXBlID09PSAnbW91bnQnKSB7XHJcbiAgICBjYXRlZ29yaWVzID0gW107XHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICBpZihzZXJpZXNbal0uc2hvdyAhPT0gZmFsc2UpIGNhdGVnb3JpZXMucHVzaChzZXJpZXNbal0ubmFtZSlcclxuICAgIH1cclxuICAgIG9wdHMuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIHZhciBkdXJhdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDA7XHJcbiAgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2Uuc3RvcCgpO1xyXG4gIHZhciBzZXJpZXNNQSA9IG51bGw7XHJcbiAgaWYgKHR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgIGxldCBhdmVyYWdlID0gYXNzaWduKHt9LCBvcHRzLmV4dHJhLmNhbmRsZS5hdmVyYWdlKTtcclxuICAgIGlmIChhdmVyYWdlLnNob3cpIHtcclxuICAgICAgc2VyaWVzTUEgPSBjYWxDYW5kbGVNQShhdmVyYWdlLmRheSwgYXZlcmFnZS5uYW1lLCBhdmVyYWdlLmNvbG9yLCBzZXJpZXNbMF0uZGF0YSk7XHJcbiAgICAgIHNlcmllc01BID0gZmlsbFNlcmllcyhzZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgICAgb3B0cy5zZXJpZXNNQSA9IHNlcmllc01BO1xyXG4gICAgfSBlbHNlIGlmIChvcHRzLnNlcmllc01BKSB7XHJcbiAgICAgIHNlcmllc01BID0gb3B0cy5zZXJpZXNNQSA9IGZpbGxTZXJpZXMob3B0cy5zZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc01BID0gc2VyaWVzO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICB9XHJcbiAgLyog6L+H5ruk5o6Jc2hvdz1mYWxzZeeahHNlcmllcyAqL1xyXG4gIG9wdHMuX3Nlcmllc18gPSBzZXJpZXMgPSBmaWx0ZXJTZXJpZXMoc2VyaWVzKTtcclxuICAvL+mHjeaWsOiuoeeul+WbvuihqOWMuuWfn1xyXG4gIG9wdHMuYXJlYSA9IG5ldyBBcnJheSg0KTtcclxuICAvL+WkjeS9jee7mOWbvuWMuuWfn1xyXG4gIGZvciAobGV0IGogPSAwOyBqIDwgNDsgaisrKSB7XHJcbiAgICBvcHRzLmFyZWFbal0gPSBvcHRzLnBhZGRpbmdbal0gKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgLy/pgJrov4forqHnrpfkuInlpKfljLrln5/vvJrlm77kvovjgIFY6L2044CBWei9tOeahOWkp+Wwj++8jOehruWumue7mOWbvuWMuuWfn1xyXG4gIHZhciBfY2FsTGVnZW5kRGF0YSA9IGNhbExlZ2VuZERhdGEoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEsIGNvbnRleHQpLFxyXG4gICAgbGVnZW5kSGVpZ2h0ID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCxcclxuICAgIGxlZ2VuZFdpZHRoID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZVdpZHRoO1xyXG5cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSBsZWdlbmRIZWlnaHQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIG9wdHMuYXJlYVszXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgIG9wdHMuYXJlYVsxXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG5cclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IHt9LFxyXG4gICAgeUF4aXNXaWR0aCA9IDA7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2NvbHVtbid8fCBvcHRzLnR5cGUgPT09ICdtb3VudCcgfHwgb3B0cy50eXBlID09PSAnYXJlYScgfHwgb3B0cy50eXBlID09PSAnbWl4JyB8fCBvcHRzLnR5cGUgPT09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInICB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICAvL+WmguaenOaYvuekulnovbTmoIfpophcclxuICAgIGlmIChvcHRzLnlBeGlzLnNob3dUaXRsZSkge1xyXG4gICAgICBsZXQgbWF4VGl0bGVIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG1heFRpdGxlSGVpZ2h0ID0gTWF0aC5tYXgobWF4VGl0bGVIZWlnaHQsIG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplID8gb3B0cy55QXhpcy5kYXRhW2ldLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZSlcclxuICAgICAgfVxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbWF4VGl0bGVIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBsZXQgcmlnaHRJbmRleCA9IDAsXHJcbiAgICAgIGxlZnRJbmRleCA9IDA7XHJcbiAgICAvL+iuoeeul+S4u+e7mOWbvuWMuuWfn+W3puWPs+S9jee9rlxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5QXhpc1dpZHRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh5QXhpc1dpZHRoW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGlmIChsZWZ0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGVmdEluZGV4ICs9IDE7XHJcbiAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgaWYgKHJpZ2h0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmlnaHRJbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEueUF4aXNEYXRhID0gX2NhbFlBeGlzRGF0YTtcclxuXHJcbiAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoICYmIG9wdHMudHlwZSAhPT0gJ3JhZGFyJyAmJiBvcHRzLnR5cGUgIT09ICdnYXVnZScgJiYgb3B0cy50eXBlICE9PSAnYmFyJykge1xyXG4gICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gZ2V0WEF4aXNQb2ludHMob3B0cy5jYXRlZ29yaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmcsIGNvbnRleHQpLFxyXG4gICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICBjb25maWcueEF4aXNIZWlnaHQgPSB4QXhpc0hlaWdodDtcclxuICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICBvcHRzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzRGF0YSA9IF9jYWxDYXRlZ29yaWVzRGF0YTtcclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSBjYWxYQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICBjYXRlZ29yaWVzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlc0Zvcm1hdDtcclxuICAgICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgICBhbmdsZSA9IF9jYWxDYXRlZ29yaWVzRGF0YS5hbmdsZTtcclxuICAgICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSB4QXhpc0hlaWdodDtcclxuICAgICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHM6IFtdXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL+iuoeeul+WPs+Wvuem9kOWBj+enu+i3neemu1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbEFsaWduID09ICdyaWdodCcgJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID09PSB1bmRlZmluZWQpIHtcclxuICAgIGxldCBvZmZzZXRMZWZ0ID0gMCxcclxuICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICAgIHN0YXJ0WCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICAgIGVuZFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCxcclxuICAgICAgZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAtIHRvdGFsV2lkdGg7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCA9IG9mZnNldExlZnQ7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBvZmZzZXRMZWZ0O1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gMDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSAwO1xyXG4gICAgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzTUEsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIFxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnd29yZCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWFwJzpcclxuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICB0aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICB9LDUwKVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Z1bm5lbCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZnVubmVsRGF0YSA9IGRyYXdGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0xpbmVEYXRhUG9pbnRzID0gZHJhd0xpbmVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3NjYXR0ZXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzID0gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2J1YmJsZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QnViYmxlRGF0YVBvaW50cyA9IGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21peCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TWl4RGF0YVBvaW50cyA9IGRyYXdNaXhEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01peERhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdNaXhEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2NvbHVtbic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3Q29sdW1uRGF0YVBvaW50cyA9IGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNb3VudERhdGFQb2ludHMgPSBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01vdW50RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNb3VudERhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TW91bnREYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QmFyRGF0YVBvaW50cyA9IGRyYXdCYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeUF4aXNQb2ludHMgPSBfZHJhd0JhckRhdGFQb2ludHMueUF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCYXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueUF4aXNQb2ludHMgPSB5QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeUF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJlYSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QXJlYURhdGFQb2ludHMgPSBkcmF3QXJlYURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3QXJlYURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmluZyc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdwaWUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5waWVEYXRhID0gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncm9zZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3Um9zZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmFkYXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5yYWRhckRhdGEgPSBkcmF3UmFkYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2FyY2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmFyY2JhckRhdGEgPSBkcmF3QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdnYXVnZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmdhdWdlRGF0YSA9IGRyYXdHYXVnZURhdGFQb2ludHMoY2F0ZWdvcmllcywgc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY2FuZGxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDYW5kbGVEYXRhUG9pbnRzID0gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoc2VyaWVzTUEpIHtcclxuICAgICAgICAgICAgZHJhd0xlZ2VuZChzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVDaGFydHNFdmVudCgpIHtcclxuICB0aGlzLmV2ZW50cyA9IHt9O1xyXG59XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xyXG4gIHRoaXMuZXZlbnRzW3R5cGVdID0gdGhpcy5ldmVudHNbdHlwZV0gfHwgW107XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XHJcbn07XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSBbXTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uKCkge1xyXG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XHJcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG4gIH1cclxuICB2YXIgdHlwZSA9IGFyZ3NbMF07XHJcbiAgdmFyIHBhcmFtcyA9IGFyZ3Muc2xpY2UoMSk7XHJcbiAgaWYgKCEhdGhpcy5ldmVudHNbdHlwZV0pIHtcclxuICAgIHRoaXMuZXZlbnRzW3R5cGVdLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsaXN0ZW5lci5hcHBseShudWxsLCBwYXJhbXMpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCdbdUNoYXJ0c10gJytlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxudmFyIHVDaGFydHMgPSBmdW5jdGlvbiB1Q2hhcnRzKG9wdHMpIHtcclxuICBvcHRzLnBpeCA9IG9wdHMucGl4ZWxSYXRpbyA/IG9wdHMucGl4ZWxSYXRpbyA6IDE7XHJcbiAgb3B0cy5mb250U2l6ZSA9IG9wdHMuZm9udFNpemUgPyBvcHRzLmZvbnRTaXplIDogMTM7XHJcbiAgb3B0cy5mb250Q29sb3IgPSBvcHRzLmZvbnRDb2xvciA/IG9wdHMuZm9udENvbG9yIDogY29uZmlnLmZvbnRDb2xvcjtcclxuICBpZiAob3B0cy5iYWNrZ3JvdW5kID09IFwiXCIgfHwgb3B0cy5iYWNrZ3JvdW5kID09IFwibm9uZVwiKSB7XHJcbiAgICBvcHRzLmJhY2tncm91bmQgPSBcIiNGRkZGRkZcIlxyXG4gIH1cclxuICBvcHRzLnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnRpdGxlKTtcclxuICBvcHRzLnN1YnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnN1YnRpdGxlKTtcclxuICBvcHRzLmR1cmF0aW9uID0gb3B0cy5kdXJhdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAxMDAwO1xyXG4gIG9wdHMueUF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIGRhdGE6IFtdLFxyXG4gICAgc2hvd1RpdGxlOiBmYWxzZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIGdyaWRTZXQ6ICdudW1iZXInLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQgKiBvcHRzLnBpeCxcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgcGFkZGluZzogMTAsXHJcbiAgICBmb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueUF4aXMpO1xyXG4gIG9wdHMueEF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIHJvdGF0ZUxhYmVsOiBmYWxzZSxcclxuICAgIHJvdGF0ZUFuZ2xlOjQ1LFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBjYWxpYnJhdGlvbjpmYWxzZSxcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIHNjcm9sbEFsaWduOiAnbGVmdCcsXHJcbiAgICBib3VuZGFyeUdhcDogJ2NlbnRlcicsXHJcbiAgICBheGlzTGluZTogdHJ1ZSxcclxuICAgIGF4aXNMaW5lQ29sb3I6ICcjY2NjY2NjJ1xyXG4gIH0sIG9wdHMueEF4aXMpO1xyXG4gIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBvcHRzLnhBeGlzLnNjcm9sbEFsaWduO1xyXG4gIG9wdHMubGVnZW5kID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiB0cnVlLFxyXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgZmxvYXQ6ICdjZW50ZXInLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwKScsXHJcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBwYWRkaW5nOiA1LFxyXG4gICAgbWFyZ2luOiA1LFxyXG4gICAgaXRlbUdhcDogMTAsXHJcbiAgICBmb250U2l6ZTogb3B0cy5mb250U2l6ZSxcclxuICAgIGxpbmVIZWlnaHQ6IG9wdHMuZm9udFNpemUsXHJcbiAgICBmb250Q29sb3I6IG9wdHMuZm9udENvbG9yLFxyXG4gICAgZm9ybWF0dGVyOiB7fSxcclxuICAgIGhpZGRlbkNvbG9yOiAnI0NFQ0VDRSdcclxuICB9LCBvcHRzLmxlZ2VuZCk7XHJcbiAgb3B0cy5leHRyYSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYSk7XHJcbiAgb3B0cy5yb3RhdGUgPSBvcHRzLnJvdGF0ZSA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLmFuaW1hdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5jYW52YXMyZCA9IG9wdHMuY2FudmFzMmQgPyB0cnVlIDogZmFsc2U7XHJcbiAgXHJcbiAgbGV0IGNvbmZpZyQkMSA9IGFzc2lnbih7fSwgY29uZmlnKTtcclxuICBjb25maWckJDEuY29sb3IgPSBvcHRzLmNvbG9yID8gb3B0cy5jb2xvciA6IGNvbmZpZyQkMS5jb2xvcjtcclxuICBpZiAob3B0cy50eXBlID09ICdwaWUnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnBpZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncmluZycpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucmluZy5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncm9zZScpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucm9zZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuXHJcbiAgLy/lsY/luZXml4vovaxcclxuICBjb25maWckJDEucm90YXRlID0gb3B0cy5yb3RhdGU7XHJcbiAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICBsZXQgdGVtcFdpZHRoID0gb3B0cy53aWR0aDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gb3B0cy5oZWlnaHQ7XHJcbiAgICBvcHRzLndpZHRoID0gdGVtcEhlaWdodDtcclxuICAgIG9wdHMuaGVpZ2h0ID0gdGVtcFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgLy/pgILphY3pq5jliIblsY9cclxuICBvcHRzLnBhZGRpbmcgPSBvcHRzLnBhZGRpbmcgPyBvcHRzLnBhZGRpbmcgOiBjb25maWckJDEucGFkZGluZztcclxuICBjb25maWckJDEueUF4aXNXaWR0aCA9IGNvbmZpZy55QXhpc1dpZHRoICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ID0gY29uZmlnLnhBeGlzSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsICYmIG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ICs9IDYgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50aXRsZUZvbnRTaXplID0gY29uZmlnLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEuc3VidGl0bGVGb250U2l6ZSA9IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBQYWRkaW5nID0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBMaW5lSGVpZ2h0ID0gY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYoIW9wdHMuY29udGV4dCl7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1Q2hhcnRzXSDmnKrojrflj5bliLBjb250ZXh077yB5rOo5oSP77yadjIuMOeJiOacrOWQju+8jOmcgOimgeiHquihjOiOt+WPlmNhbnZhc+eahOe7mOWbvuS4iuS4i+aWh+W5tuS8oOWFpW9wdHMuY29udGV4dO+8gScpO1xyXG4gIH1cclxuICB0aGlzLmNvbnRleHQgPSBvcHRzLmNvbnRleHQ7XHJcbiAgaWYgKCF0aGlzLmNvbnRleHQuc2V0VGV4dEFsaWduKSB7XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0U3Ryb2tlU3R5bGUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0cm9rZVN0eWxlID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lV2lkdGggPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpbmVXaWR0aCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZUNhcCA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGluZUNhcCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0Rm9udFNpemUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvbnQgPSBlICsgXCJweCBzYW5zLXNlcmlmXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0RmlsbFN0eWxlID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxsU3R5bGUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldFRleHRBbGlnbiA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGV4dEFsaWduID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5kcmF3ID0gZnVuY3Rpb24oKSB7fVxyXG4gIH1cclxuICAvL+WFvOWuuU5WVUVzZXRMaW5lRGFzaFxyXG4gIGlmKCF0aGlzLmNvbnRleHQuc2V0TGluZURhc2gpe1xyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVEYXNoID0gZnVuY3Rpb24oZSkge31cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEgPSB7fTtcclxuICB0aGlzLnVldmVudCA9IG5ldyB1Q2hhcnRzRXZlbnQoKTtcclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICBzdGFydFRvdWNoWDogMCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gIHRoaXMuY29uZmlnID0gY29uZmlnJCQxO1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIGNvbmZpZyQkMSwgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnVwZGF0ZURhdGEgPSBmdW5jdGlvbigpIHtcclxuICBsZXQgZGF0YSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XHJcbiAgdGhpcy5vcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIGRhdGEpO1xyXG4gIHRoaXMub3B0cy51cGRhdGVEYXRhID0gdHJ1ZTtcclxuICBsZXQgc2Nyb2xsUG9zaXRpb24gPSBkYXRhLnNjcm9sbFBvc2l0aW9uIHx8ICdjdXJyZW50JztcclxuICBzd2l0Y2ggKHNjcm9sbFBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICdjdXJyZW50JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IDA7XHJcbiAgICAgIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICAgICAgc3RhcnRUb3VjaFg6IDAsXHJcbiAgICAgICAgZGlzdGFuY2U6IDAsXHJcbiAgICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLCB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICAgICAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gICAgICBsZXQgX2dldFhBeGlzUG9pbnRzMCA9IGdldFhBeGlzUG9pbnRzKHRoaXMub3B0cy5jYXRlZ29yaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnKSwgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgIHN0YXJ0WCA9IF9nZXRYQXhpc1BvaW50czAuc3RhcnRYLFxyXG4gICAgICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICAgICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gICAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLSB0b3RhbFdpZHRoO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS56b29tID0gZnVuY3Rpb24oKSB7XHJcbiAgdmFyIHZhbCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudDtcclxuICBpZiAodGhpcy5vcHRzLmVuYWJsZVNjcm9sbCAhPT0gdHJ1ZSkge1xyXG4gICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXSDor7flkK/nlKjmu5rliqjmnaHlkI7kvb/nlKgnKVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICAvL+W9k+WJjeWxj+W5leS4remXtOeCuVxyXG4gIGxldCBjZW50ZXJQb2ludCA9IE1hdGgucm91bmQoTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkgLyB0aGlzLm9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nKSArIE1hdGgucm91bmQodGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCAvIDIpO1xyXG4gIHRoaXMub3B0cy5hbmltYXRpb24gPSBmYWxzZTtcclxuICB0aGlzLm9wdHMueEF4aXMuaXRlbUNvdW50ID0gdmFsLml0ZW1Db3VudDtcclxuICAvL+mHjeaWsOiuoeeul3jovbTlgY/np7vot53nprtcclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLFxyXG4gICAgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICBsZXQgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksXHJcbiAgICB4QXhpc1BvaW50cyA9IF9nZXRYQXhpc1BvaW50czAueEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IF9nZXRYQXhpc1BvaW50czAuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNlbnRlckxlZnQgPSBlYWNoU3BhY2luZyAqIGNlbnRlclBvaW50O1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAvIDIgLSBjZW50ZXJMZWZ0O1xyXG4gIGlmIChvZmZzZXRMZWZ0ID4gMCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRMZWZ0IDwgTWF4TGVmdCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IE1heExlZnQ7XHJcbiAgfVxyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRvYnVsZVpvb20gPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29uc3QgdGNzID0gZS5jaGFuZ2VkVG91Y2hlcztcclxuICBpZiAodGNzLmxlbmd0aCA8IDIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0Y3MubGVuZ3RoOyBpKyspIHtcclxuICAgIHRjc1tpXS54ID0gdGNzW2ldLnggPyB0Y3NbaV0ueCA6IHRjc1tpXS5jbGllbnRYO1xyXG4gICAgdGNzW2ldLnkgPSB0Y3NbaV0ueSA/IHRjc1tpXS55IDogdGNzW2ldLmNsaWVudFk7XHJcbiAgfVxyXG4gIGNvbnN0IG50Y3MgPSBbZ2V0VG91Y2hlcyh0Y3NbMF0sIHRoaXMub3B0cywgZSksZ2V0VG91Y2hlcyh0Y3NbMV0sIHRoaXMub3B0cywgZSldOyBcclxuICBjb25zdCB4bGVuZ3RoID0gTWF0aC5hYnMobnRjc1swXS54IC0gbnRjc1sxXS54KTtcclxuICAvLyDorrDlvZXliJ3lp4vnmoTkuKTmjIfkuYvpl7TnmoTmlbDmja5cclxuICBpZighdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50KXtcclxuICAgIGxldCBjdHMwID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0Y3NbMF0ueCx5OnRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCArIDJ9XX07XHJcbiAgICBsZXQgY3RzMSA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGNzWzFdLngseTp0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggKyAyfV19O1xyXG4gICAgaWYodGhpcy5vcHRzLnJvdGF0ZSl7XHJcbiAgICAgIGN0czAgPSB7Y2hhbmdlZFRvdWNoZXM6W3t4OnRoaXMub3B0cy5oZWlnaHQgLyB0aGlzLm9wdHMucGl4IC0gdGhpcy5vcHRzLmFyZWFbMF0gLyB0aGlzLm9wdHMucGl4IC0gMix5OnRjc1swXS55fV19O1xyXG4gICAgICBjdHMxID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0aGlzLm9wdHMuaGVpZ2h0IC8gdGhpcy5vcHRzLnBpeCAtIHRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCAtIDIseTp0Y3NbMV0ueX1dfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MSA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMwKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MiA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMxKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDb3VudCA9IE1hdGguYWJzKG1vdmVDdXJyZW50MSAtIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSBtb3ZlQ291bnQ7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDEgPSBNYXRoLm1pbihtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDIgPSBNYXRoLm1heChtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBjdXJyZW50RWFjaFNwYWNpbmcgPSB4bGVuZ3RoIC8gdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50O1xyXG4gIGxldCBpdGVtQ291bnQgPSAodGhpcy5vcHRzLndpZHRoIC0gdGhpcy5vcHRzLmFyZWFbMV0gLSB0aGlzLm9wdHMuYXJlYVszXSkgLyBjdXJyZW50RWFjaFNwYWNpbmc7XHJcbiAgaXRlbUNvdW50ID0gaXRlbUNvdW50IDw9IDIgPyAyIDogaXRlbUNvdW50O1xyXG4gIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCA+PSB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggPyB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggOiBpdGVtQ291bnQ7XHJcbiAgdGhpcy5vcHRzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgPSBpdGVtQ291bnQ7XHJcbiAgLy8g6YeN5paw6K6h566X5rua5Yqo5p2h5YGP56e76Led56a7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjdXJyZW50TGVmdCA9IGVhY2hTcGFjaW5nICogdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQxO1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSAtY3VycmVudExlZnQrTWF0aC5taW4obnRjc1swXS54LG50Y3NbMV0ueCktdGhpcy5vcHRzLmFyZWFbM10tZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9mZnNldExlZnQgPiAwKSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gMDtcclxuICB9XHJcbiAgaWYgKG9mZnNldExlZnQgPCBNYXhMZWZ0KSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gTWF4TGVmdDtcclxuICB9XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldD0gb2Zmc2V0TGVmdDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWD0gMDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZT0wO1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufVxyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtb3VudCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgb3B0cy5fc2VyaWVzX1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIG9wdHMpIDogc2VyaWVzRGF0YS5uYW1lICsgJzogJyArIHNlcmllc0RhdGEuZGF0YSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHNbaW5kZXhdLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueCA9IF90b3VjaGVzJC54O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWl4Jykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0TWl4VG9vbFRpcERhdGEgPSBnZXRNaXhUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldE1peFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldE1peFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2NhbmRsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0Q2FuZGxlVG9vbFRpcERhdGEodGhpcy5vcHRzLnNlcmllc1swXS5kYXRhLCBzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLmV4dHJhLmNhbmRsZSwgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3Jvc2UnIHx8IHRoaXMub3B0cy50eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICd3b3JkJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCB0aGlzLm9wdHMuc2VyaWVzW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgdGhpcy5vcHRzKSA6IHNlcmllc0RhdGEubmFtZSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGhpcy5vcHRzLmNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgdGhpcy5vcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgICAgfTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKGRpc3RhbmNlKSB7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiBkaXN0YW5jZSxcclxuICAgIHN0YXJ0VG91Y2hYOiBkaXN0YW5jZSxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBsZXQgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBkaXN0YW5jZSxcclxuICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICB9KTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsU3RhcnQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBfdG91Y2hlcyQueDtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGwgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9PT0gMCkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbiAgbGV0IExpbWl0ID0gdGhpcy5vcHRzLnRvdWNoTW92ZUxpbWl0IHx8IDYwO1xyXG4gIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZTtcclxuICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyBMaW1pdCkpIHJldHVybjtcclxuICBpZiAodGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPT0gMCkgcmV0dXJuO1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdmFyIF90b3VjaGVzJCA9IGdldFRvdWNoZXModG91Y2hlcywgdGhpcy5vcHRzLCBlKTtcclxuICAgIHZhciBfZGlzdGFuY2U7XHJcbiAgICBfZGlzdGFuY2UgPSBfdG91Y2hlcyQueCAtIHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYO1xyXG4gICAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgdmFyIHZhbGlkRGlzdGFuY2UgPSBjYWxWYWxpZERpc3RhbmNlKHRoaXMsIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsIHRoaXMub3B0cy5jaGFydERhdGEsIHRoaXMuY29uZmlnLCB0aGlzLm9wdHMpO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSBfZGlzdGFuY2UgPSB2YWxpZERpc3RhbmNlIC0gY3VycmVudE9mZnNldDtcclxuICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgX3Njcm9sbERpc3RhbmNlXzogY3VycmVudE9mZnNldCArIF9kaXN0YW5jZSxcclxuICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgfSk7XHJcblx0XHR0aGlzLm9wdHMgPSBvcHRzO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgICByZXR1cm4gY3VycmVudE9mZnNldCArIF9kaXN0YW5jZTtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGxFbmQgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfc2Nyb2xsT3B0aW9uID0gdGhpcy5zY3JvbGxPcHRpb24sXHJcbiAgICAgIGN1cnJlbnRPZmZzZXQgPSBfc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQsXHJcbiAgICAgIGRpc3RhbmNlID0gX3Njcm9sbE9wdGlvbi5kaXN0YW5jZTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZSA9IDA7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSAwO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHVDaGFydHM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ /*!**************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n var date = new Date();\n date.setTime(timeStamp * 1000);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var h = date.getHours();\n h = h < 10 ? '0' + h : h;\n var minute = date.getMinutes();\n var second = date.getSeconds();\n minute = minute < 10 ? '0' + minute : minute;\n second = second < 10 ? '0' + second : second;\n if (returnType == 'full') {\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\n }\n if (returnType == 'y-m-d') {\n return y + '-' + m + '-' + d;\n }\n if (returnType == 'h:m') {\n return h + ':' + minute;\n }\n if (returnType == 'h:m:s') {\n return h + ':' + minute + ':' + second;\n }\n return [y, m, d, h, minute, second];\n};\nvar cfu = {\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\n \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n \"range\": [\"饼状图\", \"圆环图\", \"玫瑰图\", \"词云图\", \"漏斗图\", \"地图\", \"圆弧进度条\", \"折线图\", \"柱状图\", \"山峰图\", \"条状图\", \"区域图\", \"雷达图\", \"仪表盘\", \"K线图\", \"混合图\", \"时间轴折线\", \"时间轴区域\", \"散点图\", \"气泡图\", \"自定义类型\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\n \"categories\": [\"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n //instance为实例变量承载属性,不要删除\n \"instance\": {},\n //option为opts及eopts承载属性,不要删除\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"yAxisDemo1\": function yAxisDemo1(val, index, opts) {\n return val + '元';\n },\n \"yAxisDemo2\": function yAxisDemo2(val, index, opts) {\n return val.toFixed(2);\n },\n \"xAxisDemo1\": function xAxisDemo1(val, index, opts) {\n return val + '年';\n },\n \"xAxisDemo2\": function xAxisDemo2(val, index, opts) {\n return formatDateTime(val, 'h:m');\n },\n \"seriesDemo1\": function seriesDemo1(val, index, series, opts) {\n return val + '元';\n },\n \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n if (index == 0) {\n return '随便用' + item.data + '年';\n } else {\n return '其他我没改' + item.data + '天';\n }\n },\n \"pieDemo\": function pieDemo(val, index, series, opts) {\n if (index !== undefined) {\n return series[index].name + ':' + series[index].data + '元';\n }\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\n \"demotype\": {\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2\n }\n }\n },\n //下面是自定义配置,请添加项目所需的通用配置\n \"pie\": {\n \"type\": \"pie\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"extra\": {\n \"pie\": {\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"ring\": {\n \"type\": \"ring\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"rotate\": false,\n \"dataLabel\": false,\n \"legend\": {\n \"show\": false,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"title\": {\n \"name\": \"收益率\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"subtitle\": {\n \"name\": \"70%\",\n \"fontSize\": 25,\n \"color\": \"#7cb5ec\"\n },\n \"extra\": {\n \"ring\": {\n \"ringWidth\": 30,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"rose\": {\n \"type\": \"rose\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"legend\": {\n \"show\": true,\n \"position\": \"left\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"rose\": {\n \"type\": \"area\",\n \"minRadius\": 50,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": false,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"word\": {\n \"type\": \"word\",\n \"color\": color,\n \"extra\": {\n \"word\": {\n \"type\": \"normal\",\n \"autoColors\": false\n }\n }\n },\n \"funnel\": {\n \"type\": \"funnel\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"extra\": {\n \"funnel\": {\n \"activeOpacity\": 0.3,\n \"activeWidth\": 10,\n \"border\": true,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\",\n \"fillOpacity\": 1,\n \"labelAlign\": \"right\"\n }\n }\n },\n \"map\": {\n \"type\": \"map\",\n \"color\": color,\n \"padding\": [0, 0, 0, 0],\n \"dataLabel\": true,\n \"extra\": {\n \"map\": {\n \"border\": true,\n \"borderWidth\": 1,\n \"borderColor\": \"#666666\",\n \"fillOpacity\": 0.6,\n \"activeBorderColor\": \"#F04864\",\n \"activeFillColor\": \"#FACC14\",\n \"activeFillOpacity\": 1\n }\n }\n },\n \"arcbar\": {\n \"type\": \"arcbar\",\n \"color\": color,\n \"title\": {\n \"name\": \"百分比\",\n \"fontSize\": 25,\n \"color\": \"#00FF00\"\n },\n \"subtitle\": {\n \"name\": \"默认标题\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"extra\": {\n \"arcbar\": {\n \"type\": \"default\",\n \"width\": 12,\n \"backgroundColor\": \"#E9E9E9\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"gap\": 2\n }\n }\n },\n \"line\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"straight\",\n \"width\": 2\n }\n }\n },\n \"tline\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2\n }\n }\n },\n \"tarea\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"curve\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": true\n }\n }\n },\n \"column\": {\n \"type\": \"column\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"column\": {\n \"type\": \"group\",\n \"width\": 30,\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"mount\": {\n \"type\": \"mount\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"mount\": {\n \"type\": \"mount\",\n \"widthRatio\": 1.5\n }\n }\n },\n \"bar\": {\n \"type\": \"bar\",\n \"color\": color,\n \"padding\": [15, 30, 0, 5],\n \"xAxis\": {\n \"boundaryGap\": \"justify\",\n \"disableGrid\": false,\n \"min\": 0,\n \"axisLine\": false\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"bar\": {\n \"type\": \"group\",\n \"width\": 30,\n \"meterBorde\": 1,\n \"meterFillColor\": \"#FFFFFF\",\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"area\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"straight\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": false\n }\n }\n },\n \"radar\": {\n \"type\": \"radar\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"dataLabel\": false,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"radar\": {\n \"gridType\": \"radar\",\n \"gridColor\": \"#CCCCCC\",\n \"gridCount\": 3,\n \"opacity\": 0.2,\n \"max\": 200\n }\n }\n },\n \"gauge\": {\n \"type\": \"gauge\",\n \"color\": color,\n \"title\": {\n \"name\": \"66Km/H\",\n \"fontSize\": 25,\n \"color\": \"#2fc25b\",\n \"offsetY\": 50\n },\n \"subtitle\": {\n \"name\": \"实时速度\",\n \"fontSize\": 15,\n \"color\": \"#1890ff\",\n \"offsetY\": -50\n },\n \"extra\": {\n \"gauge\": {\n \"type\": \"default\",\n \"width\": 30,\n \"labelColor\": \"#666666\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"startNumber\": 0,\n \"endNumber\": 100,\n \"labelFormat\": \"\",\n \"splitLine\": {\n \"fixRadius\": 0,\n \"splitNumber\": 10,\n \"width\": 30,\n \"color\": \"#FFFFFF\",\n \"childNumber\": 5,\n \"childWidth\": 12\n },\n \"pointer\": {\n \"width\": 24,\n \"color\": \"auto\"\n }\n }\n }\n },\n \"candle\": {\n \"type\": \"candle\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"enableScroll\": true,\n \"enableMarkLine\": true,\n \"dataLabel\": false,\n \"xAxis\": {\n \"labelCount\": 4,\n \"itemCount\": 40,\n \"disableGrid\": true,\n \"gridColor\": \"#CCCCCC\",\n \"gridType\": \"solid\",\n \"dashLength\": 4,\n \"scrollShow\": true,\n \"scrollAlign\": \"left\",\n \"scrollColor\": \"#A6A6A6\",\n \"scrollBackgroundColor\": \"#EFEBEF\"\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"candle\": {\n \"color\": {\n \"upLine\": \"#f04864\",\n \"upFill\": \"#f04864\",\n \"downLine\": \"#2fc25b\",\n \"downFill\": \"#2fc25b\"\n },\n \"average\": {\n \"show\": true,\n \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n \"day\": [5, 10, 20],\n \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"]\n }\n },\n \"markLine\": {\n \"type\": \"dash\",\n \"dashLength\": 5,\n \"data\": [{\n \"value\": 2150,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }, {\n \"value\": 2350,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }]\n }\n }\n },\n \"mix\": {\n \"type\": \"mix\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"disabled\": false,\n \"disableGrid\": false,\n \"splitNumber\": 5,\n \"gridType\": \"dash\",\n \"dashLength\": 4,\n \"gridColor\": \"#CCCCCC\",\n \"padding\": 10,\n \"showTitle\": true,\n \"data\": []\n },\n \"legend\": {},\n \"extra\": {\n \"mix\": {\n \"column\": {\n \"width\": 20\n }\n }\n }\n },\n \"scatter\": {\n \"type\": \"scatter\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"dataLabel\": false,\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\"\n },\n \"legend\": {},\n \"extra\": {\n \"scatter\": {}\n }\n },\n \"bubble\": {\n \"type\": \"bubble\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0,\n \"max\": 250\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"data\": [{\n \"min\": 0,\n \"max\": 150\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"bubble\": {\n \"border\": 2,\n \"opacity\": 0.5\n }\n }\n }\n};\nvar _default = cfu;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwiaW5kZXgiLCJvcHRzIiwidG9GaXhlZCIsInNlcmllcyIsIml0ZW0iLCJjYXRlZ29yeSIsImRhdGEiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBTUEsS0FBSyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7O0FBRWpIO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjLENBQUlDLFNBQVMsRUFBRUMsVUFBVSxFQUFHO0VBQzlDLElBQUlDLElBQUksR0FBRyxJQUFJQyxJQUFJLEVBQUU7RUFDckJELElBQUksQ0FBQ0UsT0FBTyxDQUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDO0VBQzlCLElBQUlLLENBQUMsR0FBR0gsSUFBSSxDQUFDSSxXQUFXLEVBQUU7RUFDMUIsSUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQVEsRUFBRSxHQUFHLENBQUM7RUFDM0JELENBQUMsR0FBR0EsQ0FBQyxHQUFHLEVBQUUsR0FBSSxHQUFHLEdBQUdBLENBQUMsR0FBSUEsQ0FBQztFQUMxQixJQUFJRSxDQUFDLEdBQUdQLElBQUksQ0FBQ1EsT0FBTyxFQUFFO0VBQ3RCRCxDQUFDLEdBQUdBLENBQUMsR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFHQSxDQUFDLEdBQUlBLENBQUM7RUFDMUIsSUFBSUUsQ0FBQyxHQUFHVCxJQUFJLENBQUNVLFFBQVEsRUFBRTtFQUN2QkQsQ0FBQyxHQUFHQSxDQUFDLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBR0EsQ0FBQyxHQUFJQSxDQUFDO0VBQzFCLElBQUlFLE1BQU0sR0FBR1gsSUFBSSxDQUFDWSxVQUFVLEVBQUU7RUFDOUIsSUFBSUMsTUFBTSxHQUFHYixJQUFJLENBQUNjLFVBQVUsRUFBRTtFQUM5QkgsTUFBTSxHQUFHQSxNQUFNLEdBQUcsRUFBRSxHQUFJLEdBQUcsR0FBR0EsTUFBTSxHQUFJQSxNQUFNO0VBQzlDRSxNQUFNLEdBQUdBLE1BQU0sR0FBRyxFQUFFLEdBQUksR0FBRyxHQUFHQSxNQUFNLEdBQUlBLE1BQU07RUFDOUMsSUFBR2QsVUFBVSxJQUFJLE1BQU0sRUFBQztJQUFDLE9BQU9JLENBQUMsR0FBRyxHQUFHLEdBQUdFLENBQUMsR0FBRyxHQUFHLEdBQUdFLENBQUMsR0FBRyxHQUFHLEdBQUVFLENBQUMsR0FBRSxHQUFHLEdBQUdFLE1BQU0sR0FBRyxHQUFHLEdBQUdFLE1BQU07RUFBQztFQUM1RixJQUFHZCxVQUFVLElBQUksT0FBTyxFQUFDO0lBQUMsT0FBT0ksQ0FBQyxHQUFHLEdBQUcsR0FBR0UsQ0FBQyxHQUFHLEdBQUcsR0FBR0UsQ0FBQztFQUFDO0VBQ3ZELElBQUdSLFVBQVUsSUFBSSxLQUFLLEVBQUM7SUFBQyxPQUFRVSxDQUFDLEdBQUUsR0FBRyxHQUFHRSxNQUFNO0VBQUM7RUFDaEQsSUFBR1osVUFBVSxJQUFJLE9BQU8sRUFBQztJQUFDLE9BQVFVLENBQUMsR0FBRSxHQUFHLEdBQUdFLE1BQU0sR0FBRSxHQUFHLEdBQUdFLE1BQU07RUFBQztFQUNoRSxPQUFPLENBQUNWLENBQUMsRUFBRUUsQ0FBQyxFQUFFRSxDQUFDLEVBQUVFLENBQUMsRUFBRUUsTUFBTSxFQUFFRSxNQUFNLENBQUM7QUFDckMsQ0FBQztBQUVELElBQU1FLEdBQUcsR0FBRztFQUNWO0VBQ0QsTUFBTSxFQUFDLENBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxVQUFVLENBQUM7RUFDN0ssT0FBTyxFQUFDLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxPQUFPLENBQUM7RUFDN0k7RUFDQTtFQUNELFlBQVksRUFBQyxDQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLFVBQVUsQ0FBQztFQUM1RjtFQUNBLFVBQVUsRUFBQyxDQUFDLENBQUM7RUFDYjtFQUNBLFFBQVEsRUFBQyxDQUFDLENBQUM7RUFDWDtFQUNBLFdBQVcsRUFBQztJQUNWLFlBQVksRUFBQyxvQkFBU0MsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBQztNQUFDLE9BQU9GLEdBQUcsR0FBQyxHQUFHO0lBQUEsQ0FBQztJQUN2RCxZQUFZLEVBQUMsb0JBQVNBLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUM7TUFBQyxPQUFPRixHQUFHLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQzlELFlBQVksRUFBQyxvQkFBU0gsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBQztNQUFDLE9BQU9GLEdBQUcsR0FBQyxHQUFHO0lBQUMsQ0FBQztJQUN4RCxZQUFZLEVBQUMsb0JBQVNBLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUM7TUFBQyxPQUFPckIsY0FBYyxDQUFDbUIsR0FBRyxFQUFDLEtBQUssQ0FBQztJQUFBLENBQUM7SUFDekUsYUFBYSxFQUFDLHFCQUFTQSxHQUFHLEVBQUVDLEtBQUssRUFBRUcsTUFBTSxFQUFFRixJQUFJLEVBQUM7TUFBQyxPQUFPRixHQUFHLEdBQUMsR0FBRztJQUFBLENBQUM7SUFDaEUsY0FBYyxFQUFDLHNCQUFTSyxJQUFJLEVBQUVDLFFBQVEsRUFBRUwsS0FBSyxFQUFFQyxJQUFJLEVBQUM7TUFDbEQsSUFBR0QsS0FBSyxJQUFFLENBQUMsRUFBQztRQUNYLE9BQU8sS0FBSyxHQUFDSSxJQUFJLENBQUNFLElBQUksR0FBQyxHQUFHO01BQzNCLENBQUMsTUFBSTtRQUNKLE9BQU8sT0FBTyxHQUFDRixJQUFJLENBQUNFLElBQUksR0FBQyxHQUFHO01BQzdCO0lBQ0YsQ0FBQztJQUNELFNBQVMsRUFBQyxpQkFBU1AsR0FBRyxFQUFFQyxLQUFLLEVBQUVHLE1BQU0sRUFBRUYsSUFBSSxFQUFDO01BQzFDLElBQUdELEtBQUssS0FBS08sU0FBUyxFQUFDO1FBQ3JCLE9BQU9KLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDLENBQUNRLElBQUksR0FBQyxHQUFHLEdBQUNMLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDLENBQUNNLElBQUksR0FBQyxHQUFHO01BQ3REO0lBQ0Y7RUFDRixDQUFDO0VBQ0Q7RUFDQSxVQUFVLEVBQUM7SUFDVDtJQUNBLE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFM0IsS0FBSztJQUNkLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztJQUN2QixPQUFPLEVBQUU7TUFDUCxhQUFhLEVBQUU7SUFDakIsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNQLFVBQVUsRUFBRSxNQUFNO01BQ2xCLFlBQVksRUFBRTtJQUNoQixDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQ1YsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLE1BQU0sRUFBRTtRQUNQLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFO01BQ1Y7SUFDRDtFQUNGLENBQUM7RUFDRDtFQUNELEtBQUssRUFBQztJQUNMLE1BQU0sRUFBRSxLQUFLO0lBQ1gsT0FBTyxFQUFFQSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNwQixPQUFPLEVBQUU7TUFDUixLQUFLLEVBQUU7UUFDTixlQUFlLEVBQUUsR0FBRztRQUNwQixjQUFjLEVBQUUsRUFBRTtRQUNsQixhQUFhLEVBQUUsQ0FBQztRQUNoQixZQUFZLEVBQUUsRUFBRTtRQUNoQixRQUFRLEVBQUUsSUFBSTtRQUNkLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGFBQWEsRUFBRTtNQUNoQjtJQUNEO0VBQ0QsQ0FBQztFQUNELE1BQU0sRUFBQztJQUNOLE1BQU0sRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFQSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNwQixRQUFRLEVBQUUsS0FBSztJQUNmLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFFBQVEsRUFBRTtNQUNULE1BQU0sRUFBRSxLQUFLO01BQ2IsVUFBVSxFQUFFLE9BQU87TUFDaEIsWUFBWSxFQUFFO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUUsS0FBSztNQUNiLFVBQVUsRUFBRSxFQUFFO01BQ2QsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUNELFVBQVUsRUFBRTtNQUNYLE1BQU0sRUFBRSxLQUFLO01BQ2IsVUFBVSxFQUFFLEVBQUU7TUFDZCxPQUFPLEVBQUU7SUFDVixDQUFDO0lBQ0QsT0FBTyxFQUFFO01BQ1IsTUFBTSxFQUFFO1FBQ1AsV0FBVyxFQUFDLEVBQUU7UUFDZCxlQUFlLEVBQUUsR0FBRztRQUNwQixjQUFjLEVBQUUsRUFBRTtRQUNsQixhQUFhLEVBQUUsQ0FBQztRQUNoQixZQUFZLEVBQUUsRUFBRTtRQUNoQixRQUFRLEVBQUUsSUFBSTtRQUNkLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGFBQWEsRUFBRTtNQUNoQjtJQUNEO0VBQ0QsQ0FBQztFQUNELE1BQU0sRUFBQztJQUNOLE1BQU0sRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFQSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNwQixRQUFRLEVBQUU7TUFDVCxNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSxNQUFNO01BQ2YsWUFBWSxFQUFFO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7UUFDUCxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxFQUFFO1FBQ2YsZUFBZSxFQUFFLEdBQUc7UUFDcEIsY0FBYyxFQUFFLEVBQUU7UUFDbEIsYUFBYSxFQUFFLENBQUM7UUFDaEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsUUFBUSxFQUFFLEtBQUs7UUFDZixhQUFhLEVBQUUsQ0FBQztRQUNoQixhQUFhLEVBQUU7TUFDaEI7SUFDRDtFQUNELENBQUM7RUFDRCxNQUFNLEVBQUM7SUFDTixNQUFNLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRUEsS0FBSztJQUNoQixPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7UUFDUCxNQUFNLEVBQUUsUUFBUTtRQUNoQixZQUFZLEVBQUU7TUFDZjtJQUNEO0VBQ0QsQ0FBQztFQUNELFFBQVEsRUFBQztJQUNSLE1BQU0sRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFQSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztJQUN2QixPQUFPLEVBQUU7TUFDUixRQUFRLEVBQUU7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixhQUFhLEVBQUUsRUFBRTtRQUNqQixRQUFRLEVBQUUsSUFBSTtRQUNkLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFlBQVksRUFBRTtNQUNmO0lBQ0Q7RUFDRCxDQUFDO0VBQ0QsS0FBSyxFQUFDO0lBQ0wsTUFBTSxFQUFFLEtBQUs7SUFDWCxPQUFPLEVBQUVBLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ25CLE9BQU8sRUFBRTtNQUNSLEtBQUssRUFBRTtRQUNOLFFBQVEsRUFBRSxJQUFJO1FBQ2QsYUFBYSxFQUFFLENBQUM7UUFDaEIsYUFBYSxFQUFFLFNBQVM7UUFDeEIsYUFBYSxFQUFFLEdBQUc7UUFDbEIsbUJBQW1CLEVBQUUsU0FBUztRQUM5QixpQkFBaUIsRUFBRSxTQUFTO1FBQzVCLG1CQUFtQixFQUFFO01BQ3RCO0lBQ0Q7RUFDRCxDQUFDO0VBQ0QsUUFBUSxFQUFDO0lBQ1IsTUFBTSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUVBLEtBQUs7SUFDaEIsT0FBTyxFQUFFO01BQ1IsTUFBTSxFQUFFLEtBQUs7TUFDYixVQUFVLEVBQUUsRUFBRTtNQUNkLE9BQU8sRUFBRTtJQUNWLENBQUM7SUFDRCxVQUFVLEVBQUU7TUFDWCxNQUFNLEVBQUUsTUFBTTtNQUNkLFVBQVUsRUFBRSxFQUFFO01BQ2QsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLFFBQVEsRUFBRTtRQUNULE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsaUJBQWlCLEVBQUUsU0FBUztRQUM1QixZQUFZLEVBQUUsSUFBSTtRQUNsQixVQUFVLEVBQUUsSUFBSTtRQUNoQixLQUFLLEVBQUU7TUFDUjtJQUNEO0VBQ0QsQ0FBQztFQUNELE1BQU0sRUFBQztJQUNOLE1BQU0sRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFQSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztJQUN2QixPQUFPLEVBQUU7TUFDTCxhQUFhLEVBQUU7SUFDbkIsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNMLFVBQVUsRUFBRSxNQUFNO01BQ2xCLFlBQVksRUFBRTtJQUNsQixDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQ1YsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLE1BQU0sRUFBRTtRQUNQLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE9BQU8sRUFBRTtNQUNWO0lBQ0Q7RUFDRCxDQUFDO0VBQ0EsT0FBTyxFQUFDO0lBQ1AsTUFBTSxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUVBLEtBQUs7SUFDZixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUM7SUFDdkIsT0FBTyxFQUFFO01BQ04sYUFBYSxFQUFFLEtBQUs7TUFDcEIsYUFBYSxFQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDTixVQUFVLEVBQUUsTUFBTTtNQUNsQixZQUFZLEVBQUUsQ0FBQztNQUNmLE1BQU0sRUFBQyxDQUNMO1FBQ0UsS0FBSyxFQUFDLENBQUM7UUFDUCxLQUFLLEVBQUM7TUFDUixDQUFDO0lBRU4sQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7UUFDUCxNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRTtNQUNWO0lBQ0Q7RUFDRCxDQUFDO0VBQ0QsT0FBTyxFQUFDO0lBQ1AsTUFBTSxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUVBLEtBQUs7SUFDZixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUM7SUFDdkIsT0FBTyxFQUFFO01BQ04sYUFBYSxFQUFFLElBQUk7TUFDbkIsYUFBYSxFQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDTixVQUFVLEVBQUUsTUFBTTtNQUNsQixZQUFZLEVBQUUsQ0FBQztNQUNmLE1BQU0sRUFBQyxDQUNMO1FBQ0UsS0FBSyxFQUFDLENBQUM7UUFDUCxLQUFLLEVBQUM7TUFDUixDQUFDO0lBRU4sQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7UUFDUCxNQUFNLEVBQUUsT0FBTztRQUNmLFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLElBQUk7UUFDZixPQUFPLEVBQUUsQ0FBQztRQUNWLFVBQVUsRUFBRTtNQUNiO0lBQ0Q7RUFDRCxDQUFDO0VBQ0YsUUFBUSxFQUFDO0lBQ1IsTUFBTSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUVBLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sRUFBRTtNQUNMLGFBQWEsRUFBRTtJQUNuQixDQUFDO0lBQ0QsT0FBTyxFQUFFO01BQ0wsTUFBTSxFQUFDLENBQUM7UUFBQyxLQUFLLEVBQUM7TUFBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxRQUFRLEVBQUUsQ0FDVixDQUFDO0lBQ0QsT0FBTyxFQUFFO01BQ1IsUUFBUSxFQUFFO1FBQ1QsTUFBTSxFQUFFLE9BQU87UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGlCQUFpQixFQUFFO01BQ3BCO0lBQ0Q7RUFDRCxDQUFDO0VBQ0EsT0FBTyxFQUFDO0lBQ1AsTUFBTSxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUVBLEtBQUs7SUFDZixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxFQUFFO01BQ04sYUFBYSxFQUFFO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDTixNQUFNLEVBQUMsQ0FBQztRQUFDLEtBQUssRUFBQztNQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixPQUFPLEVBQUU7UUFDUixNQUFNLEVBQUUsT0FBTztRQUNmLFlBQVksRUFBRTtNQUNmO0lBQ0Q7RUFDRCxDQUFDO0VBQ0QsS0FBSyxFQUFDO0lBQ0wsTUFBTSxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUVBLEtBQUs7SUFDZixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxFQUFFO01BQ04sYUFBYSxFQUFDLFNBQVM7TUFDdkIsYUFBYSxFQUFDLEtBQUs7TUFDbkIsS0FBSyxFQUFDLENBQUM7TUFDUCxVQUFVLEVBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQ1QsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixLQUFLLEVBQUU7UUFDTixNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRSxFQUFFO1FBQ1gsWUFBWSxFQUFFLENBQUM7UUFDZixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGlCQUFpQixFQUFFO01BQ3BCO0lBQ0Q7RUFDRCxDQUFDO0VBQ0YsTUFBTSxFQUFDO0lBQ04sTUFBTSxFQUFFLE1BQU07SUFDZCxPQUFPLEVBQUVBLEtBQUs7SUFDZCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUM7SUFDdkIsT0FBTyxFQUFFO01BQ0wsYUFBYSxFQUFFO0lBQ25CLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDTCxVQUFVLEVBQUUsTUFBTTtNQUNsQixZQUFZLEVBQUU7SUFDbEIsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7UUFDUCxNQUFNLEVBQUUsVUFBVTtRQUNsQixTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsT0FBTyxFQUFFLENBQUM7UUFDVixVQUFVLEVBQUU7TUFDYjtJQUNEO0VBQ0QsQ0FBQztFQUNELE9BQU8sRUFBQztJQUNQLE1BQU0sRUFBRSxPQUFPO0lBQ2YsT0FBTyxFQUFFQSxLQUFLO0lBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxLQUFLO0lBQ3BCLFFBQVEsRUFBRTtNQUNULE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLE9BQU87TUFDaEIsWUFBWSxFQUFFO0lBQ2xCLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixPQUFPLEVBQUU7UUFDUixVQUFVLEVBQUUsT0FBTztRQUNuQixXQUFXLEVBQUUsU0FBUztRQUN0QixXQUFXLEVBQUUsQ0FBQztRQUNkLFNBQVMsRUFBRSxHQUFHO1FBQ2QsS0FBSyxFQUFFO01BQ1I7SUFDRDtFQUNELENBQUM7RUFDRCxPQUFPLEVBQUM7SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLE9BQU8sRUFBRUEsS0FBSztJQUNkLE9BQU8sRUFBRTtNQUNSLE1BQU0sRUFBRSxRQUFRO01BQ2hCLFVBQVUsRUFBRSxFQUFFO01BQ2QsT0FBTyxFQUFFLFNBQVM7TUFDbEIsU0FBUyxFQUFFO0lBQ1osQ0FBQztJQUNELFVBQVUsRUFBRTtNQUNYLE1BQU0sRUFBRSxNQUFNO01BQ2QsVUFBVSxFQUFFLEVBQUU7TUFDZCxPQUFPLEVBQUUsU0FBUztNQUNsQixTQUFTLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixPQUFPLEVBQUU7UUFDUixNQUFNLEVBQUUsU0FBUztRQUNqQixPQUFPLEVBQUUsRUFBRTtRQUNYLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFdBQVcsRUFBRTtVQUNaLFdBQVcsRUFBRSxDQUFDO1VBQ2QsYUFBYSxFQUFFLEVBQUU7VUFDakIsT0FBTyxFQUFFLEVBQUU7VUFDWCxPQUFPLEVBQUUsU0FBUztVQUNsQixhQUFhLEVBQUUsQ0FBQztVQUNoQixZQUFZLEVBQUU7UUFDZixDQUFDO1FBQ0QsU0FBUyxFQUFFO1VBQ1YsT0FBTyxFQUFFLEVBQUU7VUFDWCxPQUFPLEVBQUU7UUFDVjtNQUNEO0lBQ0Q7RUFDRCxDQUFDO0VBQ0QsUUFBUSxFQUFDO0lBQ1IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFQSxLQUFLO0lBQ2QsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDO0lBQ3ZCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsT0FBTyxFQUFFO01BQ1IsWUFBWSxFQUFFLENBQUM7TUFDZixXQUFXLEVBQUUsRUFBRTtNQUNmLGFBQWEsRUFBRSxJQUFJO01BQ25CLFdBQVcsRUFBRSxTQUFTO01BQ3RCLFVBQVUsRUFBRSxPQUFPO01BQ25CLFlBQVksRUFBRSxDQUFDO01BQ2YsWUFBWSxFQUFFLElBQUk7TUFDbEIsYUFBYSxFQUFFLE1BQU07TUFDckIsYUFBYSxFQUFFLFNBQVM7TUFDeEIsdUJBQXVCLEVBQUU7SUFDMUIsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUNULENBQUM7SUFDRCxRQUFRLEVBQUUsQ0FDVixDQUFDO0lBQ0QsT0FBTyxFQUFFO01BQ1IsUUFBUSxFQUFFO1FBQ1QsT0FBTyxFQUFFO1VBQ1IsUUFBUSxFQUFFLFNBQVM7VUFDbkIsUUFBUSxFQUFFLFNBQVM7VUFDbkIsVUFBVSxFQUFFLFNBQVM7VUFDckIsVUFBVSxFQUFFO1FBQ2IsQ0FBQztRQUNELFNBQVMsRUFBRTtVQUNWLE1BQU0sRUFBRSxJQUFJO1VBQ1osTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxNQUFNLENBQUM7VUFDN0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUM7VUFDaEIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTO1FBQ3hDO01BQ0QsQ0FBQztNQUNELFVBQVUsRUFBRTtRQUNYLE1BQU0sRUFBRSxNQUFNO1FBQ2QsWUFBWSxFQUFFLENBQUM7UUFDZixNQUFNLEVBQUUsQ0FDUDtVQUNDLE9BQU8sRUFBRSxJQUFJO1VBQ2IsV0FBVyxFQUFFLFNBQVM7VUFDdEIsV0FBVyxFQUFFO1FBQ2QsQ0FBQyxFQUNEO1VBQ0MsT0FBTyxFQUFFLElBQUk7VUFDYixXQUFXLEVBQUUsU0FBUztVQUN0QixXQUFXLEVBQUU7UUFDZCxDQUFDO01BRUg7SUFDRDtFQUNELENBQUM7RUFDRCxLQUFLLEVBQUM7SUFDTCxNQUFNLEVBQUUsS0FBSztJQUNiLE9BQU8sRUFBRUEsS0FBSztJQUNkLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztJQUN2QixPQUFPLEVBQUU7TUFDTCxhQUFhLEVBQUU7SUFDbkIsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLFVBQVUsRUFBRSxLQUFLO01BQ2pCLGFBQWEsRUFBRSxLQUFLO01BQ3BCLGFBQWEsRUFBRSxDQUFDO01BQ2hCLFVBQVUsRUFBRSxNQUFNO01BQ2xCLFlBQVksRUFBRSxDQUFDO01BQ2YsV0FBVyxFQUFFLFNBQVM7TUFDdEIsU0FBUyxFQUFFLEVBQUU7TUFDYixXQUFXLEVBQUUsSUFBSTtNQUNqQixNQUFNLEVBQUU7SUFDVCxDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQ1YsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLEtBQUssRUFBRTtRQUNOLFFBQVEsRUFBRTtVQUNULE9BQU8sRUFBRTtRQUNWO01BQ0Q7SUFDRDtFQUNELENBQUM7RUFDRCxTQUFTLEVBQUM7SUFDVCxNQUFNLEVBQUUsU0FBUztJQUNqQixPQUFPLEVBQUNBLEtBQUs7SUFDYixTQUFTLEVBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUM7SUFDcEIsV0FBVyxFQUFDLEtBQUs7SUFDakIsT0FBTyxFQUFFO01BQ1AsYUFBYSxFQUFFLEtBQUs7TUFDcEIsVUFBVSxFQUFDLE1BQU07TUFDakIsYUFBYSxFQUFDLENBQUM7TUFDZixhQUFhLEVBQUMsU0FBUztNQUN2QixLQUFLLEVBQUM7SUFDUixDQUFDO0lBQ0QsT0FBTyxFQUFFO01BQ1AsYUFBYSxFQUFFLEtBQUs7TUFDcEIsVUFBVSxFQUFDO0lBQ2IsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixTQUFTLEVBQUUsQ0FDWDtJQUNEO0VBQ0gsQ0FBQztFQUNELFFBQVEsRUFBQztJQUNSLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBQ0EsS0FBSztJQUNiLFNBQVMsRUFBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQztJQUNwQixPQUFPLEVBQUU7TUFDUCxhQUFhLEVBQUUsS0FBSztNQUNwQixVQUFVLEVBQUMsTUFBTTtNQUNqQixhQUFhLEVBQUMsQ0FBQztNQUNmLGFBQWEsRUFBQyxTQUFTO01BQ3ZCLEtBQUssRUFBQyxDQUFDO01BQ1AsS0FBSyxFQUFDO0lBQ1IsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNQLGFBQWEsRUFBRSxLQUFLO01BQ3BCLFVBQVUsRUFBQyxNQUFNO01BQ2pCLE1BQU0sRUFBQyxDQUFDO1FBQ04sS0FBSyxFQUFDLENBQUM7UUFDUCxLQUFLLEVBQUM7TUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUNWLENBQUM7SUFDRCxPQUFPLEVBQUU7TUFDUixRQUFRLEVBQUU7UUFDUCxRQUFRLEVBQUMsQ0FBQztRQUNWLFNBQVMsRUFBRTtNQUNkO0lBQ0Q7RUFDSDtBQUNELENBQUM7QUFBQSxlQUVjbUIsR0FBRztBQUFBIiwiZmlsZSI6Ijk1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogdUNoYXJ0c8KuXHJcbiAqIOmrmOaAp+iDvei3qOW5s+WPsOWbvuihqOW6k++8jOaUr+aMgUg144CBQVBQ44CB5bCP56iL5bqP77yI5b6u5L+hL+aUr+S7mOWunS/nmb7luqYv5aS05p2hL1FRLzM2MO+8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7Crueni+S6kSBodHRwczovL3d3dy51Y2hhcnRzLmNuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkICggaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIClcclxuICog5aSN5Yi25L2/55So6K+35L+d55WZ5pys5q615rOo6YeK77yM5oSf6LCi5pSv5oyB5byA5rqQ77yBXHJcbiAqIFxyXG4gKiB1Q2hhcnRzwq7lrpjmlrnnvZHnq5lcclxuICogaHR0cHM6Ly93d3cudUNoYXJ0cy5jblxyXG4gKiBcclxuICog5byA5rqQ5Zyw5Z2AOlxyXG4gKiBodHRwczovL2dpdGVlLmNvbS91Q2hhcnRzL3VDaGFydHNcclxuICogXHJcbiAqIHVuaS1hcHDmj5Lku7bluILlnLrlnLDlnYDvvJpcclxuICogaHR0cDovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yNzFcclxuICogXHJcbiAqL1xyXG5cclxuLy8g5Li76aKY6aKc6Imy6YWN572u77ya5aaC5q+P5Liq5Zu+6KGo57G75Z6L6ZyA6KaB5LiN5ZCM5Li76aKY77yM6K+35Zyo5a+55bqU5Zu+6KGo57G75Z6L5LiK5pu05pS5Y29sb3LlsZ7mgKdcclxuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XHJcblxyXG4vL+S6i+S7tui9rOaNouWHveaVsO+8jOS4u+imgeeUqOS9nOagvOW8j+WMlnjovbTkuLrml7bpl7TovbTvvIzmoLnmja7pnIDmsYLoh6rooYzkv67mlLlcclxuY29uc3QgZm9ybWF0RGF0ZVRpbWUgPSAodGltZVN0YW1wLCByZXR1cm5UeXBlKT0+e1xyXG4gIHZhciBkYXRlID0gbmV3IERhdGUoKTtcclxuICBkYXRlLnNldFRpbWUodGltZVN0YW1wICogMTAwMCk7XHJcbiAgdmFyIHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgdmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gIG0gPSBtIDwgMTAgPyAoJzAnICsgbSkgOiBtO1xyXG4gIHZhciBkID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgZCA9IGQgPCAxMCA/ICgnMCcgKyBkKSA6IGQ7XHJcbiAgdmFyIGggPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgaCA9IGggPCAxMCA/ICgnMCcgKyBoKSA6IGg7XHJcbiAgdmFyIG1pbnV0ZSA9IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gIHZhciBzZWNvbmQgPSBkYXRlLmdldFNlY29uZHMoKTtcclxuICBtaW51dGUgPSBtaW51dGUgPCAxMCA/ICgnMCcgKyBtaW51dGUpIDogbWludXRlO1xyXG4gIHNlY29uZCA9IHNlY29uZCA8IDEwID8gKCcwJyArIHNlY29uZCkgOiBzZWNvbmQ7XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnZnVsbCcpe3JldHVybiB5ICsgJy0nICsgbSArICctJyArIGQgKyAnICcrIGggKyc6JyArIG1pbnV0ZSArICc6JyArIHNlY29uZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAneS1tLWQnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkO31cclxuICBpZihyZXR1cm5UeXBlID09ICdoOm0nKXtyZXR1cm4gIGggKyc6JyArIG1pbnV0ZTt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptOnMnKXtyZXR1cm4gIGggKyc6JyArIG1pbnV0ZSArJzonICsgc2Vjb25kO31cclxuICByZXR1cm4gW3ksIG0sIGQsIGgsIG1pbnV0ZSwgc2Vjb25kXTtcclxufVxyXG5cclxuY29uc3QgY2Z1ID0ge1xyXG4gIC8vZGVtb3R5cGXkuLroh6rlrprkuYnlm77ooajnsbvlnovvvIzkuIDoiKzkuI3pnIDopoHoh6rlrprkuYnlm77ooajnsbvlnovvvIzlj6rpnIDopoHmlLnmoLnoioLngrnkuIrlr7nlupTnmoTnsbvlnovljbPlj69cclxuXHRcInR5cGVcIjpbXCJwaWVcIixcInJpbmdcIixcInJvc2VcIixcIndvcmRcIixcImZ1bm5lbFwiLFwibWFwXCIsXCJhcmNiYXJcIixcImxpbmVcIixcImNvbHVtblwiLFwibW91bnRcIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwidGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIixcImRlbW90eXBlXCJdLFxyXG5cdFwicmFuZ2VcIjpbXCLppbznirblm75cIixcIuWchueOr+WbvlwiLFwi546r55Gw5Zu+XCIsXCLor43kupHlm75cIixcIua8j+aWl+WbvlwiLFwi5Zyw5Zu+XCIsXCLlnIblvKfov5vluqbmnaFcIixcIuaKmOe6v+WbvlwiLFwi5p+x54q25Zu+XCIsXCLlsbHls7Dlm75cIixcIuadoeeKtuWbvlwiLFwi5Yy65Z+f5Zu+XCIsXCLpm7fovr7lm75cIixcIuS7quihqOebmFwiLFwiS+e6v+WbvlwiLFwi5re35ZCI5Zu+XCIsXCLml7bpl7TovbTmipjnur9cIixcIuaXtumXtOi9tOWMuuWfn1wiLFwi5pWj54K55Zu+XCIsXCLmsJTms6Hlm75cIixcIuiHquWumuS5ieexu+Wei1wiXSxcclxuICAvL+WinuWKoOiHquWumuS5ieWbvuihqOexu+Wei++8jOWmguaenOmcgOimgWNhdGVnb3JpZXPvvIzor7flnKjov5nph4zliqDlhaXmgqjnmoTlm77ooajnsbvlnovvvIzkvovlpoLmnIDlkI7nmoRcImRlbW90eXBlXCJcclxuICAvL+iHquWumuS5ieexu+Wei+aXtumcgOimgeazqOaEj1widGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIuetieaXtumXtOi9tO+8iOefoumHj3jovbTvvInnsbvlm77ooajvvIzmsqHmnIljYXRlZ29yaWVz77yM5LiN6ZyA6KaB5Yqg5YWlY2F0ZWdvcmllc1xyXG5cdFwiY2F0ZWdvcmllc1wiOltcImxpbmVcIixcImNvbHVtblwiLFwibW91bnRcIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwiaW5zdGFuY2VcIjp7fSxcclxuICAvL29wdGlvbuS4um9wdHPlj4plb3B0c+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwib3B0aW9uXCI6e30sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYlmb3JtYXTphY3nva7vvIzlm6DpmaRINeerr+WklueahOWFtuS7luerr+aXoOazlemAmui/h3Byb3Bz5Lyg6YCS5Ye95pWw77yM5Y+q6IO96YCa6L+H5q2k5bGe5oCn5a+55bqU5LiL5qCH55qE5pa55byP5p2l5pu/5o2iXHJcbiAgXCJmb3JtYXR0ZXJcIjp7XHJcbiAgICBcInlBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsKyflhYMnfSxcclxuICAgIFwieUF4aXNEZW1vMlwiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIG9wdHMpe3JldHVybiB2YWwudG9GaXhlZCgyKX0sXHJcbiAgICBcInhBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsKyflubQnO30sXHJcbiAgICBcInhBeGlzRGVtbzJcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gZm9ybWF0RGF0ZVRpbWUodmFsLCdoOm0nKX0sXHJcbiAgICBcInNlcmllc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgc2VyaWVzLCBvcHRzKXtyZXR1cm4gdmFsKyflhYMnfSxcclxuICAgIFwidG9vbHRpcERlbW8xXCI6ZnVuY3Rpb24oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKXtcclxuICAgICAgaWYoaW5kZXg9PTApe1xyXG4gICAgICBcdHJldHVybiAn6ZqP5L6/55SoJytpdGVtLmRhdGErJ+W5tCdcclxuICAgICAgfWVsc2V7XHJcbiAgICAgIFx0cmV0dXJuICflhbbku5bmiJHmsqHmlLknK2l0ZW0uZGF0YSsn5aSpJ1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgXCJwaWVEZW1vXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgc2VyaWVzLCBvcHRzKXtcclxuICAgICAgaWYoaW5kZXggIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgcmV0dXJuIHNlcmllc1tpbmRleF0ubmFtZSsn77yaJytzZXJpZXNbaW5kZXhdLmRhdGErJ+WFgydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIC8v6L+Z6YeM5ryU56S65LqG6Ieq5a6a5LmJ5oKo55qE5Zu+6KGo57G75Z6L55qEb3B0aW9u77yM5Y+v5Lul6ZqP5oSP5ZG95ZCN77yM5LmL5ZCO5Zyo57uE5Lu25LiKIHR5cGU9XCJkZW1vdHlwZVwiIOWQju+8jOe7hOS7tuS8muiwg+eUqOi/meS4quiKseaLrOWPt+mHjOeahG9wdGlvbu+8jOWmguaenOe7hOS7tuS4iui/mOWtmOWcqG9wdHPlj4LmlbDvvIzkvJrlsIZkZW1vdHlwZeS4jm9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcclxuICBcImRlbW90eXBlXCI6e1xyXG4gICAgLy/miJHov5nph4zmiormm7Lnur/lm77lvZPlgZrkuoboh6rlrprkuYnlm77ooajnsbvlnovvvIzmgqjlj6/ku6XmoLnmja7pnIDopoHpmo/mhI/mjIflrprnsbvlnovmiJbphY3nva5cclxuICAgIFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgICBcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICB9LFxyXG4gICAgXCJsZWdlbmRcIjoge1xyXG4gICAgfSxcclxuICAgIFwiZXh0cmFcIjoge1xyXG4gICAgXHRcImxpbmVcIjoge1xyXG4gICAgXHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgICBcdFx0XCJ3aWR0aFwiOiAyXHJcbiAgICBcdH0sXHJcbiAgICB9XHJcbiAgfSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwicGllXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwicGllXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInBpZVwiOiB7XHJcblx0XHRcdFx0XCJhY3RpdmVPcGFjaXR5XCI6IDAuNSxcclxuXHRcdFx0XHRcImFjdGl2ZVJhZGl1c1wiOiAxMCxcclxuXHRcdFx0XHRcIm9mZnNldEFuZ2xlXCI6IDAsXHJcblx0XHRcdFx0XCJsYWJlbFdpZHRoXCI6IDE1LFxyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IHRydWUsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAzLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmluZ1wiOntcclxuXHRcdFwidHlwZVwiOiBcInJpbmdcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJyb3RhdGVcIjogZmFsc2UsXHJcblx0XHRcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHRcInBvc2l0aW9uXCI6IFwicmlnaHRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCLmlLbnm4rnjodcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAxNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiM2NjY2NjZcIlxyXG5cdFx0fSxcclxuXHRcdFwic3VidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI3MCVcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiM3Y2I1ZWNcIlxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJpbmdcIjoge1xyXG5cdFx0XHRcdFwicmluZ1dpZHRoXCI6MzAsXHJcblx0XHRcdFx0XCJhY3RpdmVPcGFjaXR5XCI6IDAuNSxcclxuXHRcdFx0XHRcImFjdGl2ZVJhZGl1c1wiOiAxMCxcclxuXHRcdFx0XHRcIm9mZnNldEFuZ2xlXCI6IDAsXHJcblx0XHRcdFx0XCJsYWJlbFdpZHRoXCI6IDE1LFxyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IHRydWUsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAzLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInJvc2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyb3NlXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJsZWZ0XCIsXHJcbiAgICAgIFwibGluZUhlaWdodFwiOiAyNSxcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJyb3NlXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcdFx0XCJtaW5SYWRpdXNcIjogNTAsXHJcblx0XHRcdFx0XCJhY3RpdmVPcGFjaXR5XCI6IDAuNSxcclxuXHRcdFx0XHRcImFjdGl2ZVJhZGl1c1wiOiAxMCxcclxuXHRcdFx0XHRcIm9mZnNldEFuZ2xlXCI6IDAsXHJcblx0XHRcdFx0XCJsYWJlbFdpZHRoXCI6IDE1LFxyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IGZhbHNlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMixcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcIndvcmRcIjp7XHJcblx0XHRcInR5cGVcIjogXCJ3b3JkXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwid29yZFwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwibm9ybWFsXCIsXHJcblx0XHRcdFx0XCJhdXRvQ29sb3JzXCI6IGZhbHNlXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZnVubmVsXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiZnVubmVsXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImZ1bm5lbFwiOiB7XHJcblx0XHRcdFx0XCJhY3RpdmVPcGFjaXR5XCI6IDAuMyxcclxuXHRcdFx0XHRcImFjdGl2ZVdpZHRoXCI6IDEwLFxyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IHRydWUsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCIsXHJcblx0XHRcdFx0XCJmaWxsT3BhY2l0eVwiOiAxLFxyXG5cdFx0XHRcdFwibGFiZWxBbGlnblwiOiBcInJpZ2h0XCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibWFwXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwibWFwXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFswLDAsMCwwXSxcclxuICAgIFwiZGF0YUxhYmVsXCI6IHRydWUsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJtYXBcIjoge1xyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IHRydWUsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAxLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJmaWxsT3BhY2l0eVwiOiAwLjYsXHJcblx0XHRcdFx0XCJhY3RpdmVCb3JkZXJDb2xvclwiOiBcIiNGMDQ4NjRcIixcclxuXHRcdFx0XHRcImFjdGl2ZUZpbGxDb2xvclwiOiBcIiNGQUNDMTRcIixcclxuXHRcdFx0XHRcImFjdGl2ZUZpbGxPcGFjaXR5XCI6IDFcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiYXJjYmFyXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYXJjYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIueZvuWIhuavlFwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzAwRkYwMFwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIum7mOiupOagh+mimFwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiYXJjYmFyXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkZWZhdWx0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAxMixcclxuXHRcdFx0XHRcImJhY2tncm91bmRDb2xvclwiOiBcIiNFOUU5RTlcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJnYXBcIjogMlxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImxpbmVcIjp7XHJcblx0XHRcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJsaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcbiAgXCJ0bGluZVwiOntcclxuICBcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgXHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImxpbmVcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAyXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuICBcInRhcmVhXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYXJlYVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG4gICAgICBcImJvdW5kYXJ5R2FwXCI6XCJqdXN0aWZ5XCIsXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgICBcImRhdGFcIjpbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJtaW5cIjowLFxyXG4gICAgICAgICAgXCJtYXhcIjo4MFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJhcmVhXCI6IHtcclxuICBcdFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gIFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcbiAgXHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG4gIFx0XHRcdFwiZ3JhZGllbnRcIjogdHJ1ZVxyXG4gIFx0XHR9LFxyXG4gIFx0fVxyXG4gIH0sXHJcblx0XCJjb2x1bW5cIjp7XHJcblx0XHRcInR5cGVcIjogXCJjb2x1bW5cIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsNV0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImRhdGFcIjpbe1wibWluXCI6MH1dXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImNvbHVtblwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwiZ3JvdXBcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuXHRcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcIm1vdW50XCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibW91bnRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgXHRcInBhZGRpbmdcIjogWzE1LDE1LDAsNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImRhdGFcIjpbe1wibWluXCI6MH1dXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcIm1vdW50XCI6IHtcclxuICBcdFx0XHRcInR5cGVcIjogXCJtb3VudFwiLFxyXG4gIFx0XHRcdFwid2lkdGhSYXRpb1wiOiAxLjUsXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuICBcImJhclwiOntcclxuICBcdFwidHlwZVwiOiBcImJhclwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMzAsMCw1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImJvdW5kYXJ5R2FwXCI6XCJqdXN0aWZ5XCIsXHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjpmYWxzZSxcclxuICAgICAgXCJtaW5cIjowLFxyXG4gICAgICBcImF4aXNMaW5lXCI6ZmFsc2VcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwiYmFyXCI6IHtcclxuICBcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG4gIFx0XHRcdFwid2lkdGhcIjogMzAsXHJcbiAgXHRcdFx0XCJtZXRlckJvcmRlXCI6IDEsXHJcbiAgXHRcdFx0XCJtZXRlckZpbGxDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnQ29sb3JcIjogXCIjMDAwMDAwXCIsXHJcbiAgXHRcdFx0XCJhY3RpdmVCZ09wYWNpdHlcIjogMC4wOFxyXG4gIFx0XHR9LFxyXG4gIFx0fVxyXG4gIH0sXHJcblx0XCJhcmVhXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYXJlYVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiYXJlYVwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwic3RyYWlnaHRcIixcclxuXHRcdFx0XHRcIm9wYWNpdHlcIjogMC4yLFxyXG5cdFx0XHRcdFwiYWRkTGluZVwiOiB0cnVlLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMixcclxuXHRcdFx0XHRcImdyYWRpZW50XCI6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJhZGFyXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwicmFkYXJcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInBvc2l0aW9uXCI6IFwicmlnaHRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJhZGFyXCI6IHtcclxuXHRcdFx0XHRcImdyaWRUeXBlXCI6IFwicmFkYXJcIixcclxuXHRcdFx0XHRcImdyaWRDb2xvclwiOiBcIiNDQ0NDQ0NcIixcclxuXHRcdFx0XHRcImdyaWRDb3VudFwiOiAzLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJtYXhcIjogMjAwXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcImdhdWdlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiZ2F1Z2VcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwiNjZLbS9IXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFwib2Zmc2V0WVwiOiA1MFxyXG5cdFx0fSxcclxuXHRcdFwic3VidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCLlrp7ml7bpgJ/luqZcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAxNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMxODkwZmZcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IC01MFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImdhdWdlXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkZWZhdWx0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuXHRcdFx0XHRcImxhYmVsQ29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJzdGFydEFuZ2xlXCI6IDAuNzUsXHJcblx0XHRcdFx0XCJlbmRBbmdsZVwiOiAwLjI1LFxyXG5cdFx0XHRcdFwic3RhcnROdW1iZXJcIjogMCxcclxuXHRcdFx0XHRcImVuZE51bWJlclwiOiAxMDAsXHJcblx0XHRcdFx0XCJsYWJlbEZvcm1hdFwiOiBcIlwiLFxyXG5cdFx0XHRcdFwic3BsaXRMaW5lXCI6IHtcclxuXHRcdFx0XHRcdFwiZml4UmFkaXVzXCI6IDAsXHJcblx0XHRcdFx0XHRcInNwbGl0TnVtYmVyXCI6IDEwLFxyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogXCIjRkZGRkZGXCIsXHJcblx0XHRcdFx0XHRcImNoaWxkTnVtYmVyXCI6IDUsXHJcblx0XHRcdFx0XHRcImNoaWxkV2lkdGhcIjogMTJcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdFwicG9pbnRlclwiOiB7XHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDI0LFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcImF1dG9cIlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJjYW5kbGVcIjp7XHJcblx0XHRcInR5cGVcIjogXCJjYW5kbGVcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJlbmFibGVTY3JvbGxcIjogdHJ1ZSxcclxuXHRcdFwiZW5hYmxlTWFya0xpbmVcIjogdHJ1ZSxcclxuXHRcdFwiZGF0YUxhYmVsXCI6IGZhbHNlLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwibGFiZWxDb3VudFwiOiA0LFxyXG5cdFx0XHRcIml0ZW1Db3VudFwiOiA0MCxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG5cdFx0XHRcImdyaWRDb2xvclwiOiBcIiNDQ0NDQ0NcIixcclxuXHRcdFx0XCJncmlkVHlwZVwiOiBcInNvbGlkXCIsXHJcblx0XHRcdFwiZGFzaExlbmd0aFwiOiA0LFxyXG5cdFx0XHRcInNjcm9sbFNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJzY3JvbGxBbGlnblwiOiBcImxlZnRcIixcclxuXHRcdFx0XCJzY3JvbGxDb2xvclwiOiBcIiNBNkE2QTZcIixcclxuXHRcdFx0XCJzY3JvbGxCYWNrZ3JvdW5kQ29sb3JcIjogXCIjRUZFQkVGXCJcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY2FuZGxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6IHtcclxuXHRcdFx0XHRcdFwidXBMaW5lXCI6IFwiI2YwNDg2NFwiLFxyXG5cdFx0XHRcdFx0XCJ1cEZpbGxcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcImRvd25MaW5lXCI6IFwiIzJmYzI1YlwiLFxyXG5cdFx0XHRcdFx0XCJkb3duRmlsbFwiOiBcIiMyZmMyNWJcIlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJhdmVyYWdlXCI6IHtcclxuXHRcdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcdFx0XCJuYW1lXCI6IFtcIk1BNVwiLFwiTUExMFwiLFwiTUEzMFwiXSxcclxuXHRcdFx0XHRcdFwiZGF5XCI6IFs1LDEwLDIwXSxcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogW1wiIzE4OTBmZlwiLFwiIzJmYzI1YlwiLFwiI2ZhY2MxNFwiXVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJtYXJrTGluZVwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcdFwiZGFzaExlbmd0aFwiOiA1LFxyXG5cdFx0XHRcdFwiZGF0YVwiOiBbXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIjogMjE1MCxcclxuXHRcdFx0XHRcdFx0XCJsaW5lQ29sb3JcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcdFwic2hvd0xhYmVsXCI6IHRydWVcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIjogMjM1MCxcclxuXHRcdFx0XHRcdFx0XCJsaW5lQ29sb3JcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcdFwic2hvd0xhYmVsXCI6IHRydWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRdXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibWl4XCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwibWl4XCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwiZGlzYWJsZWRcIjogZmFsc2UsXHJcblx0XHRcdFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcblx0XHRcdFwic3BsaXROdW1iZXJcIjogNSxcclxuXHRcdFx0XCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcInBhZGRpbmdcIjogMTAsXHJcblx0XHRcdFwic2hvd1RpdGxlXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJtaXhcIjoge1xyXG5cdFx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInNjYXR0ZXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJzY2F0dGVyXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOmZhbHNlLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJzcGxpdE51bWJlclwiOjUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJtaW5cIjowXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwic2NhdHRlclwiOiB7XHJcbiAgICBcdH0sXHJcbiAgICB9XHJcblx0fSxcclxuXHRcImJ1YmJsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImJ1YmJsZVwiLFxyXG5cdFx0XCJjb2xvclwiOmNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6WzE1LDE1LDAsMTVdLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJzcGxpdE51bWJlclwiOjUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJtaW5cIjowLFxyXG4gICAgICBcIm1heFwiOjI1MFxyXG4gICAgfSxcclxuICAgIFwieUF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IGZhbHNlLFxyXG4gICAgICBcImdyaWRUeXBlXCI6XCJkYXNoXCIsXHJcbiAgICAgIFwiZGF0YVwiOlt7XHJcbiAgICAgICAgXCJtaW5cIjowLFxyXG4gICAgICAgIFwibWF4XCI6MTUwXHJcbiAgICAgIH1dXHJcbiAgICB9LFxyXG4gICAgXCJsZWdlbmRcIjoge1xyXG4gICAgfSxcclxuICAgIFwiZXh0cmFcIjoge1xyXG4gICAgXHRcImJ1YmJsZVwiOiB7XHJcbiAgICAgICAgXCJib3JkZXJcIjoyLFxyXG4gICAgICAgIFwib3BhY2l0eVwiOiAwLjUsXHJcbiAgICBcdH0sXHJcbiAgICB9XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjZnU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /*!**************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 通用配置项\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\nvar cfe = {\n //demotype为自定义图表类型\n \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的\"demotype\"\n \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //instance为实例变量承载属性,option为eopts承载属性,不要删除\n \"instance\": {},\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"tooltipDemo1\": function tooltipDemo1(res) {\n var result = '';\n for (var i in res) {\n if (i == 0) {\n result += res[i].axisValueLabel + '年销售额';\n }\n var value = '--';\n if (res[i].data !== null) {\n value = res[i].data;\n }\n result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元';\n }\n return result;\n },\n legendFormat: function legendFormat(name) {\n return \"自定义图例+\" + name;\n },\n yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n return value + '元';\n },\n seriesFormatDemo: function seriesFormatDemo(res) {\n return res.name + '年' + res.value + '元';\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。\n \"demotype\": {\n \"color\": color\n //在这里填写echarts的option即可\n },\n\n //下面是自定义配置,请添加项目所需的通用配置\n \"column\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'bar',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"line\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"top\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc'\n }\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#CCCCCC'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": false,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#CCCCCC'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": false,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"area\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"areaStyle\": {},\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"pie\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": '50%',\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"ring\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"bottom\": 'left',\n \"textStyle\": {\n \"color\": '#cccccc'\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": ['30%', '60%'],\n \"avoidLabelOverlap\": false,\n \"label\": {\n \"show\": false,\n \"color\": \"#FFF\",\n \"position\": 'top'\n },\n \"labelLine\": {\n \"show\": false\n }\n }\n },\n \"rose\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": \"55%\",\n \"center\": ['50%', '50%'],\n \"roseType\": 'area'\n }\n },\n \"funnel\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item',\n \"formatter\": \"{b} : {c}%\"\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'funnel',\n \"left\": '10%',\n \"top\": 60,\n \"bottom\": 60,\n \"width\": '80%',\n \"min\": 0,\n \"max\": 100,\n \"minSize\": '0%',\n \"maxSize\": '100%',\n \"sort\": 'descending',\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": 'inside'\n },\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": 'solid'\n }\n },\n \"itemStyle\": {\n \"bordercolor\": '#fff',\n \"borderwidth\": 1\n },\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20\n }\n },\n \"data\": []\n }\n },\n \"gauge\": {\n \"color\": color,\n \"tooltip\": {\n \"formatter\": '{a}
{b} : {c}%'\n },\n \"seriesTemplate\": {\n \"name\": '业务指标',\n \"type\": 'gauge',\n \"detail\": {\n \"formatter\": '{value}%'\n },\n \"data\": [{\n \"value\": 50,\n \"name\": '完成率'\n }]\n }\n },\n \"candle\": {\n \"xAxis\": {\n \"data\": []\n },\n \"yAxis\": {},\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"dataZoom\": [{\n \"type\": 'inside',\n \"xAxisIndex\": [0, 1],\n \"start\": 10,\n \"end\": 100\n }, {\n \"show\": true,\n \"xAxisIndex\": [0, 1],\n \"type\": 'slider',\n \"bottom\": 10,\n \"start\": 10,\n \"end\": 100\n }],\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'k',\n \"data\": []\n }\n }\n};\nvar _default = cfe;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0FBRWpILElBQU1DLEdBQUcsR0FBRztFQUNWO0VBQ0QsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUN4RztFQUNELFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUM5RTtFQUNELFVBQVUsRUFBRSxDQUFDLENBQUM7RUFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDO0VBQ1g7RUFDQSxXQUFXLEVBQUM7SUFDVixjQUFjLEVBQUMsc0JBQVNDLEdBQUcsRUFBQztNQUMxQixJQUFJQyxNQUFNLEdBQUcsRUFBRTtNQUNmLEtBQUssSUFBSUMs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LE1BQU0sRUFBRTtJQUNUO0VBQ0QsQ0FBQztFQUNELE9BQU8sRUFBRTtJQUNSLE9BQU8sRUFBRUEsS0FBSztJQUNkLFNBQVMsRUFBRTtNQUNMLFdBQVcsRUFBRTtJQUNqQixDQUFDO0lBQ0gsZ0JBQWdCLEVBQUU7TUFDakIsTUFBTSxFQUFFLE1BQU07TUFDWCxNQUFNLEVBQUUsT0FBTztNQUNmLFFBQVEsRUFBRTtRQUFDLFdBQVcsRUFBRTtNQUFVLENBQUM7TUFDbkMsTUFBTSxFQUFFLENBQUM7UUFBQyxPQUFPLEVBQUUsRUFBRTtRQUFFLE1BQU0sRUFBRTtNQUFLLENBQUM7SUFDekM7RUFDRCxDQUFDO0VBQ0QsUUFBUSxFQUFFO0lBQ1QsT0FBTyxFQUFFO01BQ1IsTUFBTSxFQUFFO0lBQ1QsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDWCxPQUFPLEVBQUVBLEtBQUs7SUFDZCxPQUFPLEVBQUU7TUFDUixNQUFNLEVBQUU7SUFDVCxDQUFDO0lBQ0QsVUFBVSxFQUFFLENBQUM7TUFDWCxNQUFNLEVBQUUsUUFBUTtNQUNoQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQ3BCLE9BQU8sRUFBRSxFQUFFO01BQ1gsS0FBSyxFQUFFO0lBQ1IsQ0FBQyxFQUNEO01BQ0MsTUFBTSxFQUFFLElBQUk7TUFDWixZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQ3BCLE1BQU0sRUFBRSxRQUFRO01BQ2hCLFFBQVEsRUFBRSxFQUFFO01BQ1osT0FBTyxFQUFFLEVBQUU7TUFDWCxLQUFLLEVBQUU7SUFDUixDQUFDLENBQ0Q7SUFDRCxnQkFBZ0IsRUFBRTtNQUNqQixNQUFNLEVBQUUsRUFBRTtNQUNWLE1BQU0sRUFBRSxHQUFHO01BQ1gsTUFBTSxFQUFFO0lBQ1Q7RUFDRDtBQUNELENBQUM7QUFBQSxlQUVjQyxHQUFHO0FBQUEiLCJmaWxlIjoiOTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzwq5cclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYw77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgUUlVTsKu56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHPCruWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4vLyDpgJrnlKjphY3nva7poblcclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuY29uc3QgY2ZlID0ge1xyXG4gIC8vZGVtb3R5cGXkuLroh6rlrprkuYnlm77ooajnsbvlnotcclxuXHRcInR5cGVcIjogW1wicGllXCIsIFwicmluZ1wiLCBcInJvc2VcIiwgXCJmdW5uZWxcIiwgXCJsaW5lXCIsIFwiY29sdW1uXCIsIFwiYXJlYVwiLCBcInJhZGFyXCIsIFwiZ2F1Z2VcIixcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcblx0XCJjYXRlZ29yaWVzXCI6IFtcImxpbmVcIiwgXCJjb2x1bW5cIiwgXCJhcmVhXCIsIFwicmFkYXJcIiwgXCJnYXVnZVwiLCBcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jG9wdGlvbuS4umVvcHRz5om/6L295bGe5oCn77yM5LiN6KaB5Yig6ZmkXHJcblx0XCJpbnN0YW5jZVwiOiB7fSxcclxuXHRcIm9wdGlvblwiOiB7fSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iWZvcm1hdOmFjee9ru+8jOWboOmZpEg156uv5aSW55qE5YW25LuW56uv5peg5rOV6YCa6L+HcHJvcHPkvKDpgJLlh73mlbDvvIzlj6rog73pgJrov4fmraTlsZ7mgKflr7nlupTkuIvmoIfnmoTmlrnlvI/mnaXmm7/mjaJcclxuICBcImZvcm1hdHRlclwiOntcclxuICAgIFwidG9vbHRpcERlbW8xXCI6ZnVuY3Rpb24ocmVzKXtcclxuICAgICAgbGV0IHJlc3VsdCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgaW4gcmVzKSB7XHJcbiAgICAgIFx0aWYgKGkgPT0gMCkge1xyXG4gICAgICBcdFx0cmVzdWx0ICs9IHJlc1tpXS5heGlzVmFsdWVMYWJlbCArICflubTplIDllK7pop0nXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdGxldCB2YWx1ZSA9ICctLSdcclxuICAgICAgXHRpZiAocmVzW2ldLmRhdGEgIT09IG51bGwpIHtcclxuICAgICAgXHRcdHZhbHVlID0gcmVzW2ldLmRhdGFcclxuICAgICAgXHR9XHJcblxyXG5cclxuXHJcbiAgICAgIFx0XHJcblxyXG4gICAgICBcdHJlc3VsdCArPSAnPGJyLz4nICsgcmVzW2ldLm1hcmtlciArIHJlc1tpXS5zZXJpZXNOYW1lICsgJ++8micgKyB2YWx1ZSArICcg5LiH5YWDJ1xyXG5cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSxcclxuICAgIGxlZ2VuZEZvcm1hdDpmdW5jdGlvbihuYW1lKXtcclxuICAgICAgcmV0dXJuIFwi6Ieq5a6a5LmJ5Zu+5L6LK1wiK25hbWU7XHJcbiAgICB9LFxyXG4gICAgeUF4aXNGb3JtYXREZW1vOmZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlICsgJ+WFgyc7XHJcbiAgICB9LFxyXG4gICAgc2VyaWVzRm9ybWF0RGVtbzpmdW5jdGlvbihyZXMpe1xyXG4gICAgICByZXR1cm4gcmVzLm5hbWUgKyAn5bm0JyArIHJlcy52YWx1ZSArICflhYMnO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/ov5nph4zmvJTnpLrkuoboh6rlrprkuYnmgqjnmoTlm77ooajnsbvlnovnmoRvcHRpb27vvIzlj6/ku6Xpmo/mhI/lkb3lkI3vvIzkuYvlkI7lnKjnu4Tku7bkuIogdHlwZT1cImRlbW90eXBlXCIg5ZCO77yM57uE5Lu25Lya6LCD55So6L+Z5Liq6Iqx5ous5Y+36YeM55qEb3B0aW9u77yM5aaC5p6c57uE5Lu25LiK6L+Y5a2Y5ZyoZW9wdHPlj4LmlbDvvIzkvJrlsIZkZW1vdHlwZeS4jmVvcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgICAvL+WcqOi/memHjOWhq+WGmWVjaGFydHPnmoRvcHRpb27ljbPlj69cclxuICAgIFxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcImNvbHVtblwiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwidG9vbHRpcFwiOiB7XHJcblx0XHRcdFwidHJpZ2dlclwiOiAnYXhpcydcclxuXHRcdH0sXHJcblx0XHRcImdyaWRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAzMCxcclxuXHRcdFx0XCJib3R0b21cIjogNTAsXHJcblx0XHRcdFwicmlnaHRcIjogMTUsXHJcblx0XHRcdFwibGVmdFwiOiA0MFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxyXG5cdFx0fSxcclxuXHRcdFwidG9vbGJveFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiB0cnVlLFxyXG5cdFx0XHRcImRhdGFcIjogW11cclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICd2YWx1ZScsXHJcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAnYmFyJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcImJhcndpZHRoXCI6IDIwLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJsaW5lXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAnbGVmdCcsXHJcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6JyNjY2NjY2MnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRcInRvb2xib3hcIjoge1xyXG5cdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHR9LFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAnY2F0ZWdvcnknLFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYm91bmRhcnlHYXBcIjogZmFsc2UsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcImJhcndpZHRoXCI6IDIwLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwiYXJlYVwiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwidG9vbHRpcFwiOiB7XHJcblx0XHRcdFwidHJpZ2dlclwiOiAnYXhpcydcclxuXHRcdH0sXHJcblx0XHRcImdyaWRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAzMCxcclxuXHRcdFx0XCJib3R0b21cIjogNTAsXHJcblx0XHRcdFwicmlnaHRcIjogMTUsXHJcblx0XHRcdFwibGVmdFwiOiA0MFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxyXG5cdFx0fSxcclxuXHRcdFwidG9vbGJveFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiB0cnVlLFxyXG5cdFx0XHRcImRhdGFcIjogW11cclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICd2YWx1ZScsXHJcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAnbGluZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJhcmVhU3R5bGVcIjoge30sXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInBpZVwiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwidG9vbHRpcFwiOiB7XHJcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbSdcclxuXHRcdH0sXHJcblx0XHRcImdyaWRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiA0MCxcclxuXHRcdFx0XCJib3R0b21cIjogMzAsXHJcblx0XHRcdFwicmlnaHRcIjogMTUsXHJcblx0XHRcdFwibGVmdFwiOiAxNVxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAncGllJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcInJhZGl1c1wiOiAnNTAlJyxcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicmluZ1wiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwidG9vbHRpcFwiOiB7XHJcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbSdcclxuXHRcdH0sXHJcblx0XHRcImdyaWRcIjoge1xyXG5cdFx0XHRcInRvcFwiOjQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjY2NjY2NjJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6IFsnMzAlJywgJzYwJSddLFxyXG5cdFx0XHRcImF2b2lkTGFiZWxPdmVybGFwXCI6IGZhbHNlLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiNGRkZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyb3NlXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJyYWRpdXNcIjogXCI1NSVcIixcclxuXHRcdFx0XCJjZW50ZXJcIjogWyc1MCUnLCAnNTAlJ10sXHJcblx0XHRcdFwicm9zZVR5cGVcIjogJ2FyZWEnLFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwiZnVubmVsXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJyxcclxuXHRcdFx0XCJmb3JtYXR0ZXJcIjogXCJ7Yn0gOiB7Y30lXCJcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6ICdib3R0b20nXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdmdW5uZWwnLFxyXG5cdFx0XHRcImxlZnRcIjogJzEwJScsXHJcblx0XHRcdFwidG9wXCI6IDYwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA2MCxcclxuXHRcdFx0XCJ3aWR0aFwiOiAnODAlJyxcclxuXHRcdFx0XCJtaW5cIjogMCxcclxuXHRcdFx0XCJtYXhcIjogMTAwLFxyXG5cdFx0XHRcIm1pblNpemVcIjogJzAlJyxcclxuXHRcdFx0XCJtYXhTaXplXCI6ICcxMDAlJyxcclxuXHRcdFx0XCJzb3J0XCI6ICdkZXNjZW5kaW5nJyxcclxuXHRcdFx0XCJnYXBcIjogMixcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAnaW5zaWRlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsZW5ndGhcIjogMTAsXHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAxLFxyXG5cdFx0XHRcdFx0XCJ0eXBlXCI6ICdzb2xpZCdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiaXRlbVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImJvcmRlcmNvbG9yXCI6ICcjZmZmJyxcclxuXHRcdFx0XHRcImJvcmRlcndpZHRoXCI6IDFcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJlbXBoYXNpc1wiOiB7XHJcblx0XHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XHRcImZvbnRTaXplXCI6IDIwXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJnYXVnZVwiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuICAgICAgICBcImZvcm1hdHRlclwiOiAne2F9IDxici8+e2J9IDoge2N9JSdcclxuICAgIH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICfkuJrliqHmjIfmoIcnLFxyXG4gICAgICBcInR5cGVcIjogJ2dhdWdlJyxcclxuICAgICAgXCJkZXRhaWxcIjoge1wiZm9ybWF0dGVyXCI6ICd7dmFsdWV9JSd9LFxyXG4gICAgICBcImRhdGFcIjogW3tcInZhbHVlXCI6IDUwLCBcIm5hbWVcIjogJ+WujOaIkOeOhyd9XVxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwiY2FuZGxlXCI6IHtcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcImRhdGFcIjogW11cclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHt9LFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcImRhdGFab29tXCI6IFt7XHJcblx0XHRcdFx0XCJ0eXBlXCI6ICdpbnNpZGUnLFxyXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXHJcblx0XHRcdFx0XCJzdGFydFwiOiAxMCxcclxuXHRcdFx0XHRcImVuZFwiOiAxMDBcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXHJcblx0XHRcdFx0XCJ0eXBlXCI6ICdzbGlkZXInLFxyXG5cdFx0XHRcdFwiYm90dG9tXCI6IDEwLFxyXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXHJcblx0XHRcdFx0XCJlbmRcIjogMTAwXHJcblx0XHRcdH1cclxuXHRcdF0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2snLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHR9LFxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2ZlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/g1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/g1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/f1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/f1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///98\n"); /***/ }), /* 99 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/e1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/e1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///99\n"); /***/ }), /* 100 */ /*!*******************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 101);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJuQixDQUFnQix5b0JBQUcsRUFBQyIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaG9tZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* 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 _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 102));\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 103));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n series: [],\n homeViewShow: true,\n infoViewShow: false,\n errorInfoViewShow: false,\n homeMode: [],\n infoMode: [],\n errorInfoMode: [],\n baseInfo: {\n xDistance: 1,\n yDistance: 2,\n xDuration: 3,\n yDuration: 4,\n usedPr: 50,\n used: 3537,\n stockCount: '',\n emptyCount: '',\n noneCount: ''\n },\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n duration: 1000,\n calendar: '',\n ringOpts: {},\n chartsDataLine1: {},\n chartsDataPie2: {},\n fontSize: '',\n height: '',\n showCharts: false,\n ejectShow: false,\n baseIP: '',\n basePort: '',\n baseLedId: '',\n baseCrnId: '',\n baseUrl: '',\n info: null,\n error: null,\n infoType: 0,\n text: '',\n infoText: {\n title: '',\n staNo: \"\",\n matnr: \"\",\n maknx: \"\",\n specs: \"\",\n count: \"\",\n error: \"\",\n barcode: \"\"\n },\n swiperList: [],\n timeOut: false,\n times: 0,\n currDate: '',\n locList: []\n };\n },\n onShow: function onShow() {\n // 隐藏时间,电量,信号等\n\n plus.navigator.setFullscreen(true);\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n var PROJ = uni.getStorageSync('UPROJ');\n that.baseUrl = PROJ;\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n // this.getUrl()\n },\n onLoad: function onLoad() {\n var _this = this;\n setInterval(function () {\n _this.getServerData();\n _this.initlineChart();\n _this.initPieChart();\n _this.getOther();\n // this.getDate()\n _this.getDate2();\n _this.getInfo();\n _this.getError();\n // this.getInfo2()\n // this.getError2()\n _this.getUrl();\n _this.controller();\n _this.statisticalModel();\n // 测试用\n }, 1000);\n },\n methods: {\n statisticalModel: function statisticalModel() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/locDetl/pda/statisticalModel\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n __f__(\"log\", res.data, \" at pages/home/home.vue:422\");\n that.locList = res.data;\n }\n }\n });\n },\n timeOut: function timeOut() {\n __f__(\"log\", this.times, \" at pages/home/home.vue:429\");\n },\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + \"/\" + this.baseUrl;\n },\n getServerData: function getServerData() {\n this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n },\n // 获取错误信息\n getInfo2: function getInfo2() {\n var that = this;\n var result = _data.default.dataInfo2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:只有拣料等信息\n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '检料出库';\n } else if (res.data[0].ioType === 107) {\n that.infoText.title = '盘点出库';\n } else if (res.data[0].ioType === 1) {\n that.infoText.title = '入库';\n } else if (res.data[0].ioType === 10) {\n that.infoText.title = '空托入库';\n } else if (res.data[0].ioType === 110) {\n that.infoText.title = '空托出库';\n }\n that.infoText.barcode = res.data[0].barcode;\n that.infoText.workNo = res.data[0].workNo;\n that.infoText.sourceLocNo = res.data[0].sourceLocNo;\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n },\n getError2: function getError2() {\n var that = this;\n var result = _data.default.dataError2;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n },\n getInfo: function getInfo() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n method: \"GET\",\n data: {\n ledId: that.baseLedId\n },\n success: function success(result) {\n that.timeOut = false;\n that.times = 0;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n // infoType1:只有拣料等信息\n that.infoType = 1;\n if (res.data[0].ioType === 101) {\n that.infoText.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.infoText.title = '检料出库';\n } else if (res.data[0].ioType === 107) {\n that.infoText.title = '盘点出库';\n } else if (res.data[0].ioType === 1) {\n that.infoText.title = '入库';\n } else if (res.data[0].ioType === 10) {\n that.infoText.title = '空托入库';\n } else if (res.data[0].ioType === 110) {\n that.infoText.title = '空托出库';\n }\n that.infoText.barcode = res.data[0].barcode;\n that.infoText.workNo = res.data[0].workNo;\n that.infoText.sourceLocNo = res.data[0].sourceLocNo;\n that.infoText.staNo = res.data[0].staNo;\n that.swiperList = res.data[0].matDtos;\n // that.infoText.matnr = res.data[0].matDtos[0].matnr\n // that.infoText.specs = res.data[0].matDtos[0].specs\n // that.infoText.maknx = res.data[0].matDtos[0].maknx\n // that.infoText.count = res.data[0].matDtos[0].count\n } else {\n if (that.infoType == 2 || that.infoType == 3) {\n return;\n }\n that.infoType = 0;\n }\n },\n fail: function fail(err) {\n that.timeOut = true;\n that.times = that.times + 1;\n that.infoType = 0;\n }\n });\n },\n getError: function getError() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: \"GET\",\n success: function success(result) {\n that.timeOut = false;\n that.times = 0;\n var res = result.data;\n if (res.data && res.data !== \"\") {\n var errorInfo = res.data;\n if (that.infoType == 1) {\n that.infoType = 3;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n return;\n }\n that.infoType = 2;\n that.infoText.title = \"其他信息\";\n // that.infoText.title = \"异常\"\n that.infoText.error = errorInfo;\n } else {\n if (that.infoType == 1) {\n return;\n }\n that.infoType = 0;\n }\n },\n fail: function fail(err) {\n that.timeOut = true;\n that.infoType = 0;\n }\n });\n },\n // 控制器\n controller: function controller() {\n var _this2 = this;\n switch (this.infoType) {\n // 有信息 但 没有错误信息\n case 0:\n if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.errorInfoViewShow && this.infoViewShow) {\n this.errorInfoViewShow = false;\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.homeViewShow = true;\n _this2.homeMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n case 1:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.errorInfoViewShow) {\n this.errorInfoViewShow = false;\n this.errorInfoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.infoViewShow = true;\n _this2.infoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 有信息 且 有错误信息\n case 2:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n // 有信息 且 有错误信息\n case 3:\n if (this.homeViewShow) {\n this.homeViewShow = false;\n this.homeMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n } else if (this.infoViewShow) {\n this.infoViewShow = false;\n this.infoMode = ['fade', 'slide-bottom'];\n setTimeout(function () {\n _this2.errorInfoViewShow = true;\n _this2.errorInfoMode = ['fade', 'slide-bottom'];\n }, 1000);\n }\n return;\n }\n },\n // 主屏幕\n handle: function handle(type) {\n this.homeViewShow = !this.homeViewShow;\n this.modeClass = type;\n },\n // 拣料\n handle1: function handle1(type) {\n this.infoViewShow = !this.infoViewShow;\n this.modeClass = type;\n },\n // 异常\n handle2: function handle2(type) {\n this.errorInfoViewShow = !this.errorInfoViewShow;\n this.modeClass = type;\n },\n // 配置\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 取消配置\n ejectClose: function ejectClose() {\n this.ejectShow = false;\n },\n // 确认配置\n ejectConfirm: function ejectConfirm() {\n uni.setStorageSync('BaseIp', this.baseIP);\n uni.setStorageSync('BaseLedId', this.baseLedId);\n uni.setStorageSync('BasePort', this.basePort);\n uni.setStorageSync('BaseCrnId', this.baseCrnId);\n uni.setStorageSync('UPROJ', this.baseUrl);\n this.getUrl();\n this.ejectShow = false;\n },\n // 日历 服务器\n getDate2: function getDate2() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/date\",\n method: \"GET\",\n success: function success(result) {\n var res = result.data.data;\n that.calendar = res.year + \"年\" + res.month + \"月\" + res.day + \"日 \" + res.hour + \":\" + res.minute + \":\" + res.second + \" \" + res.week;\n that.currDate = res.year + \"/\" + res.month + \"/\" + res.day;\n }\n });\n },\n // 日历\n getDate: function getDate() {\n var dt = new Date();\n var year, month, day, hours, minutes, seconds, weeks;\n year = dt.getFullYear();\n month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n weeks = dt.getDay();\n switch (weeks) {\n case 0:\n weeks = \"星期日\";\n break;\n case 1:\n weeks = \"星期一\";\n break;\n case 2:\n weeks = \"星期二\";\n break;\n case 3:\n weeks = \"星期三\";\n break;\n case 4:\n weeks = \"星期四\";\n break;\n case 5:\n weeks = \"星期五\";\n break;\n default:\n weeks = \"星期六\";\n }\n this.calendar = year + \"年\" + month + \"月\" + day + \"日 \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(this.currDate); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.baseInfo.stockCount = res.data.stockCunt;\n that.baseInfo.emptyCount = res.data.emptyCount;\n that.baseInfo.noneCount = res.data.noneCount;\n that.baseInfo.used = res.data.used;\n that.baseInfo.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: that.baseLedId\n },\n success: function success(result) {\n // console.log(result);\n var res = result.data;\n if (res.code === 200) {\n that.baseInfo.xDistance = res.data.xDistance;\n that.baseInfo.yDistance = res.data.yDistance;\n that.baseInfo.xDuration = res.data.xDuration;\n that.baseInfo.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwic2VyaWVzIiwiaG9tZVZpZXdTaG93IiwiaW5mb1ZpZXdTaG93IiwiZXJyb3JJbmZvVmlld1Nob3ciLCJob21lTW9kZSIsImluZm9Nb2RlIiwiZXJyb3JJbmZvTW9kZSIsImJhc2VJbmZvIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZFByIiwidXNlZCIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImR1cmF0aW9uIiwiY2FsZW5kYXIiLCJyaW5nT3B0cyIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwiZm9udFNpemUiLCJoZWlnaHQiLCJzaG93Q2hhcnRzIiwiZWplY3RTaG93IiwiYmFzZUlQIiwiYmFzZVBvcnQiLCJiYXNlTGVkSWQiLCJiYXNlQ3JuSWQiLCJiYXNlVXJsIiwiaW5mbyIsImVycm9yIiwiaW5mb1R5cGUiLCJ0ZXh0IiwiaW5mb1RleHQiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJiYXJjb2RlIiwic3dpcGVyTGlzdCIsInRpbWVPdXQiLCJ0aW1lcyIsImN1cnJEYXRlIiwibG9jTGlzdCIsIm9uU2hvdyIsInBsdXMiLCJtb3VudGVkIiwidGhhdCIsIm9uTG9hZCIsInNldEludGVydmFsIiwibWV0aG9kcyIsInN0YXRpc3RpY2FsTW9kZWwiLCJ1bmkiLCJ1cmwiLCJtZXRob2QiLCJzdWNjZXNzIiwiZ2V0VXJsIiwiZ2V0U2VydmVyRGF0YSIsImdldEluZm8yIiwiZ2V0RXJyb3IyIiwiZ2V0SW5mbyIsImxlZElkIiwiZmFpbCIsImdldEVycm9yIiwiY29udHJvbGxlciIsInNldFRpbWVvdXQiLCJoYW5kbGUiLCJoYW5kbGUxIiwiaGFuZGxlMiIsImVqZWN0ZWQiLCJlamVjdENsb3NlIiwiZWplY3RDb25maXJtIiwiZ2V0RGF0ZTIiLCJnZXREYXRlIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyIsIndlZWtzIiwiZ2V0RGF0ZUZvcm1hdCIsImRhdGUiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0T3RoZXIiLCJjcm5JZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQStTQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBVDtRQUNBVTtNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBRUE7RUFDQTtFQUNBQztJQUNBOztJQUVBQztFQUVBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FDO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0FBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUVBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtNQUNBQztRQUNBQztRQUNBQztRQUNBQztVQUNBO1VBQ0E7WUFDQTtZQUNBUjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FQO01BQ0E7SUFDQTtJQUNBZ0I7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0FYO1FBQ0E7VUFDQUE7UUFDQTtVQUNBQTtRQUNBO1VBQ0FBO1FBQ0E7VUFDQUE7UUFDQTtVQUNBQTtRQUNBO1VBQ0FBO1FBQ0E7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBWTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBWjtVQUNBQTtVQUNBO1VBQ0FBO1VBQ0E7UUFDQTtRQUNBQTtRQUNBQTtRQUNBO1FBQ0FBO01BQ0E7UUFDQTtVQUNBO1FBQ0E7UUFDQUE7TUFDQTtJQUNBO0lBQ0FhO01BQ0E7TUFDQVI7UUFDQUM7UUFDQUM7UUFDQTVEO1VBQUFtRTtRQUFBO1FBQ0FOO1VBQ0FSO1VBQ0FBO1VBQ0E7VUFDQTtZQUNBO2NBQ0E7WUFDQTtZQUNBO1lBQ0FBO1lBQ0E7Y0FDQUE7WUFDQTtjQUNBQTtZQUNBO2NBQ0FBO1lBQ0E7Y0FDQUE7WUFDQTtjQUNBQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQTtZQUNBO1lBQ0E7WUFDQTtVQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0FBO1VBQ0E7UUFDQTtRQUNBZTtVQUNBZjtVQUNBQTtVQUNBQTtRQUNBO01BQ0E7SUFFQTtJQUNBZ0I7TUFDQTtNQUNBWDtRQUNBQztRQUNBM0Q7VUFBQW1FO1FBQUE7UUFDQVA7UUFDQUM7VUFDQVI7VUFDQUE7VUFDQTtVQUNBO1lBQ0E7WUFDQTtjQUNBQTtjQUNBQTtjQUNBO2NBQ0FBO2NBQ0E7WUFDQTtZQUNBQTtZQUNBQTtZQUNBO1lBQ0FBO1VBQ0E7WUFDQTtjQUNBO1lBQ0E7WUFDQUE7VUFDQTtRQUNBO1FBQ0FlO1VBQ0FmO1VBQ0FBO1FBQ0E7TUFDQTtJQUVBO0lBQ0E7SUFDQWlCO01BQUE7TUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUM7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1VBRUE7UUFDQTtRQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtVQUNBO01BQUE7SUFJQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0FuQjtNQUNBQTtNQUNBQTtNQUNBQTtNQUNBQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FvQjtNQUNBO01BQ0FwQjtRQUNBQztRQUNBQztRQUNBQztVQUNBO1VBQ0FSO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQTBCO01BQ0E7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7VUFBQTtRQUNBO1VBQUFBO1VBQUE7UUFDQTtVQUFBQTtVQUFBO1FBQ0E7VUFBQUE7TUFBQTtNQUVBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQSwySEFDQUM7TUFDQTtNQUNBL0I7UUFDQUM7UUFDQUM7UUFDQUM7VUFDQTtVQUNBO1lBQ0FSLG1DQUNBQSxrR0FDQUEsZ0dBQ0FBO1lBQ0FBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQSwwSEFDQXFDO01BQ0E7TUFDQWhDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1VBQ0E7VUFDQTtZQUNBUjtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FzQztNQUNBO01BQ0FqQztRQUNBQztRQUNBM0Q7VUFDQTRGO1VBQ0F6QjtRQUNBO1FBQ0FOO1VBQ0E7VUFDQTtVQUNBO1lBQ0FSO1lBQ0FBO1lBQ0FBO1lBQ0FBO1VBQ0EsOEJBRUEsUUFFQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBRUE7QUFBQSwyQiIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdDx1bmktdHJhbnNpdGlvbiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDptb2RlLWNsYXNzPVwiaG9tZU1vZGVcIiA6c2hvdz1cImhvbWVWaWV3U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhvbWUtdmlld1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHRleHQ+5pm66IO95aSn5bGP5pi+56S657O757ufPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaXpeWOhiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWUtdG9vbHNcIj57e2NhbGVuZGFyfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOS4u+inhuWbviAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5pm66IO95aSn5bGP5pi+56S657O757ufPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5BdXRvbWF0aWMgU3RvcmFnZWFuZCBSZXRyaWV2YWwgU3lzdGVtPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuS7k+W6k+aVsOaNrjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+d2FyZWhvdXNlIGRhdGE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nLWJveFwiPlx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSBzd2lwZXIg5LiA5Lqb6K+05piOXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2lyY3VsYXIg5piv5ZCm6YeH55So6KGU5o6l5ruR5Yqo77yM5Y2z5pKt5pS+5Yiw5pyr5bC+5ZCO6YeN5paw5Zue5Yiw5byA5aS0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmVydGljYWwg5ruR5Yqo5pa55ZCR5piv5ZCm5Li657q15ZCRIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXktbXVsdGlwbGUtaXRlbXMg5ZCM5pe25pi+56S655qE5ruR5Z2X5pWw6YePIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzd2lwZXIgY2xhc3M9XCJzd2lwZXItYm9keS1tYWluXCIgdmVydGljYWw9XCJ0cnVlXCIgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNpcmN1bGFyPVwidHJ1ZVwiIDphdXRvcGxheT1cInRydWVcIiA6aW50ZXJ2YWw9XCIzMDAwXCIgOmR1cmF0aW9uPVwiMjAwMFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHN3aXBlci1pdGVtIGNsYXNzPVwic3dpcGVyLWl0ZW1cIiB2LWZvcj1cIihpdGVtLGkpIGluIGxvY0xpc3RcIiA6a2V5PVwiaVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwid2lkdGg6IDMwJTtcIj57e2krMX19IC8ge3tzd2lwZXJMaXN0Lmxlbmd0aH19PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+5paZ5Y+3OiB7e2l0ZW0ubWF0bnJ9fTwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTsgZm9udC1zaXplOiAzdnc7XCI+5Z6L5Y+3OiB7e2l0ZW0ubW9kZWx9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7ljbfmlbA6IHt7aXRlbS5tb2RlbENvdW50fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3N3aXBlci1pdGVtPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvc3dpcGVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuW6k+S9jeS9v+eUqOeOhzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPkVRVUlQTUVOVCBVU0FHRSBUSElTIE1PTlRIPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPs+S+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDnmb7liIbmr5QgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7cmlnaHQ6IDF2dzt0ZXh0LWFsaWduOiByaWdodDtcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+e3tiYXNlSW5mby51c2VkUHJ9fSU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+5ZCM5q+U5LiK5pyIICsgNSU8L3RleHQ+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7cG9zaXRpb246IHJlbGF0aXZlO2ZvbnQtc2l6ZTogMXZ3XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDov5vluqbmnaEgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7cG9zaXRpb246IHJlbGF0aXZlO21hcmdpbi10b3A6IDUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc0JhclwiIHN0eWxlPVwid2lkdGg6IDgwJTtoZWlnaHQ6IDJ2dztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc1wiIDpzdHlsZT1cIid3aWR0aDonKyBiYXNlSW5mby51c2VkUHIgKyAnJSdcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206IDA7cmlnaHQ6IDA7Zm9udC1zaXplOiAyLjV2dztjb2xvcjogI0ZGNTcyMjs7XCI+e3tiYXNlSW5mby51c2VkfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC95LWJveD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtaWFuLWl0ZW0tYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMzUlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOaKmOe6v+WbviAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3puS+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuWFpeWHuuW6k+e7n+iuoTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5PUkRFUiBTVEFUSVNUSUNTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g55m+5YiG5q+UIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7cmlnaHQ6IDF2dzt0ZXh0LWFsaWduOiByaWdodDtcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+MzE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj7ku4rml6XorqLljZXmlbA8L3RleHQ+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJsaW5lXCIgOmNoYXJ0RGF0YT1cImNoYXJ0c0RhdGFMaW5lMVwiIDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIvPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC95LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIG51bGwgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiA0MyU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPlrZjnsbvlnos8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+SU5DT01FIERBVEU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlj7PkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDnmb7liIbmr5QgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtZW5kO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5LuK5aSpPC90ZXh0PiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPlRvZGF5PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bemIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3gtcmluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJyaW5nXCIgOm9wdHM9XCJ7bGVnZW5kOntwb3NpdGlvbjonYm90dG9tJ319XCIgOmVvcHRzPVwicmluZ09wdHNcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YVBpZTJcIiA6ZWNoYXJ0c0g1PVwidHJ1ZVwiIDplY2hhcnRzQXBwPVwidHJ1ZVwiLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPsyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBzdWItaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9nMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O1wiPuWcqOW6kzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDh2dztoZWlnaHQ6IDR2dztsaW5lLWhlaWdodDogNHZ3O2ZvbnQtc2l6ZTogMnZ3O1wiPnt7YmFzZUluZm8uc3RvY2tDb3VudH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93IHN1Yi1pbmZvXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAydmg7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2YxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7XCI+56m65bqTPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogOHZ3O2hlaWdodDogNHZ3O2xpbmUtaGVpZ2h0OiA0dnc7Zm9udC1zaXplOiAydnc7XCI+e3tiYXNlSW5mby5lbXB0eUNvdW50fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3cgc3ViLWluZm9cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDJ2aDtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztcIj7plIHlrpo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA4dnc7aGVpZ2h0OiA0dnc7bGluZS1oZWlnaHQ6IDR2dztmb250LXNpemU6IDJ2dztcIj57e2Jhc2VJbmZvLm5vbmVDb3VudH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0PC95LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAyJTtcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMTglO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2ZvbnQtc2l6ZTogNHZoO2p1c3RpZnktY29udGVudDogY2VudGVyO2xldHRlci1zcGFjaW5nOiAxdmg7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTmmbrog73lpKflsY/mmL7npLrns7vnu59cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlhajmnb8v5ouj5paZ5L+h5oGvIC0tPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJpbmZvTW9kZVwiIDpzaG93PVwiaW5mb1ZpZXdTaG93XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaG9tZS12aWV3XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0XHQ8dGV4dD57e2luZm9UZXh0LnRpdGxlfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5pel5Y6GIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7Y2FsZW5kYXJ9fTwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1sZWZ0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCIgQGNsaWNrPVwiZWplY3RlZCgpXCI+PC92aWV3PlxyXG5cdFx0XHRcdDwhLS0g5Li75L2TIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1tYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tYm94XCI+XHJcblx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIOaWh+acrOWuueWZqCAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSBoZWFkIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzd2lwZXItaGVhZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMCU7XCI+5omY55uY56CBOiB7e2luZm9UZXh0LmJhcmNvZGV9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPuW3peS9nOWPtzoge3tpbmZvVGV4dC53b3JrTm99fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzAlO1wiPua6kOW6k+S9jToge3tpbmZvVGV4dC5zb3VyY2VMb2NOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAyMCU7XCI+55uu5qCH56uZOiB7e2luZm9UZXh0LnN0YU5vfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAlO1wiPuaVsOmHjzwvdmlldz4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIGJvZHkgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN3aXBlci1ib2R5XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gc3dpcGVyIOS4gOS6m+ivtOaYjlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaXJjdWxhciDmmK/lkKbph4fnlKjooZTmjqXmu5HliqjvvIzljbPmkq3mlL7liLDmnKvlsL7lkI7ph43mlrDlm57liLDlvIDlpLRcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmVydGljYWwg5ruR5Yqo5pa55ZCR5piv5ZCm5Li657q15ZCRIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5LW11bHRpcGxlLWl0ZW1zIOWQjOaXtuaYvuekuueahOa7keWdl+aVsOmHjyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHN3aXBlciBjbGFzcz1cInN3aXBlci1ib2R5LW1haW5cIiB2ZXJ0aWNhbD1cInRydWVcIiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaXJjdWxhcj1cInRydWVcIiA6YXV0b3BsYXk9XCJ0cnVlXCIgOmludGVydmFsPVwiMzAwMFwiIDpkdXJhdGlvbj1cIjIwMDBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3dpcGVyLWl0ZW0gY2xhc3M9XCJzd2lwZXItaXRlbVwiIHYtZm9yPVwiKGl0ZW0saSkgaW4gc3dpcGVyTGlzdFwiIDprZXk9XCJpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwid2lkdGg6IDMwJTtcIj57e2krMX19IC8ge3tzd2lwZXJMaXN0Lmxlbmd0aH19PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMzAlO1wiPuaWmeWPtzoge3tpdGVtLm1hdG5yfX08L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7nianmlpnnvJbnoIE6IHt7aXRlbS5tYXRucn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNTAlOyBmb250LXNpemU6IDN2dztcIj7nlJ/kuqfml6XmnJ86IHt7aXRlbS5tYW51RGF0ZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7mibnlj7c6IHt7aXRlbS5iYXRjaH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7lnovlj7c6IHt7aXRlbS5tb2RlbH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7ohpznsbvlnos6IHt7aXRlbS5zcGVjc319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAzMyU7IGZvbnQtc2l6ZTogM3Z3O1wiPumVv+W6pjoge3tpdGVtLmxlbmd0aH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMzMlOyBmb250LXNpemU6IDN2dztcIj7lrr3luqY6IHt7aXRlbS53ZWlnaHR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDMzJTsgZm9udC1zaXplOiAzdnc7XCI+6Z2i56evOiB7e2l0ZW0udm9sdW1lfX1LRzwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zd2lwZXItaXRlbT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9zd2lwZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdDwhLS0g5byC5bi45L+h5oGvIC0tPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJlcnJvckluZm9Nb2RlXCIgOnNob3c9XCJlcnJvckluZm9WaWV3U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImVycm9yLWluZm8tdmlld1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHRleHQ+e3tpbmZvVGV4dC50aXRsZX19PC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaXpeWOhiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWUtdG9vbHNcIj57e2NhbGVuZGFyfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOS4u+S9kyAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImluZm8tbWFpblwiID5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1ib3hcIj5cclxuXHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mby1ib3gtdGV4dFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbCBpbmZvLWJveC10ZXh0LWl0ZW1cIj57e2luZm9UZXh0LmVycm9yfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdFxyXG5cdFx0PCEtLSDoh6rlrprkuYnlvLnlh7rlsYIgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LW1hc2tcIiB2LXNob3c9XCJlamVjdFNob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdFwiPlxyXG5cdFx0XHRcdDwhLS0g5by55Ye6dGl0bGUgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC10aXRsZVwiPuS/ruaUuSAvIOmFjee9rjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIGlucHV0IC0tPlxyXG5cdFx0XHRcdDxzY3JvbGwtdmlldyBzY3JvbGwteSBjbGFzcz1cImVqZWN0LWlucHV0XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+aXDvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUlQXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5wb3J077yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VQb3J0XCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5sZWRJZO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlTGVkSWRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPkNybklk77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VDcm5JZFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+VXJs77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VVcmxcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvc2Nyb2xsLXZpZXc+XHJcblx0XHRcdFx0PCEtLSBidXR0b24gLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC1idXR0b25cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWl0ZW1cIiBAY2xpY2s9XCJlamVjdENsb3NlXCI+5Y+WIOa2iDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWl0ZW1cIiBAY2xpY2s9XCJlamVjdENvbmZpcm1cIj7noa4g6K6kPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgc3R5bGU9XCJjb2xvcjogI0ZGRjtwb3NpdGlvbjogZml4ZWQ7Ym90dG9tOiAxMHB4O2xlZnQ6IDEwcHg7XCIgdi1zaG93PVwidGltZU91dFwiPlxyXG5cdFx0XHTov57mjqXotoXml7Y6IHt7dGltZXN9fSBzXHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48IS0tIHtcIm1zZ1wiOlwi5pON5L2c5oiQ5YqfXCIsXCJjb2RlXCI6MjAwLFwiZGF0YVwiOlt7XCJ0aXRsZVwiOlwi5YWo5p2/5Ye65bqTXCIsXCJ3b3JrTm9cIjo3NDYwLFwic3RhTm9cIjoxMTAsXCJzb3VyY2VTdGFOb1wiOm51bGwsXCJsb2NOb1wiOm51bGwsXCJzb3VyY2VMb2NOb1wiOlwiMDgwNzEwMlwiLFwibWF0RHRvc1wiOlt7XCJtYXROb1wiOlwiNTA0NjA4MzRcIixcIm1ha254XCI6XCIyMDB4NjDmoYzpnaJcIixcImNvdW50XCI6MjYuMH1dLFwiZW1wdHlNa1wiOmZhbHNlLFwiaW9UeXBlXCI6MTAxfV19IC0tPlxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBkZW1vZGF0YSBmcm9tICdAL21vY2tkYXRhL2RlbW9kYXRhLmpzb24nO1xyXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHNlcmllczogW10sXHJcblx0XHRcdFx0aG9tZVZpZXdTaG93OiB0cnVlLFxyXG5cdFx0XHRcdGluZm9WaWV3U2hvdzogZmFsc2VcdCxcclxuXHRcdFx0XHRlcnJvckluZm9WaWV3U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0aG9tZU1vZGU6IFtdLFxyXG5cdFx0XHRcdGluZm9Nb2RlOiBbXSxcclxuXHRcdFx0XHRlcnJvckluZm9Nb2RlOiBbXSxcclxuXHRcdFx0XHRiYXNlSW5mbzoge1xyXG5cdFx0XHRcdFx0eERpc3RhbmNlOiAxLFxyXG5cdFx0XHRcdFx0eURpc3RhbmNlOiAyLFxyXG5cdFx0XHRcdFx0eER1cmF0aW9uOiAzLFxyXG5cdFx0XHRcdFx0eUR1cmF0aW9uOiA0LFxyXG5cdFx0XHRcdFx0dXNlZFByOiA1MCxcclxuXHRcdFx0XHRcdHVzZWQ6IDM1MzcsXHJcblx0XHRcdFx0XHRzdG9ja0NvdW50OiAnJyxcclxuXHRcdFx0XHRcdGVtcHR5Q291bnQ6ICcnLFxyXG5cdFx0XHRcdFx0bm9uZUNvdW50OiAnJyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcclxuXHRcdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcclxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcIlBpZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XHJcblx0XHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHRcdH1dXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZHVyYXRpb246IDEwMDAsXHJcblx0XHRcdFx0Y2FsZW5kYXI6ICcnLFxyXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGFMaW5lMToge30sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YVBpZTI6IHt9LFxyXG5cdFx0XHRcdGZvbnRTaXplOiAnJyxcclxuXHRcdFx0XHRoZWlnaHQ6ICcnLFxyXG5cdFx0XHRcdHNob3dDaGFydHM6IGZhbHNlLFxyXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXHJcblx0XHRcdFx0YmFzZUlQOiAnJyxcclxuXHRcdFx0XHRiYXNlUG9ydDogJycsXHJcblx0XHRcdFx0YmFzZUxlZElkOiAnJyxcclxuXHRcdFx0XHRiYXNlQ3JuSWQ6ICcnLFxyXG5cdFx0XHRcdGJhc2VVcmw6ICcnLFxyXG5cdFx0XHRcdGluZm86IG51bGwsXHJcblx0XHRcdFx0ZXJyb3I6IG51bGwsXHJcblx0XHRcdFx0aW5mb1R5cGU6IDAsXHJcblx0XHRcdFx0dGV4dDogJycsXHJcblx0XHRcdFx0aW5mb1RleHQ6IHtcclxuXHRcdFx0XHRcdHRpdGxlOiAnJyxcclxuXHRcdFx0XHRcdHN0YU5vOiBcIlwiLFxyXG5cdFx0XHRcdFx0bWF0bnI6IFwiXCIsXHJcblx0XHRcdFx0XHRtYWtueDogXCJcIixcclxuXHRcdFx0XHRcdHNwZWNzOiBcIlwiLFxyXG5cdFx0XHRcdFx0Y291bnQ6IFwiXCIsXHJcblx0XHRcdFx0XHRlcnJvcjogXCJcIixcclxuXHRcdFx0XHRcdGJhcmNvZGU6IFwiXCJcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHN3aXBlckxpc3Q6IFtdLFxyXG5cdFx0XHRcdHRpbWVPdXQ6IGZhbHNlLFxyXG5cdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdGN1cnJEYXRlOiAnJyxcclxuXHRcdFx0XHRsb2NMaXN0OltdXHJcblx0XHRcdFx0XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdC8vIOmakOiXj+aXtumXtCznlLXph48s5L+h5Y+3562JXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xyXG5cdFx0XHRwbHVzLm5hdmlnYXRvci5zZXRGdWxsc2NyZWVuKHRydWUpXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRjb25zdCBCYXNlSVAgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcpO1xyXG5cdFx0XHRjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xyXG5cdFx0XHRjb25zdCBCYXNlUG9ydCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnKTtcclxuXHRcdFx0Y29uc3QgQmFzZUNybklkID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlQ3JuSWQnKTtcclxuXHRcdFx0Y29uc3QgUFJPSiA9IHVuaS5nZXRTdG9yYWdlU3luYygnVVBST0onKTtcclxuXHRcdFx0dGhhdC5iYXNlVXJsID0gUFJPSlxyXG5cdFx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxyXG5cdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxyXG5cdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcclxuXHRcdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcclxuXHRcdFx0Ly8gdGhpcy5nZXRVcmwoKVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHtcclxuXHRcdFx0c2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0XHR0aGlzLmdldFNlcnZlckRhdGEoKVxyXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpXHJcblx0XHRcdFx0dGhpcy5pbml0UGllQ2hhcnQoKVxyXG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0RGF0ZSgpXHJcblx0XHRcdFx0dGhpcy5nZXREYXRlMigpXHJcblx0XHRcdFx0dGhpcy5nZXRJbmZvKClcclxuXHRcdFx0XHR0aGlzLmdldEVycm9yKClcclxuXHRcdFx0XHQvLyB0aGlzLmdldEluZm8yKClcclxuXHRcdFx0XHQvLyB0aGlzLmdldEVycm9yMigpXHJcblx0XHRcdFx0dGhpcy5nZXRVcmwoKVxyXG5cdFx0XHRcdHRoaXMuY29udHJvbGxlcigpXHJcblx0XHRcdFx0dGhpcy5zdGF0aXN0aWNhbE1vZGVsKClcclxuXHRcdFx0XHQvLyDmtYvor5XnlKhcclxuXHRcdFx0XHRcclxuXHRcdFx0fSwxMDAwKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0c3RhdGlzdGljYWxNb2RlbCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sb2NEZXRsL3BkYS9zdGF0aXN0aWNhbE1vZGVsXCIsXHJcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhyZXMuZGF0YSlcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmxvY0xpc3QgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0dGltZU91dCgpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLnRpbWVzKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0VXJsKCkge1xyXG5cdFx0XHRcdHRoaXMuY29tbW9uVXJsID0gdGhpcy5iYXNlSHR0cCArIHRoaXMuYmFzZUlQICsgJzonICt0aGlzLmJhc2VQb3J0ICsgXCIvXCIgK3RoaXMuYmFzZVVybFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRTZXJ2ZXJEYXRhKCkge1xyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YVBpZTI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoYXJ0c0RhdGEuUGllKSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdGdldEluZm8yKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHZhciByZXN1bHQgPSB5Y3FkYXRhLmRhdGFJbmZvMlxyXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGluZm9UeXBlMTrlj6rmnInmi6PmlpnnrYnkv6Hmga9cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAxXHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDcpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5YWl5bqTJ1xyXG5cdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlhaXlupMnXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMTApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmJhcmNvZGUgPSByZXMuZGF0YVswXS5iYXJjb2RlXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LndvcmtObyA9IHJlcy5kYXRhWzBdLndvcmtOb1xyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC5zb3VyY2VMb2NObyA9IHJlcy5kYXRhWzBdLnNvdXJjZUxvY05vXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LnN0YU5vID0gcmVzLmRhdGFbMF0uc3RhTm9cclxuXHRcdFx0XHRcdHRoYXQuc3dpcGVyTGlzdCA9IHJlcy5kYXRhWzBdLm1hdER0b3NcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQubWF0bnIgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXHJcblx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0LnNwZWNzID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xyXG5cdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC5tYWtueCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQuY291bnQgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRFcnJvcjIgKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFFcnJvcjJcclxuXHRcdFx0XHR2YXJcdHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHR2YXIgZXJyb3JJbmZvID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDNcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCIgXHJcblx0XHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMlxyXG5cdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5YW25LuW5L+h5oGvXCJcclxuXHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuW8guW4uFwiXHJcblx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDEpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0SW5mbygpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWRcIixcclxuXHRcdFx0XHRcdG1ldGhvZDpcIkdFVFwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge2xlZElkOnRoYXQuYmFzZUxlZElkfSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGltZU91dCA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMiB8fCB0aGF0LmluZm9UeXBlID09IDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly8gaW5mb1R5cGUxOuWPquacieaLo+aWmeetieS/oeaBr1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAxXHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LnRpdGxlID0gJ+WFqOadv+WHuuW6kydcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwNykge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnm5jngrnlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICflhaXlupMnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSAn56m65omY5YWl5bqTJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDExMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVGV4dC50aXRsZSA9ICfnqbrmiZjlh7rlupMnXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuYmFyY29kZSA9IHJlcy5kYXRhWzBdLmJhcmNvZGVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LndvcmtObyA9IHJlcy5kYXRhWzBdLndvcmtOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuc291cmNlTG9jTm8gPSByZXMuZGF0YVswXS5zb3VyY2VMb2NOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuc3RhTm8gPSByZXMuZGF0YVswXS5zdGFOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3dpcGVyTGlzdCA9IHJlcy5kYXRhWzBdLm1hdER0b3NcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0Lm1hdG5yID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5tYXRuclxyXG5cdFx0XHRcdFx0XHRcdC8vIHRoYXQuaW5mb1RleHQuc3BlY3MgPSByZXMuZGF0YVswXS5tYXREdG9zWzBdLnNwZWNzXHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC5tYWtueCA9IHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGF0LmluZm9UZXh0LmNvdW50ID0gcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGF0LmluZm9UeXBlID09IDIgfHwgdGhhdC5pbmZvVHlwZSA9PSAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRpbWVPdXQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSB0aGF0LnRpbWVzKzFcclxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRFcnJvcigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9sZWQvZXJyb3JcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtsZWRJZDp0aGF0LmJhc2VMZWRJZH0sXHJcblx0XHRcdFx0XHRtZXRob2Q6XCJHRVRcIixcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGltZU91dCA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdHRoYXQudGltZXMgPSAwXHJcblx0XHRcdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySW5mbyA9IHJlcy5kYXRhXHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pbmZvVHlwZSA9IDNcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuWFtuS7luS/oeaBr1wiIFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQuZXJyb3IgPSBlcnJvckluZm9cclxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UeXBlID0gMlxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1RleHQudGl0bGUgPSBcIuWFtuS7luS/oeaBr1wiXHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhhdC5pbmZvVGV4dC50aXRsZSA9IFwi5byC5bi4XCJcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmluZm9UZXh0LmVycm9yID0gZXJyb3JJbmZvXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoYXQuaW5mb1R5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRpbWVPdXQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdHRoYXQuaW5mb1R5cGUgPSAwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5o6n5Yi25ZmoXHJcblx0XHRcdGNvbnRyb2xsZXIoKSB7XHJcblx0XHRcdFx0c3dpdGNoKHRoaXMuaW5mb1R5cGUpIHtcclxuXHRcdFx0XHRcdC8vIOacieS/oeaBryDkvYYg5rKh5pyJ6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdFx0XHRjYXNlIDA6IFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5lcnJvckluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgJiYgdGhpcy5pbmZvVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlIDE6IFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5ob21lVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmVycm9ySW5mb1ZpZXdTaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdC8vIOacieS/oeaBryDkuJQg5pyJ6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdFx0XHRjYXNlIDI6XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmhvbWVWaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaG9tZVZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVNb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmluZm9WaWV3U2hvdykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5mb1ZpZXdTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9Nb2RlID0gWydmYWRlJywgJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lcnJvckluZm9WaWV3U2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdH0sMTAwMClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHQvLyDmnInkv6Hmga8g5LiUIOaciemUmeivr+S/oeaBr1xyXG5cdFx0XHRcdFx0Y2FzZSAzOlxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5ob21lVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ob21lTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0XHRcdFx0XHR9LDEwMDApXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5pbmZvVmlld1Nob3cpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluZm9WaWV3U2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pbmZvTW9kZSA9IFsnZmFkZScsICdzbGlkZS1ib3R0b20nXVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVycm9ySW5mb01vZGUgPSBbJ2ZhZGUnLCAnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0XHRcdFx0XHR9LDEwMDApXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuLvlsY/luZVcclxuXHRcdFx0aGFuZGxlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9ICF0aGlzLmhvbWVWaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmi6PmlplcclxuXHRcdFx0aGFuZGxlMSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5pbmZvVmlld1Nob3cgPSAhdGhpcy5pbmZvVmlld1Nob3dcclxuXHRcdFx0XHR0aGlzLm1vZGVDbGFzcyA9IHR5cGVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5byC5bi4XHJcblx0XHRcdGhhbmRsZTIodHlwZSkge1xyXG5cdFx0XHRcdHRoaXMuZXJyb3JJbmZvVmlld1Nob3cgPSAhdGhpcy5lcnJvckluZm9WaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDphY3nva5cclxuXHRcdFx0ZWplY3RlZCAoKSB7XHJcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWPlua2iOmFjee9rlxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g56Gu6K6k6YWN572uXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnVVBST0onLHRoaXMuYmFzZVVybCk7XHJcblx0XHRcdFx0dGhpcy5nZXRVcmwoKVxyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pel5Y6GIOacjeWKoeWZqFxyXG5cdFx0XHRnZXREYXRlMigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9kYXRlXCIsXHJcblx0XHRcdFx0XHRtZXRob2Q6XCJHRVRcIixcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YS5kYXRhXHJcblx0XHRcdFx0XHRcdHRoYXQuY2FsZW5kYXIgPSByZXMueWVhciArIFwi5bm0XCIgKyByZXMubW9udGggKyBcIuaciFwiICsgcmVzLmRheSArIFwi5pelIFwiICsgcmVzLmhvdXIgKyBcIjpcIiArIHJlcy5taW51dGUgKyBcIjpcIiArIHJlcy5zZWNvbmQgKyBcIiBcIiArIHJlcy53ZWVrXHJcblx0XHRcdFx0XHRcdHRoYXQuY3VyckRhdGUgPSByZXMueWVhciArIFwiL1wiICsgcmVzLm1vbnRoICsgXCIvXCIgKyByZXMuZGF5XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdC8vIOaXpeWOhlxyXG5cdFx0XHRnZXREYXRlKCkge1xyXG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0dmFyIHllYXIsbW9udGgsZGF5LGhvdXJzLG1pbnV0ZXMsc2Vjb25kcyx3ZWVrc1xyXG5cdFx0XHRcdHllYXIgPSBkdC5nZXRGdWxsWWVhcigpO1xyXG5cdFx0XHRcdG1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuXHRcdFx0XHRkYXkgPSBkdC5nZXREYXRlKCkgPCAxMCA/ICcwJytkdC5nZXREYXRlKCkgOiBkdC5nZXREYXRlKCk7XHJcblx0XHRcdFx0aG91cnMgPSBkdC5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkdC5nZXRIb3VycygpIDogZHQuZ2V0SG91cnMoKTtcclxuXHRcdFx0XHRtaW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcblx0XHRcdFx0c2Vjb25kcyA9IGR0LmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZHQuZ2V0U2Vjb25kcygpIDogZHQuZ2V0U2Vjb25kcygpOyBcclxuXHRcdFx0XHR3ZWVrcyA9IGR0LmdldERheSgpOyBcclxuXHRcdFx0XHRzd2l0Y2ggKHdlZWtzKSB7XHJcblx0XHRcdFx0XHRjYXNlIDA6IHdlZWtzID0gXCLmmJ/mnJ/ml6VcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDE6IHdlZWtzID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDI6IHdlZWtzID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDM6IHdlZWtzID0gXCLmmJ/mnJ/kuIlcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDQ6IHdlZWtzID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDU6IHdlZWtzID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0IDogd2Vla3MgPSBcIuaYn+acn+WFrVwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmNhbGVuZGFyID0geWVhciArIFwi5bm0XCIgKyBtb250aCArIFwi5pyIXCIgKyBkYXkgKyBcIuaXpSBcIiArIGhvdXJzICsgXCI6XCIgKyBtaW51dGVzICsgXCI6XCIgKyBzZWNvbmRzICsgXCIgXCIgKyB3ZWVrc1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlRm9ybWF0KHZhbHVlKSB7XHJcblx0XHRcdFx0dmFyIGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJEYXRlKTsvLyDojrflj5blvZPliY3ml7bpl7RcclxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxyXG5cdFx0XHRcdHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMVxyXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXHJcblx0XHRcdFx0cmV0dXJuIG5ld0RhdGVcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblx0XHRcdGluaXRsaW5lQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSx0aGF0LmdldERhdGVGb3JtYXQoLTEwKSx0aGF0LmdldERhdGVGb3JtYXQoLTkpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOCksXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC0zKSx0aGF0LmdldERhdGVGb3JtYXQoLTIpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksdGhhdC5nZXREYXRlRm9ybWF0KDApLF1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKioqKioqKioqKioqKioqIOmlvOWbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHRcdFx0aW5pdFBpZUNoYXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xvYy9yZXBcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5QaWUuc2VyaWVzWzBdLmRhdGEgPSByZXMuZGF0YS5waWVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnN0b2NrQ291bnQgPSByZXMuZGF0YS5zdG9ja0N1bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5iYXNlSW5mby5ub25lQ291bnQgPSByZXMuZGF0YS5ub25lQ291bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnVzZWQgPSByZXMuZGF0YS51c2VkXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5iYXNlSW5mby51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE90aGVyKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL290aGVyXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdGNybklkOiB0aGF0LmJhc2VDcm5JZCwgXHJcblx0XHRcdFx0XHRcdGxlZElkOiB0aGF0LmJhc2VMZWRJZCxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnhEaXN0YW5jZSA9IHJlcy5kYXRhLnhEaXN0YW5jZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuYmFzZUluZm8ueURpc3RhbmNlID0gcmVzLmRhdGEueURpc3RhbmNlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5iYXNlSW5mby54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmJhc2VJbmZvLnlEdXJhdGlvbiA9IHJlcy5kYXRhLnlEdXJhdGlvblxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09PSA0MDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC8qIEBpbXBvcnQgdXJsKFwiLi4vLi4vc3RhdGljL2Nzcy9jb21tb24uY3NzXCIpOyAqL1xyXG5cdEBpbXBvcnQgdXJsKFwiaG9tZS5jc3NcIik7XHJcblx0Lyog5YiXICovXHJcblx0LmZsZXgtY29sIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdH1cclxuXHQvKiDooYwgKi9cclxuXHQuZmxleC1yb3cge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0fVxyXG5cdFxyXG5cdC5jb250YWluZXJ7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDE2M0U7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFxyXG5cdH1cclxuXHQvKiDkuLvop4blm74gKi9cclxuXHQuaG9tZS12aWV3IHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG5cdH1cclxuXHQuaG9tZS1yaWdodCB7XHJcblx0XHR3aWR0aDogNTB2dztcclxuXHRcdGhlaWdodDogODl2aDtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6IGNhZGV0Ymx1ZTsgKi9cclxuXHR9XHJcblx0LmhvbWUtcmlnaHQtYm94IHtcclxuXHRcdHdpZHRoOiA5OCU7XHJcblx0XHRoZWlnaHQ6IDk4JTtcclxuXHR9XHJcblx0LmhlYWQge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiAxMXZoO1xyXG5cdFx0Zm9udC1zaXplOjR2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xyXG5cdH1cclxuXHQudGltZS10b29scyB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMiU7XHJcblx0XHR0b3A6IDIlO1xyXG5cdFx0Zm9udC1zaXplOjF2dztcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC44KTtcclxuXHR9XHJcblx0LmJ1dHRvbi1sZWZ0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogMjEuMyU7XHJcblx0XHR3aWR0aDogMTMuNSU7XHJcblx0XHRoZWlnaHQ6IDguNSU7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XHJcblx0fVxyXG5cdC5idXR0b24tcmlnaHQge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9yaWdodC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHR0b3A6IDEuOCU7XHJcblx0XHRsZWZ0OiA2NSU7XHJcblx0XHR3aWR0aDogMTMuNSU7XHJcblx0XHRoZWlnaHQ6IDguNSU7XHJcblx0fVxyXG5cdC5pbWctYm94IHtcclxuXHRcdGhlaWdodDogMTZ2dztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjsgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0fVxyXG5cdC5pdGVtLWltZyB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0bWFyZ2luLXRvcDogNSU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMGZmZmY7ICovXHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0LmRpc3RhbmNlIHtcclxuXHRcdFxyXG5cdH1cclxuXHQuaXRlbS1pbWcgaW1hZ2Uge1xyXG5cdFx0aGVpZ2h0OiA1dnc7XHJcblx0XHR3aWR0aDogNXZ3O1xyXG5cdH1cclxuXHQucHJvZ3Jlc3NCYXIge1xyXG5cdFx0bWFyZ2luLXRvcDogOSU7XHJcblx0XHQvKiB3aWR0aDogMTAwJTsgKi9cclxuXHRcdGhlaWdodDogMjAlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzIzMzc1MTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDV2dztcclxuXHR9XHJcblx0LnByb2dyZXNzIHtcclxuXHRcdC8qIHdpZHRoOiA5MCU7ICovXHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXZ3O1xyXG5cdH1cclxuXHQuY2hhcnRzLWJveCB7XHJcblx0ICB3aWR0aDogODAlO1xyXG5cdCAgaGVpZ2h0OiAyNHZoO1xyXG5cdCAgbWFyZ2luLWxlZnQ6IDEwJTtcclxuXHR9IFxyXG5cdC5jaGFydHMtYm94LXJpbmcge1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdGhlaWdodDogMjR2aDtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMGZmZmY7ICovXHJcblx0fVxyXG5cdC5zdWItaW5mbyB7XHJcblx0XHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdH1cclxuXHQuc3ViLWluZm8gaW1hZ2Uge1xyXG5cdFx0d2lkdGg6IDMuNXZ3O1xyXG5cdFx0aGVpZ2h0OiAzLjV2dztcclxuXHR9XHJcblx0XHJcblx0XHJcblx0XHJcblx0XHJcblx0Lyog5YWx55SoICovXHJcblx0Lm1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OHZoO1xyXG5cdFx0bWFyZ2luLXRvcDogMXZoO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFxyXG5cdH1cclxuXHQubWlhbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0Lm1pYW4taXRlbS1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuYm94LWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tdG9wOiA0JTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5pdGVtLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZToxLjV2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0fVxyXG5cdC5pdGVtLXN1YlRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTowLjV2dztcclxuXHRcdHRleHQtaW5kZW50OiAwZW07XHJcblx0fVxyXG5cdC5pdGVtLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHR0ZXh0LWluZGVudDogMmVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAzdmg7XHJcblx0fVxyXG5cdFxyXG5cdC8qIOWFqOadvy/mi6Pmlpnkv6Hmga8gKi9cclxuXHQuaW5mby12aWV3IHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG5cdH1cclxuXHQuaW5mby1tYWluIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdGhlaWdodDogODh2aDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5pbmZvLWJveCB7XHJcblx0XHR3aWR0aDogOTglO1xyXG5cdFx0aGVpZ2h0OiA5OCU7XHJcblx0fVxyXG5cdC8qIOW8guW4uOS/oeaBryAqL1xyXG5cdC5lcnJvci1pbmZvLXZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcblx0fVxyXG5cdFxyXG5cdC8qIOW8ueWHujrphY3nva7ljLrln58gKi9cclxuXHQuZWplY3QtbWFzayB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHR6LWluZGV4OiA5OTk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1x0XHJcblx0fVxyXG5cdC5lamVjdHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHdpZHRoOiA0MHZ3O1xyXG5cdFx0aGVpZ2h0OiA0MHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDJyZW07XHJcblx0fVxyXG5cdC5lamVjdC10aXRsZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNXZoO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDZ2aDtcclxuXHRcdGZvbnQtc2l6ZTogM3ZoO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRtYXJnaW4tdG9wOiAydmg7XHJcblx0XHRoZWlnaHQ6IDI1dmg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAxNjNFOyAqL1xyXG5cdFx0Ojotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9XHJcblx0fVxyXG5cdC5pdGVtIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luOiAxdmggMCAwIDA7XHJcblx0XHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdFx0Y29sb3I6ICMzNjM2MzY7XHJcblx0fVxyXG5cdC5kZXNjIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGNvbG9yOiAjNjA2MjY2O1xyXG5cdFx0XHJcblx0fVxyXG5cdC5pbnB1dCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctbGVmdDogNXB4O1xyXG5cdFx0cGFkZGluZy1yaWdodDogNXB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDN2aDtcclxuXHRcdGJvcmRlcjogMC4xdmggc29saWQgI2NmZDRkYztcclxuXHRcdG1hcmdpbi1yaWdodDogMjAlO1xyXG5cdFx0dGV4dC1hbGlnbjogc3RhcnQ7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCBpbnB1dCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogM3ZoO1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHRcclxuXHRcdFxyXG5cdH1cclxuXHQuZWplY3QtYnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0aGVpZ2h0OiA2dmg7XHJcblx0XHRsaW5lLWhlaWdodDogNnZoO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDEuNXZ3O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtOmxhc3QtY2hpbGQge1xyXG5cdFx0Y29sb3I6ICM2N0MyM0E7XHJcblx0XHRcclxuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmluZm8tYm94LXRleHQge1xyXG5cdFx0d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2FsaWduLWl0ZW1zOiBjZW50ZXI7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG5cdC5pbmZvLWJveC10ZXh0LWl0ZW0ge1xyXG5cdFx0aGVpZ2h0OiAyMCU7Zm9udC1zaXplOiA4dmg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///101\n"); /***/ }), /* 102 */ /*!**********************************************************!*\ !*** D:/code/private/Monitor-APP/mockdata/demodata.json ***! \**********************************************************/ /*! exports provided: localdata, localdataB, TLine, Scatter, Bubble, Column, ColumnA, Mix, Line, Pie, PieA, Radar, Arcbar1, Arcbar2, Gauge, Candle, CandleColumn, Word, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"localdata\\\":[{\\\"value\\\":35,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":36,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":27,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":31,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":21,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":33,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":24,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":13,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":6,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"完成量\\\"},{\\\"value\\\":34,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"目标值\\\"},{\\\"value\\\":28,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"完成量\\\"}],\\\"localdataB\\\":[{\\\"value\\\":50,\\\"text\\\":\\\"一班\\\"},{\\\"value\\\":30,\\\"text\\\":\\\"二班\\\"},{\\\"value\\\":20,\\\"text\\\":\\\"三班\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"四班\\\"},{\\\"value\\\":8,\\\"text\\\":\\\"五班\\\"}],\\\"TLine\\\":{\\\"series\\\":[{\\\"name\\\":\\\"时间轴1\\\",\\\"data\\\":[[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]},{\\\"name\\\":\\\"时间轴2\\\",\\\"data\\\":[[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]},{\\\"name\\\":\\\"时间轴3\\\",\\\"data\\\":[[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]}]},\\\"Scatter\\\":{\\\"series\\\":[{\\\"name\\\":\\\"散点一\\\",\\\"data\\\":[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82]]},{\\\"name\\\":\\\"散点二\\\",\\\"data\\\":[[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]]}]},\\\"Bubble\\\":{\\\"series\\\":[{\\\"name\\\":\\\"气泡一\\\",\\\"data\\\":[[95,95,23,\\\"标题1\\\"],[30,55,33,\\\"标题2\\\"]]},{\\\"name\\\":\\\"气泡二\\\",\\\"data\\\":[[130,30,30,\\\"标题3\\\"],[200,90,40,\\\"标题4\\\"]]}]},\\\"Column\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"目标值\\\",\\\"data\\\":[35,36,31,33,13,34]},{\\\"name\\\":\\\"完成量\\\",\\\"data\\\":[18,27,21,24,6,28]}]},\\\"ColumnA\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,{\\\"value\\\":20,\\\"color\\\":\\\"#f04864\\\"},45,37,43,34]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[30,{\\\"value\\\":40,\\\"color\\\":\\\"#facc14\\\"},25,14,34,18]}]},\\\"Mix\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"曲面\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"area\\\",\\\"style\\\":\\\"curve\\\"},{\\\"name\\\":\\\"柱1\\\",\\\"index\\\":1,\\\"data\\\":[40,{\\\"value\\\":30,\\\"color\\\":\\\"#f04864\\\"},55,110,24,58],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"柱2\\\",\\\"index\\\":1,\\\"data\\\":[50,20,75,60,34,38],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"曲线\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"line\\\",\\\"style\\\":\\\"curve\\\",\\\"color\\\":\\\"#1890ff\\\",\\\"disableLegend\\\":true},{\\\"name\\\":\\\"折线\\\",\\\"data\\\":[120,140,105,170,95,160],\\\"type\\\":\\\"line\\\",\\\"color\\\":\\\"#2fc25b\\\"},{\\\"name\\\":\\\"点\\\",\\\"index\\\":2,\\\"data\\\":[100,80,125,150,112,132],\\\"type\\\":\\\"point\\\",\\\"color\\\":\\\"#f04864\\\"}]},\\\"Line\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量A\\\",\\\"data\\\":[35,8,25,37,4,20]},{\\\"name\\\":\\\"成交量B\\\",\\\"data\\\":[70,40,65,100,44,68]}]},\\\"Pie\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":50},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":30},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":20},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":18},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":8}]},\\\"PieA\\\":{\\\"series\\\":[{\\\"data\\\":[{\\\"name\\\":\\\"在库\\\",\\\"value\\\":314},{\\\"name\\\":\\\"空\\\",\\\"value\\\":1175},{\\\"name\\\":\\\"禁用\\\",\\\"value\\\":96}]}]},\\\"Radar\\\":{\\\"categories\\\":[\\\"维度1\\\",\\\"维度2\\\",\\\"维度3\\\",\\\"维度4\\\",\\\"维度5\\\",\\\"维度6\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[90,110,165,195,187,172]},{\\\"name\\\":\\\"成交量2\\\",\\\"data\\\":[190,210,105,35,27,102]}]},\\\"Arcbar1\\\":{\\\"series\\\":[{\\\"name\\\":\\\"正确率\\\",\\\"data\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"}]},\\\"Arcbar2\\\":{\\\"series\\\":[{\\\"name\\\":\\\"一班\\\",\\\"data\\\":0.8},{\\\"name\\\":\\\"二班\\\",\\\"data\\\":0.6},{\\\"name\\\":\\\"三班\\\",\\\"data\\\":0.45},{\\\"name\\\":\\\"四班\\\",\\\"data\\\":0.3},{\\\"name\\\":\\\"五班\\\",\\\"data\\\":0.15}]},\\\"Gauge\\\":{\\\"categories\\\":[{\\\"value\\\":0.2,\\\"color\\\":\\\"#1890ff\\\"},{\\\"value\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"},{\\\"value\\\":1,\\\"color\\\":\\\"#f04864\\\"}],\\\"series\\\":[{\\\"name\\\":\\\"完成率\\\",\\\"data\\\":0.66}]},\\\"Candle\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"上证指数\\\",\\\"data\\\":[[2320.26,2302.6,2287.3,2362.94],[2300,2291.3,2288.26,2308.38],[2295.35,2346.5,2295.35,2346.92],[2347.22,2358.98,2337.35,2363.8],[2360.75,2382.48,2347.89,2383.76],[2383.43,2385.42,2371.23,2391.82],[2377.41,2419.02,2369.57,2421.15],[2425.92,2428.15,2417.58,2440.38],[2411,2433.13,2403.3,2437.42],[2432.68,2434.48,2427.7,2441.73],[2430.69,2418.53,2394.22,2433.89],[2416.62,2432.4,2414.4,2443.03],[2441.91,2421.56,2415.43,2444.8],[2420.26,2382.91,2373.53,2427.07],[2383.49,2397.18,2370.61,2397.94],[2378.82,2325.95,2309.17,2378.82],[2322.94,2314.16,2308.76,2330.88],[2320.62,2325.82,2315.01,2338.78],[2313.74,2293.34,2289.89,2340.71],[2297.77,2313.22,2292.03,2324.63],[2322.32,2365.59,2308.92,2366.16],[2364.54,2359.51,2330.86,2369.65],[2332.08,2273.4,2259.25,2333.54],[2274.81,2326.31,2270.1,2328.14],[2333.61,2347.18,2321.6,2351.44],[2340.44,2324.29,2304.27,2352.02],[2326.42,2318.61,2314.59,2333.67],[2314.68,2310.59,2296.58,2320.96],[2309.16,2286.6,2264.83,2333.29],[2282.17,2263.97,2253.25,2286.33],[2255.77,2270.28,2253.31,2276.22],[2269.31,2278.4,2250,2312.08],[2267.29,2240.02,2239.21,2276.05],[2244.26,2257.43,2232.02,2261.31],[2257.74,2317.37,2257.42,2317.86],[2318.21,2324.24,2311.6,2330.81],[2321.4,2328.28,2314.97,2332],[2334.74,2326.72,2319.91,2344.89],[2318.58,2297.67,2281.12,2319.99],[2299.38,2301.26,2289,2323.48],[2273.55,2236.3,2232.91,2273.55],[2238.49,2236.62,2228.81,2246.87],[2229.46,2234.4,2227.31,2243.95],[2234.9,2227.74,2220.44,2253.42],[2232.69,2225.29,2217.25,2241.34],[2196.24,2211.59,2180.67,2212.59],[2215.47,2225.77,2215.47,2234.73],[2224.93,2226.13,2212.56,2233.04],[2236.98,2219.55,2217.26,2242.48],[2218.09,2206.78,2204.44,2226.26],[2199.91,2181.94,2177.39,2204.99],[2169.63,2194.85,2165.78,2196.43],[2195.03,2193.8,2178.47,2197.51],[2181.82,2197.6,2175.44,2206.03],[2201.12,2244.64,2200.58,2250.11],[2236.4,2242.17,2232.26,2245.12],[2242.62,2184.54,2182.81,2242.62],[2187.35,2218.32,2184.11,2226.12],[2213.19,2199.31,2191.85,2224.63],[2203.89,2177.91,2173.86,2210.58],[2170.78,2174.12,2161.14,2179.65],[2179.05,2205.5,2179.05,2222.81],[2212.5,2231.17,2212.5,2236.07],[2227.86,2235.57,2219.44,2240.26],[2242.39,2246.3,2235.42,2255.21],[2246.96,2232.97,2221.38,2247.86],[2228.82,2246.83,2225.81,2247.67],[2247.68,2241.92,2231.36,2250.85],[2238.9,2217.01,2205.87,2239.93],[2217.09,2224.8,2213.58,2225.19],[2221.34,2251.81,2210.77,2252.87],[2249.81,2282.87,2248.41,2288.09],[2286.33,2299.99,2281.9,2309.39],[2297.11,2305.11,2290.12,2305.3],[2303.75,2302.4,2292.43,2314.18],[2293.81,2275.67,2274.1,2304.95],[2281.45,2288.53,2270.25,2292.59],[2286.66,2293.08,2283.94,2301.7],[2293.4,2321.32,2281.47,2322.1],[2323.54,2324.02,2321.17,2334.33],[2316.25,2317.75,2310.49,2325.72],[2320.74,2300.59,2299.37,2325.53],[2300.21,2299.25,2294.11,2313.43],[2297.1,2272.42,2264.76,2297.1],[2270.71,2270.93,2260.87,2276.86],[2264.43,2242.11,2240.07,2266.69],[2242.26,2210.9,2205.07,2250.63],[2190.1,2148.35,2126.22,2190.1]]}]},\\\"CandleColumn\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"成交量1\\\",\\\"data\\\":[15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45]}]},\\\"Word\\\":{\\\"series\\\":[{\\\"name\\\":\\\"跨全端图表\\\",\\\"textSize\\\":25},{\\\"name\\\":\\\"微信小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"支付宝小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"百度小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"QQ小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"头条小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"抖音小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"360小程序\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"跨全端\\\",\\\"textSize\\\":12}]}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDIuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///102\n"); /***/ }), /* 103 */ /*!*********************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/data.json ***! \*********************************************************/ /*! exports provided: dataInfo2, dataError2, lineData, pieData, other, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"dataInfo2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"全板出库\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"barcode\\\":\\\"80009901\\\",\\\"matDtos\\\":[{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"brand\\\":\\\"ck11111111111\\\",\\\"number\\\":\\\"100\\\",\\\"weight\\\":\\\"123.568\\\",\\\"matnr\\\":\\\"020101000001\\\",\\\"maknx\\\":\\\"63-90型单立柱\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"红色\\\",\\\"total\\\":200},{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"暂存\\\",\\\"total\\\":200},{\\\"orderNo\\\":\\\"ck11111111111\\\",\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"红色\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"\\\",\\\"total\\\":200},{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"工程塑料下弯头\\\",\\\"batch\\\":null,\\\"count\\\":40,\\\"specs\\\":\\\"gcslxwt\\\",\\\"info\\\":\\\"浙江中扬\\\",\\\"bz\\\":\\\"17号框\\\",\\\"total\\\":200}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataError2\\\":{\\\"data\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}},\\\"lineData\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"rows\\\":[{\\\"name\\\":\\\"入库数量\\\",\\\"data\\\":[0,0,0,0,1,1,0,0,4,4,0,4]},{\\\"name\\\":\\\"出库数量\\\",\\\"data\\\":[0,0,0,0,0,0,0,0,3,4,0,1]}]}},\\\"pieData\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"emptyCount\\\":3582,\\\"noneCount\\\":256,\\\"total\\\":3840,\\\"stockCunt\\\":2,\\\"usedPr\\\":0.1,\\\"used\\\":2,\\\"pie\\\":[{\\\"name\\\":\\\"在库\\\",\\\"value\\\":2},{\\\"name\\\":\\\"空\\\",\\\"value\\\":3582},{\\\"name\\\":\\\"使用\\\",\\\"value\\\":0},{\\\"name\\\":\\\"禁用\\\",\\\"value\\\":256}]}},\\\"other\\\":{\\\"msg\\\":\\\"操作成功\\\",\\\"code\\\":200,\\\"data\\\":{\\\"xDistance\\\":15651,\\\"xSpeed\\\":32704,\\\"zSpeed\\\":32704,\\\"yDistance\\\":15,\\\"yDuration\\\":0,\\\"ySpeed\\\":32704,\\\"xDuration\\\":0,\\\"content\\\":\\\"\\\",\\\"forkPos\\\":1,\\\"isShow\\\":false}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDMuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///103\n"); /***/ }), /* 104 */ /*!*******************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/test/test.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 _test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./test.vue?vue&type=template&id=65833496&mpType=page */ 105);\n/* harmony import */ var _test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./test.vue?vue&type=script&lang=js&mpType=page */ 107);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _test_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 _test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/test/test.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VMO0FBQ3ZMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi90ZXN0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NTgzMzQ5NiZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdGVzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vdGVzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3Rlc3QvdGVzdC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///104\n"); /***/ }), /* 105 */ /*!*************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/test/test.vue?vue&type=template&id=65833496&mpType=page ***! \*************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./test.vue?vue&type=template&id=65833496&mpType=page */ 106); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_template_id_65833496_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 106 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/test/test.vue?vue&type=template&id=65833496&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 var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", [ _c("button", { staticClass: _vm._$s(1, "sc", "clear"), attrs: { _i: 1 }, on: { click: _vm.clearUrl }, }), _vm._$s(2, "i", _vm.data != "") ? _c("web-view", { attrs: { src: _vm._$s(2, "a-src", _vm.data), _i: 2 } }) : _vm._e(), _vm._$s(3, "i", _vm.data == "") ? _c("view", [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.url, expression: "url", }, ], attrs: { _i: 4 }, domProps: { value: _vm._$s(4, "v-model", _vm.url) }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.url = $event.target.value }, }, }), _c("button", { attrs: { _i: 5 }, on: { click: _vm.setUrl } }), ]) : _vm._e(), ]) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 107 */ /*!*******************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/test/test.vue?vue&type=script&lang=js&mpType=page ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./test.vue?vue&type=script&lang=js&mpType=page */ 108);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_test_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJuQixDQUFnQix5b0JBQUcsRUFBQyIsImZpbGUiOiIxMDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3Rlc3QudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdGVzdC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/test/test.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n data: '',\n url: 'http://10.10.10.120:9090/wcs/h5/index.html'\n };\n },\n onShow: function onShow() {\n var that = this;\n uni.getStorage({\n key: \"data\",\n success: function success(e) {\n that.data = e.data;\n }\n });\n // 隐藏时间,电量,信号等\n },\n\n methods: {\n setUrl: function setUrl() {\n if (this.url != '') {\n uni.setStorage({\n key: \"data\",\n data: this.url\n });\n this.data = this.url;\n }\n },\n clearUrl: function clearUrl() {\n this.data = \"\";\n this.url = \"http://10.10.10.120:9090/wcs/h5/index.html\";\n uni.removeStorage({\n key: \"data\"\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvdGVzdC90ZXN0LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwidXJsIiwib25TaG93IiwidGhhdCIsInVuaSIsImdldFN0b3JhZ2UiLCJrZXkiLCJzdWNjZXNzIiwiZSIsIm1ldGhvZHMiLCJzZXRVcmwiLCJzZXRTdG9yYWdlIiwiY2xlYXJVcmwiLCJyZW1vdmVTdG9yYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxlQUVlO0VBQ2RBLElBQUksa0JBQUc7SUFDTixPQUFPO01BQ05BLElBQUksRUFBRSxFQUFFO01BQ1JDLEdBQUcsRUFBRTtJQUNOLENBQUM7RUFDRixDQUFDO0VBQ0RDLE1BQU0sb0JBQUc7SUFDUixJQUFJQyxJQUFJLEdBQUcsSUFBSTtJQUNmQyxHQUFHLENBQUNDLFVBQVUsQ0FBQztNQUNkQyxHQUFHLEVBQUUsTUFBTTtNQUNYQyxPQUFPLG1CQUFDQyxDQUFDLEVBQUU7UUFDVkwsSUFBSSxDQUFDSCxJQUFJLEdBQUdRLENBQUMsQ0FBQ1IsSUFBSTtNQUNuQjtJQUNELENBQUMsQ0FBQztJQUNGO0VBQ0QsQ0FBQzs7RUFDRFMsT0FBTyxFQUFFO0lBQ1JDLE1BQU0sb0JBQUc7TUFDUixJQUFHLElBQUksQ0FBQ1QsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUNsQkcsR0FBRyxDQUFDTyxVQUFVLENBQUM7VUFDZEwsR0FBRyxFQUFFLE1BQU07VUFDWE4sSUFBSSxFQUFFLElBQUksQ0FBQ0M7UUFDWixDQUFDLENBQUM7UUFDRixJQUFJLENBQUNELElBQUksR0FBRyxJQUFJLENBQUNDLEdBQUc7TUFDckI7SUFDRCxDQUFDO0lBQ0RXLFFBQVEsc0JBQUc7TUFDVixJQUFJLENBQUNaLElBQUksR0FBRyxFQUFFO01BQ2QsSUFBSSxDQUFDQyxHQUFHLEdBQUcsNENBQTRDO01BQ3ZERyxHQUFHLENBQUNTLGFBQWEsQ0FBQztRQUNqQlAsR0FBRyxFQUFFO01BQ04sQ0FBQyxDQUFDO0lBQ0g7RUFDRDtBQUNELENBQUM7QUFBQSIsImZpbGUiOiIxMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogJycsXG5cdFx0XHR1cmw6ICdodHRwOi8vMTAuMTAuMTAuMTIwOjkwOTAvd2NzL2g1L2luZGV4Lmh0bWwnXG5cdFx0fVxuXHR9LFxuXHRvblNob3coKSB7XG5cdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0dW5pLmdldFN0b3JhZ2Uoe1xuXHRcdFx0a2V5OiBcImRhdGFcIixcblx0XHRcdHN1Y2Nlc3MoZSkge1xuXHRcdFx0XHR0aGF0LmRhdGEgPSBlLmRhdGFcblx0XHRcdH1cblx0XHR9KVxuXHRcdC8vIOmakOiXj+aXtumXtCznlLXph48s5L+h5Y+3562JXG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHRzZXRVcmwoKSB7XG5cdFx0XHRpZih0aGlzLnVybCAhPSAnJykge1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZSh7XG5cdFx0XHRcdFx0a2V5OiBcImRhdGFcIixcblx0XHRcdFx0XHRkYXRhOiB0aGlzLnVybFxuXHRcdFx0XHR9KVxuXHRcdFx0XHR0aGlzLmRhdGEgPSB0aGlzLnVybDtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNsZWFyVXJsKCkge1xuXHRcdFx0dGhpcy5kYXRhID0gXCJcIlxuXHRcdFx0dGhpcy51cmwgPSBcImh0dHA6Ly8xMC4xMC4xMC4xMjA6OTA5MC93Y3MvaDUvaW5kZXguaHRtbFwiXG5cdFx0XHR1bmkucmVtb3ZlU3RvcmFnZSh7XG5cdFx0XHRcdGtleTogXCJkYXRhXCJcblx0XHRcdH0pXG5cdFx0fVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ /*!***************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index.vue?mpType=page ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page */ 110);\n/* harmony import */ var _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&setup=true&lang=ts&mpType=page */ 112);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"2b59da0e\",\n null,\n false,\n _index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDK0U7QUFDTDs7O0FBRzFFO0FBQ29MO0FBQ3BMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLGlHQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmI1OWRhMGUmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjJiNTlkYTBlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///109\n"); /***/ }), /* 110 */ /*!*********************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index.vue?vue&type=template&id=2b59da0e&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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2b59da0e&scoped=true&mpType=page */ 111); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2b59da0e_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 111 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/index.vue?vue&type=template&id=2b59da0e&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 var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 }, }) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 112 */ /*!**************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index.vue?vue&type=script&setup=true&lang=ts&mpType=page ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/ts-loader??ref--8-1!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-2!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&mpType=page */ 113);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_ts_loader_index_js_ref_8_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_2_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQSt0QixDQUFnQiwydUJBQUcsRUFBQyIsImZpbGUiOiIxMTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/cmVmLS04LTEhLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tOC0yIS4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10cyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL3RzLWxvYWRlci9pbmRleC5qcz8/cmVmLS04LTEhLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tOC0yIS4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0JnNldHVwPXRydWUmbGFuZz10cyZtcFR5cGU9cGFnZVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///112\n"); /***/ }), /* 113 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--8-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/code/private/Monitor-APP/pages/index.vue?vue&type=script&setup=true&lang=ts&mpType=page ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMTMuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///113\n"); /***/ }), /* 114 */ /*!*********************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/index.vue?mpType=page ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 115);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 136);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_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 _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3VMO0FBQ3ZMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTE0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MmJlODRhM2MmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///114\n"); /***/ }), /* 115 */ /*!***************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \***************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 116); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 116 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 31) .default, uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 117) .default, uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 122) .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", "container"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "floor-screen"), class: _vm._$s(1, "c", _vm.floorMove), attrs: { _i: 1 }, }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "head"), attrs: { _i: 2 } }, [ _c("text", { attrs: { _i: 3 }, on: { click: function ($event) { return _vm.port() }, }, }), _c( "view", { staticClass: _vm._$s(4, "sc", "time-tools"), attrs: { _i: 4 }, }, [ _vm._v( _vm._$s(4, "t0-0", _vm._s(_vm.year)) + _vm._$s(4, "t0-1", _vm._s(_vm.month)) + _vm._$s(4, "t0-2", _vm._s(_vm.day)) + _vm._$s(4, "t0-3", _vm._s(_vm.hours)) + _vm._$s(4, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(4, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(4, "t0-6", _vm._s(_vm.week)) ), ] ), _c("view", { staticClass: _vm._$s(5, "sc", "button-left"), attrs: { _i: 5 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(6, "sc", "button-right"), attrs: { _i: 6 }, on: { click: function ($event) { return _vm.ledId() }, }, }), ] ), _c( "view", { staticClass: _vm._$s(7, "sc", "main"), attrs: { _i: 7 } }, [ _c( "view", { staticClass: _vm._$s(8, "sc", "main-sides"), attrs: { _i: 8 }, }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "box"), attrs: { _i: 9 } }, [ _c("view", { staticClass: _vm._$s( 10, "sc", "box-border box-border1" ), attrs: { _i: 10 }, }), _c("view", { staticClass: _vm._$s( 11, "sc", "box-border box-border2" ), attrs: { _i: 11 }, }), _c("view", { staticClass: _vm._$s( 12, "sc", "box-border box-border3" ), attrs: { _i: 12 }, }), _c("view", { staticClass: _vm._$s( 13, "sc", "box-border box-border4" ), attrs: { _i: 13 }, }), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(14, "v-show", !_vm.errorShow), expression: "_$s(14,'v-show',!errorShow)", }, ], attrs: { _i: 14 }, }, [ _c( "view", { class: _vm._$s(15, "c", _vm.width), attrs: { _i: 15 }, }, [ _c( "view", { staticClass: _vm._$s(16, "sc", "box-items"), attrs: { _i: 16 }, }, [_vm._v(_vm._$s(16, "t0-0", _vm._s(_vm.title)))] ), _c( "view", { staticClass: _vm._$s(17, "sc", "box-items"), attrs: { _i: 17 }, }, [_vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.staNo)))] ), _c( "view", { staticClass: _vm._$s(18, "sc", "box-items"), attrs: { _i: 18 }, }, [_vm._v(_vm._$s(18, "t0-0", _vm._s(_vm.maknx)))] ), _c( "view", { staticClass: _vm._$s(19, "sc", "box-items"), attrs: { _i: 19 }, }, [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.specs)))] ), _c( "view", { staticClass: _vm._$s(20, "sc", "box-items"), attrs: { _i: 20 }, }, [_vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.count)))] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(21, "v-show", _vm.orderShow), expression: "_$s(21,'v-show',orderShow)", }, ], attrs: { _i: 21 }, }, [ _c( "view", { staticClass: _vm._$s(22, "sc", "box-items"), attrs: { _i: 22 }, }, [ _vm._v( _vm._$s(22, "t0-0", _vm._s(_vm.orderNo)) ), ] ), _c( "view", { staticClass: _vm._$s(23, "sc", "box-items"), attrs: { _i: 23 }, }, [ _vm._v( _vm._$s(23, "t0-0", _vm._s(_vm.doneOfTray)) ), ] ), _c( "view", { staticClass: _vm._$s(24, "sc", "box-items"), attrs: { _i: 24 }, }, [ _vm._v( _vm._$s(24, "t0-0", _vm._s(_vm.totalOfTray)) ), ] ), _c( "view", { staticClass: _vm._$s(25, "sc", "box-items"), attrs: { _i: 25 }, }, [ _vm._v( _vm._$s(25, "t0-0", _vm._s(_vm.doneOfUnit)) ), ] ), _c( "view", { staticClass: _vm._$s(26, "sc", "box-items"), attrs: { _i: 26 }, }, [ _vm._v( _vm._$s(26, "t0-0", _vm._s(_vm.totalOfUnit)) ), ] ), ] ), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(27, "v-show", _vm.errorShow), expression: "_$s(27,'v-show',errorShow)", }, ], attrs: { _i: 27 }, }, [ _c("view", [ _vm._v(_vm._$s(28, "t0-0", _vm._s(_vm.errorMsg))), ]), ] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(29, "sc", "top-screen"), class: _vm._$s(29, "c", _vm.topMove), attrs: { _i: 29 }, }, [ _c( "view", { staticClass: _vm._$s(30, "sc", "head"), attrs: { _i: 30 } }, [ _c("text", { attrs: { _i: 31 }, on: { click: function ($event) { return _vm.port() }, }, }), _c( "view", { staticClass: _vm._$s(32, "sc", "time-tools"), attrs: { _i: 32 }, }, [ _vm._v( _vm._$s(32, "t0-0", _vm._s(_vm.year)) + _vm._$s(32, "t0-1", _vm._s(_vm.month)) + _vm._$s(32, "t0-2", _vm._s(_vm.day)) + _vm._$s(32, "t0-3", _vm._s(_vm.hours)) + _vm._$s(32, "t0-4", _vm._s(_vm.minutes)) + _vm._$s(32, "t0-5", _vm._s(_vm.seconds)) + _vm._$s(32, "t0-6", _vm._s(_vm.week)) ), ] ), _c("view", { staticClass: _vm._$s(33, "sc", "button-left"), attrs: { _i: 33 }, on: { click: function ($event) { return _vm.ejected() }, }, }), _c("view", { staticClass: _vm._$s(34, "sc", "button-right"), attrs: { _i: 34 }, on: { click: function ($event) { return _vm.ledId() }, }, }), ] ), _c( "view", { staticClass: _vm._$s(35, "sc", "main"), attrs: { _i: 35 } }, [ _c( "view", { staticClass: _vm._$s(36, "sc", "main-sides"), attrs: { _i: 36 }, }, [ _c( "view", { staticClass: _vm._$s(37, "sc", "box box-lg"), attrs: { _i: 37 }, }, [ _c("view", { staticClass: _vm._$s( 38, "sc", "box-border box-border1" ), attrs: { _i: 38 }, }), _c("view", { staticClass: _vm._$s( 39, "sc", "box-border box-border2" ), attrs: { _i: 39 }, }), _c("view", { staticClass: _vm._$s( 40, "sc", "box-border box-border3" ), attrs: { _i: 40 }, }), _c("view", { staticClass: _vm._$s( 41, "sc", "box-border box-border4" ), attrs: { _i: 41 }, }), _c( "view", { staticClass: _vm._$s(42, "sc", "box-item introduce"), attrs: { _i: 42 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(44, "sc", "english"), attrs: { _i: 44 }, }), _c("p", { staticClass: _vm._$s(45, "sc", "introduce-content"), attrs: { _i: 45 }, }), ] ), _c( "view", { staticClass: _vm._$s( 46, "sc", "box-item charge-info" ), attrs: { _i: 46 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(48, "sc", "english"), attrs: { _i: 48 }, }), _c( "view", { staticClass: _vm._$s( 49, "sc", "charge-info-item" ), attrs: { _i: 49 }, }, [ _c("image", { attrs: { src: _vm._$s( 50, "a-src", __webpack_require__(/*! ../../static/a1.png */ 132) ), _i: 50, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(52, "sc", "count"), attrs: { _i: 52 }, }, [ _vm._v( _vm._$s(52, "t0-0", _vm._s(_vm.xDistance)) ), ] ), _c("text", { staticClass: _vm._$s(53, "sc", "unit"), attrs: { _i: 53 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 55, "sc", "charge-info-item" ), attrs: { _i: 55 }, }, [ _c("image", { attrs: { src: _vm._$s( 56, "a-src", __webpack_require__(/*! ../../static/b1.png */ 133) ), _i: 56, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(58, "sc", "count"), attrs: { _i: 58 }, }, [ _vm._v( _vm._$s(58, "t0-0", _vm._s(_vm.yDistance)) ), ] ), _c("text", { staticClass: _vm._$s(59, "sc", "unit"), attrs: { _i: 59 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 61, "sc", "charge-info-item" ), attrs: { _i: 61 }, }, [ _c("image", { attrs: { src: _vm._$s( 62, "a-src", __webpack_require__(/*! ../../static/c1.png */ 134) ), _i: 62, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(64, "sc", "count"), attrs: { _i: 64 }, }, [ _vm._v( _vm._$s(64, "t0-0", _vm._s(_vm.xDuration)) ), ] ), _c("text", { staticClass: _vm._$s(65, "sc", "unit"), attrs: { _i: 65 }, }), ]), _c("view"), ] ), _c( "view", { staticClass: _vm._$s( 67, "sc", "charge-info-item" ), attrs: { _i: 67 }, }, [ _c("image", { attrs: { src: _vm._$s( 68, "a-src", __webpack_require__(/*! ../../static/d1.png */ 135) ), _i: 68, }, }), _c("view", [ _c( "text", { staticClass: _vm._$s(70, "sc", "count"), attrs: { _i: 70 }, }, [ _vm._v( _vm._$s(70, "t0-0", _vm._s(_vm.yDuration)) ), ] ), _c("text", { staticClass: _vm._$s(71, "sc", "unit"), attrs: { _i: 71 }, }), ]), _c("view"), ] ), ] ), _c( "view", { staticClass: _vm._$s(73, "sc", "box-item use-info"), attrs: { _i: 73 }, }, [ _c( "view", { staticClass: _vm._$s(74, "sc", "use-left"), attrs: { _i: 74 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(76, "sc", "english"), attrs: { _i: 76 }, }), ] ), _c( "view", { staticClass: _vm._$s(77, "sc", "use-right"), attrs: { _i: 77 }, }, [ _c("h3", [ _vm._v(_vm._$s(78, "t0-0", _vm._s(_vm.usedPr))), ]), _c("p", { staticClass: _vm._$s(79, "sc", "english"), attrs: { _i: 79 }, }), ] ), _c( "view", { staticClass: _vm._$s(80, "sc", "use-main"), attrs: { _i: 80 }, }, [ _c( "view", { staticClass: _vm._$s(81, "sc", "left"), attrs: { _i: 81 }, }, [ _c( "view", { staticClass: _vm._$s( 82, "sc", "progressBar" ), attrs: { _i: 82 }, }, [ _c("view", { staticClass: _vm._$s( 83, "sc", "progress" ), style: _vm._$s( 83, "s", "width:" + _vm.usedPr + "%" ), attrs: { _i: 83 }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(84, "sc", "right"), attrs: { _i: 84 }, }, [_vm._v(_vm._$s(84, "t0-0", _vm._s(_vm.used)))] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(85, "sc", "main-sides"), attrs: { _i: 85 }, }, [ _c( "view", { staticClass: _vm._$s(86, "sc", "box box-tp"), attrs: { _i: 86 }, }, [ _c("view", { staticClass: _vm._$s( 87, "sc", "box-border box-border1" ), attrs: { _i: 87 }, }), _c("view", { staticClass: _vm._$s( 88, "sc", "box-border box-border2" ), attrs: { _i: 88 }, }), _c("view", { staticClass: _vm._$s( 89, "sc", "box-border box-border3" ), attrs: { _i: 89 }, }), _c("view", { staticClass: _vm._$s( 90, "sc", "box-border box-border4" ), attrs: { _i: 90 }, }), _c( "view", { staticClass: _vm._$s(91, "sc", "box-item right-item"), attrs: { _i: 91 }, }, [ _c( "view", { staticClass: _vm._$s(92, "sc", "sub-left"), attrs: { _i: 92 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(94, "sc", "english"), attrs: { _i: 94 }, }), ] ), _c( "view", { staticClass: _vm._$s(95, "sc", "sub-right"), attrs: { _i: 95 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(97, "sc", "english"), attrs: { _i: 97 }, }), ] ), _c( "view", { staticClass: _vm._$s(98, "sc", "sub-main"), attrs: { _i: 98 }, }, [ _c( "view", { staticClass: _vm._$s(99, "sc", "charts-box"), attrs: { _i: 99 }, }, [ _c("qiun-data-charts", { attrs: { type: "line", chartData: _vm.chartsDataLine1, echartsH5: true, echartsApp: true, _i: 100, }, }), ], 1 ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(101, "sc", "box box-md"), attrs: { _i: 101 }, }, [ _c("view", { staticClass: _vm._$s( 102, "sc", "box-border box-border1" ), attrs: { _i: 102 }, }), _c("view", { staticClass: _vm._$s( 103, "sc", "box-border box-border2" ), attrs: { _i: 103 }, }), _c("view", { staticClass: _vm._$s( 104, "sc", "box-border box-border3" ), attrs: { _i: 104 }, }), _c("view", { staticClass: _vm._$s( 105, "sc", "box-border box-border4" ), attrs: { _i: 105 }, }), _c( "view", { staticClass: _vm._$s( 106, "sc", "box-item right-item" ), attrs: { _i: 106 }, }, [ _c( "view", { staticClass: _vm._$s(107, "sc", "sub-left"), attrs: { _i: 107 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(109, "sc", "english"), attrs: { _i: 109 }, }), ] ), _c( "view", { staticClass: _vm._$s(110, "sc", "sub-right"), attrs: { _i: 110 }, }, [ _c("h3"), _c("p", { staticClass: _vm._$s(112, "sc", "english"), attrs: { _i: 112 }, }), ] ), _c( "view", { staticClass: _vm._$s(113, "sc", "sub-main"), attrs: { _i: 113 }, }, [ _c( "view", { staticClass: _vm._$s( 114, "sc", "charts-box ring" ), attrs: { _i: 114 }, }, [ _c("qiun-data-charts", { attrs: { type: "ring", opts: { legend: { position: "bottom" } }, eopts: _vm.ringOpts, chartData: _vm.chartsDataPie2, echartsH5: true, echartsApp: true, _i: 115, }, }), ], 1 ), _c( "view", { staticClass: _vm._$s( 116, "sc", "sub-main-right" ), attrs: { _i: 116 }, }, [ _c( "view", { staticClass: _vm._$s( 117, "sc", "sub-info" ), attrs: { _i: 117 }, }, [ _c("image", { attrs: { src: _vm._$s( 118, "a-src", __webpack_require__(/*! ../../static/g1.png */ 97) ), _i: 118, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 120, "t0-0", _vm._s(_vm.stockCount) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 121, "sc", "sub-info" ), attrs: { _i: 121 }, }, [ _c("image", { attrs: { src: _vm._$s( 122, "a-src", __webpack_require__(/*! ../../static/f1.png */ 98) ), _i: 122, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 124, "t0-0", _vm._s(_vm.emptyCount) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s( 125, "sc", "sub-info" ), attrs: { _i: 125 }, }, [ _c("image", { attrs: { src: _vm._$s( 126, "a-src", __webpack_require__(/*! ../../static/e1.png */ 99) ), _i: 126, }, }), _c("text"), _c("text", [ _vm._v( _vm._$s( 128, "t0-0", _vm._s(_vm.noneCount) ) ), ]), ] ), ] ), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(129, "sc", "box box-bt"), attrs: { _i: 129 }, }, [ _c("view", { staticClass: _vm._$s( 130, "sc", "box-border box-border1" ), attrs: { _i: 130 }, }), _c("view", { staticClass: _vm._$s( 131, "sc", "box-border box-border2" ), attrs: { _i: 131 }, }), _c("view", { staticClass: _vm._$s( 132, "sc", "box-border box-border3" ), attrs: { _i: 132 }, }), _c("view", { staticClass: _vm._$s( 133, "sc", "box-border box-border4" ), attrs: { _i: 133 }, }), _c("view", { attrs: { _i: 134 }, on: { click: function ($event) { return _vm.crn() }, }, }), ] ), ] ), ] ), ] ), _c( "view", [ _c( "uni-popup", { ref: "url", attrs: { type: "dialog", _i: 136 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置url", value: _vm.baseIP, placeholder: "示例:192.168.1.1", _i: 137, }, on: { confirm: _vm.baseUrlConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "ledId", attrs: { type: "dialog", _i: 139 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置ledId", value: _vm.baseLedId, placeholder: "示例:188", _i: 140, }, on: { confirm: _vm.ledIdConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "port", attrs: { type: "dialog", _i: 142 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置端口号", value: _vm.basePort, placeholder: "示例:9090", _i: 143, }, on: { confirm: _vm.portConfirm }, }), ], 1 ), ], 1 ), _c( "view", [ _c( "uni-popup", { ref: "crnId", attrs: { type: "dialog", _i: 145 } }, [ _c("uni-popup-dialog", { ref: "inputClose", attrs: { mode: "input", title: "配置堆垛机", value: _vm.crnId, placeholder: "示例:1", _i: 146, }, on: { confirm: _vm.crnConfirm }, }), ], 1 ), ], 1 ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(147, "v-show", _vm.ejectShow), expression: "_$s(147,'v-show',ejectShow)", }, ], staticClass: _vm._$s(147, "sc", "eject-mask"), attrs: { _i: 147 }, }, [ _c( "view", { staticClass: _vm._$s(148, "sc", "eject"), attrs: { _i: 148 } }, [ _c("view", { staticClass: _vm._$s(149, "sc", "eject-title"), attrs: { _i: 149 }, }), _c( "view", { staticClass: _vm._$s(150, "sc", "eject-input"), attrs: { _i: 150 }, }, [ _c( "view", { staticClass: _vm._$s(151, "sc", "item"), attrs: { _i: 151 }, }, [ _c("view", { staticClass: _vm._$s(152, "sc", "desc"), attrs: { _i: 152 }, }), _c( "view", { staticClass: _vm._$s(153, "sc", "input"), attrs: { _i: 153 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseIP, expression: "baseIP", }, ], attrs: { _i: 154 }, domProps: { value: _vm._$s(154, "v-model", _vm.baseIP), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseIP = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(155, "sc", "item"), attrs: { _i: 155 }, }, [ _c("view", { staticClass: _vm._$s(156, "sc", "desc"), attrs: { _i: 156 }, }), _c( "view", { staticClass: _vm._$s(157, "sc", "input"), attrs: { _i: 157 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.basePort, expression: "basePort", }, ], attrs: { _i: 158 }, domProps: { value: _vm._$s(158, "v-model", _vm.basePort), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.basePort = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(159, "sc", "item"), attrs: { _i: 159 }, }, [ _c("view", { staticClass: _vm._$s(160, "sc", "desc"), attrs: { _i: 160 }, }), _c( "view", { staticClass: _vm._$s(161, "sc", "input"), attrs: { _i: 161 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseLedId, expression: "baseLedId", }, ], attrs: { _i: 162 }, domProps: { value: _vm._$s(162, "v-model", _vm.baseLedId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseLedId = $event.target.value }, }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(163, "sc", "item"), attrs: { _i: 163 }, }, [ _c("view", { staticClass: _vm._$s(164, "sc", "desc"), attrs: { _i: 164 }, }), _c( "view", { staticClass: _vm._$s(165, "sc", "input"), attrs: { _i: 165 }, }, [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.baseCrnId, expression: "baseCrnId", }, ], attrs: { _i: 166 }, domProps: { value: _vm._$s(166, "v-model", _vm.baseCrnId), }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.baseCrnId = $event.target.value }, }, }), ] ), ] ), ] ), _c( "view", { staticClass: _vm._$s(167, "sc", "eject-button"), attrs: { _i: 167 }, }, [ _c("view", { staticClass: _vm._$s(168, "sc", "button-item"), attrs: { _i: 168 }, on: { click: _vm.ejectClose }, }), _c("view", { staticClass: _vm._$s(169, "sc", "button-item"), attrs: { _i: 169 }, on: { click: _vm.ejectConfirm }, }), ] ), ] ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 117 */ /*!********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 118);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 120);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_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 _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTE3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTdjNDNkNDFiJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC91bmktcG9wdXAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///117\n"); /***/ }), /* 118 */ /*!***************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \***************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 119); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 119 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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 = { uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 10) .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 _vm._$s(0, "i", _vm.showPopup) ? _c( "view", { staticClass: _vm._$s(0, "sc", "uni-popup"), class: _vm._$s(0, "c", [ _vm.popupstyle, _vm.isDesktop ? "fixforpc-z-index" : "", ]), attrs: { _i: 0 }, on: { touchmove: function ($event) { $event.stopPropagation() $event.preventDefault() return _vm.clear($event) }, }, }, [ _c( "view", { attrs: { _i: 1 }, on: { touchstart: _vm.touchstart } }, [ _vm._$s(2, "i", _vm.maskShow) ? _c("uni-transition", { key: "1", attrs: { name: "mask", "mode-class": "fade", styles: _vm.maskClass, duration: _vm.duration, show: _vm.showTrans, _i: 2, }, on: { click: _vm.onTap }, }) : _vm._e(), _c( "uni-transition", { key: "2", attrs: { "mode-class": _vm.ani, name: "content", styles: _vm.transClass, duration: _vm.duration, show: _vm.showTrans, _i: 3, }, on: { click: _vm.onTap }, }, [ _c( "view", { staticClass: _vm._$s(4, "sc", "uni-popup__wrapper"), class: _vm._$s(4, "c", [_vm.popupstyle]), style: _vm._$s(4, "s", { backgroundColor: _vm.bg }), attrs: { _i: 4 }, on: { click: _vm.clear }, }, [_vm._t("default", null, { _i: 5 })], 2 ), ] ), ], 1 ), ] ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 120 */ /*!*********************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 121);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZvQixDQUFnQixtb0JBQUcsRUFBQyIsImZpbGUiOiIxMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///120\n"); /***/ }), /* 121 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\r\n * PopUp 弹出层\r\n * @description 弹出层组件,为了解决遮罩弹层的问题\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\r\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式\r\n * \t@value top 顶部弹出\r\n * \t@value center 中间弹出\r\n * \t@value bottom 底部弹出\r\n * \t@value left\t\t左侧弹出\r\n * \t@value right 右侧弹出\r\n * \t@value message 消息提示\r\n * \t@value dialog 对话框\r\n * \t@value share 底部分享示例\r\n * @property {Boolean} animation = [true|false] 是否开启动画\r\n * @property {Boolean} maskClick = [true|false] 蒙版点击是否关闭弹窗(废弃)\r\n * @property {Boolean} isMaskClick = [true|false] 蒙版点击是否关闭弹窗\r\n * @property {String} backgroundColor 主窗口背景色\r\n * @property {String} maskBackgroundColor 蒙版颜色\r\n * @property {Boolean} safeArea\t\t 是否适配底部安全区\r\n * @event {Function} change 打开关闭弹窗触发,e={show: false}\r\n * @event {Function} maskClick 点击遮罩触发\r\n */\nvar _default = {\n name: 'uniPopup',\n components: {},\n emits: ['change', 'maskClick'],\n props: {\n // 开启动画\n animation: {\n type: Boolean,\n default: true\n },\n // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层\n // message: 消息提示 ; dialog : 对话框\n type: {\n type: String,\n default: 'center'\n },\n // maskClick\n isMaskClick: {\n type: Boolean,\n default: null\n },\n // TODO 2 个版本后废弃属性 ,使用 isMaskClick\n maskClick: {\n type: Boolean,\n default: null\n },\n backgroundColor: {\n type: String,\n default: 'none'\n },\n safeArea: {\n type: Boolean,\n default: true\n },\n maskBackgroundColor: {\n type: String,\n default: 'rgba(0, 0, 0, 0.4)'\n }\n },\n watch: {\n /**\r\n * 监听type类型\r\n */\n type: {\n handler: function handler(type) {\n if (!this.config[type]) return;\n this[this.config[type]](true);\n },\n immediate: true\n },\n isDesktop: {\n handler: function handler(newVal) {\n if (!this.config[newVal]) return;\n this[this.config[this.type]](true);\n },\n immediate: true\n },\n /**\r\n * 监听遮罩是否可点击\r\n * @param {Object} val\r\n */\n maskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n isMaskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n // H5 下禁止底部滚动\n showPopup: function showPopup(show) {}\n },\n data: function data() {\n return {\n duration: 300,\n ani: [],\n showPopup: false,\n showTrans: false,\n popupWidth: 0,\n popupHeight: 0,\n config: {\n top: 'top',\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n right: 'right',\n message: 'top',\n dialog: 'center',\n share: 'bottom'\n },\n maskClass: {\n position: 'fixed',\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)'\n },\n transClass: {\n position: 'fixed',\n left: 0,\n right: 0\n },\n maskShow: true,\n mkclick: true,\n popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'\n };\n },\n computed: {\n isDesktop: function isDesktop() {\n return this.popupWidth >= 500 && this.popupHeight >= 500;\n },\n bg: function bg() {\n if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n return 'transparent';\n }\n return this.backgroundColor;\n }\n },\n mounted: function mounted() {\n var _this = this;\n var fixSize = function fixSize() {\n var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),\n windowWidth = _uni$getSystemInfoSyn.windowWidth,\n windowHeight = _uni$getSystemInfoSyn.windowHeight,\n windowTop = _uni$getSystemInfoSyn.windowTop,\n safeArea = _uni$getSystemInfoSyn.safeArea,\n screenHeight = _uni$getSystemInfoSyn.screenHeight,\n safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n _this.popupWidth = windowWidth;\n _this.popupHeight = windowHeight + windowTop;\n // TODO fix by mehaotian 是否适配底部安全区 ,目前微信ios 、和 app ios 计算有差异,需要框架修复\n if (safeArea) {\n _this.safeAreaInsets = safeAreaInsets.bottom;\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n },\n created: function created() {\n // this.mkclick = this.isMaskClick || this.maskClick\n if (this.isMaskClick === null && this.maskClick === null) {\n this.mkclick = true;\n } else {\n this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n }\n if (this.animation) {\n this.duration = 300;\n } else {\n this.duration = 0;\n }\n // TODO 处理 message 组件生命周期异常的问题\n this.messageChild = null;\n // TODO 解决头条冒泡的问题\n this.clearPropagation = false;\n this.maskClass.backgroundColor = this.maskBackgroundColor;\n },\n methods: {\n /**\r\n * 公用方法,不显示遮罩层\r\n */\n closeMask: function closeMask() {\n this.maskShow = false;\n },\n /**\r\n * 公用方法,遮罩层禁止点击\r\n */\n disableMask: function disableMask() {\n this.mkclick = false;\n },\n // TODO nvue 取消冒泡\n clear: function clear(e) {\n e.stopPropagation();\n this.clearPropagation = true;\n },\n open: function open(direction) {\n var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n if (!(direction && innerType.indexOf(direction) !== -1)) {\n direction = this.type;\n }\n if (!this.config[direction]) {\n __f__(\"error\", '缺少类型:', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:246\");\n return;\n }\n this[this.config[direction]]();\n this.$emit('change', {\n show: true,\n type: direction\n });\n },\n close: function close(type) {\n var _this2 = this;\n this.showTrans = false;\n this.$emit('change', {\n show: false,\n type: this.type\n });\n clearTimeout(this.timer);\n // // 自定义关闭事件\n // this.customOpen && this.customClose()\n this.timer = setTimeout(function () {\n _this2.showPopup = false;\n }, 300);\n },\n // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容\n touchstart: function touchstart() {\n this.clearPropagation = false;\n },\n onTap: function onTap() {\n if (this.clearPropagation) {\n // fix by mehaotian 兼容 nvue\n this.clearPropagation = false;\n return;\n }\n this.$emit('maskClick');\n if (!this.mkclick) return;\n this.close();\n },\n /**\r\n * 顶部弹出样式处理\r\n */\n top: function top(type) {\n var _this3 = this;\n this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n this.ani = ['slide-top'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n this.$nextTick(function () {\n if (_this3.messageChild && _this3.type === 'message') {\n _this3.messageChild.timerClose();\n }\n });\n },\n /**\r\n * 底部弹出样式处理\r\n */\n bottom: function bottom(type) {\n this.popupstyle = 'bottom';\n this.ani = ['slide-bottom'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n paddingBottom: this.safeAreaInsets + 'px',\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n /**\r\n * 中间弹出样式处理\r\n */\n center: function center(type) {\n this.popupstyle = 'center';\n this.ani = ['zoom-out', 'fade'];\n this.transClass = {\n position: 'fixed',\n display: 'flex',\n flexDirection: 'column',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n justifyContent: 'center',\n alignItems: 'center'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n left: function left(type) {\n this.popupstyle = 'left';\n this.ani = ['slide-left'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n bottom: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n right: function right(type) {\n this.popupstyle = 'right';\n this.ani = ['slide-right'];\n this.transClass = {\n position: 'fixed',\n bottom: 0,\n right: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOlsibmFtZSIsImNvbXBvbmVudHMiLCJlbWl0cyIsInByb3BzIiwiYW5pbWF0aW9uIiwidHlwZSIsImRlZmF1bHQiLCJpc01hc2tDbGljayIsIm1hc2tDbGljayIsImJhY2tncm91bmRDb2xvciIsInNhZmVBcmVhIiwibWFza0JhY2tncm91bmRDb2xvciIsIndhdGNoIiwiaGFuZGxlciIsImltbWVkaWF0ZSIsImlzRGVza3RvcCIsInNob3dQb3B1cCIsImRhdGEiLCJkdXJhdGlvbiIsImFuaSIsInNob3dUcmFucyIsInBvcHVwV2lkdGgiLCJwb3B1cEhlaWdodCIsImNvbmZpZyIsInRvcCIsImJvdHRvbSIsImNlbnRlciIsImxlZnQiLCJyaWdodCIsIm1lc3NhZ2UiLCJkaWFsb2ciLCJzaGFyZSIsIm1hc2tDbGFzcyIsInBvc2l0aW9uIiwidHJhbnNDbGFzcyIsIm1hc2tTaG93IiwibWtjbGljayIsInBvcHVwc3R5bGUiLCJjb21wdXRlZCIsImJnIiwibW91bnRlZCIsIndpbmRvd1dpZHRoIiwid2luZG93SGVpZ2h0Iiwid2luZG93VG9wIiwic2NyZWVuSGVpZ2h0Iiwic2FmZUFyZWFJbnNldHMiLCJmaXhTaXplIiwiY3JlYXRlZCIsIm1ldGhvZHMiLCJjbG9zZU1hc2siLCJkaXNhYmxlTWFzayIsImNsZWFyIiwiZSIsIm9wZW4iLCJkaXJlY3Rpb24iLCJzaG93IiwiY2xvc2UiLCJjbGVhclRpbWVvdXQiLCJ0b3VjaHN0YXJ0Iiwib25UYXAiLCJwYWRkaW5nQm90dG9tIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBLGVBdUJBO0VBQ0FBO0VBQ0FDLGFBSUE7RUFDQUM7RUFDQUM7SUFDQTtJQUNBQztNQUNBQztNQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBRDtNQUNBQTtNQUNBQztJQUNBO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO0lBQ0E7RUFDQTtFQUVBTTtJQUNBO0FBQ0E7QUFDQTtJQUNBUDtNQUNBUTtRQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO1FBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBTjtNQUNBSztRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBUDtNQUNBTTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFLHFDQUtBO0VBQ0E7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBSDtNQUNBSTtNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FSO1FBQ0FEO1FBQ0FHO1FBQ0FDO1FBQ0FuQjtNQUNBO01BQ0F5QjtRQUNBRDtRQUNBTjtRQUNBQztNQUNBO01BQ0FPO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBdkI7TUFDQTtJQUNBO0lBQ0F3QjtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7TUFDQTtRQUFBQztRQUFBQztRQUFBQztRQUFBakM7UUFBQWtDO1FBQUFDO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFLQTtNQUVBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO0VBT0E7RUFDQUM7SUFDQTtJQUNBO01BQ0E7SUFDQTtNQUNBO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUVBQztNQUVBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQWxEO01BQ0E7SUFDQTtJQUNBbUQ7TUFBQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQWxEO01BQ0E7TUFDQW9EO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FuQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FTO1FBQ0FOO1FBQ0FDO1FBQ0FuQjtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWdCO01BQ0E7TUFDQTtNQUNBO1FBQ0FRO1FBQ0FOO1FBQ0FDO1FBQ0FIO1FBQ0FtQztRQUNBbkQ7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO1FBQ0FPO1FBRUE0QjtRQUNBQztRQUVBckM7UUFDQUU7UUFDQUM7UUFDQUo7UUFDQXVDO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FyQztNQUNBO01BQ0E7TUFDQTtRQUNBTTtRQUNBTjtRQUNBRjtRQUNBRDtRQUNBZjtRQUVBb0Q7UUFDQUM7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQWxDO01BQ0E7TUFDQTtNQUNBO1FBQ0FLO1FBQ0FSO1FBQ0FHO1FBQ0FKO1FBQ0FmO1FBRUFvRDtRQUNBQztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgdi1pZj1cInNob3dQb3B1cFwiIGNsYXNzPVwidW5pLXBvcHVwXCIgOmNsYXNzPVwiW3BvcHVwc3R5bGUsIGlzRGVza3RvcCA/ICdmaXhmb3JwYy16LWluZGV4JyA6ICcnXVwiIEB0b3VjaG1vdmUuc3RvcC5wcmV2ZW50PVwiY2xlYXJcIj5cclxuXHRcdDx2aWV3IEB0b3VjaHN0YXJ0PVwidG91Y2hzdGFydFwiID5cclxuXHRcdFx0PHVuaS10cmFuc2l0aW9uIGtleT1cIjFcIiB2LWlmPVwibWFza1Nob3dcIiBuYW1lPVwibWFza1wiIG1vZGUtY2xhc3M9XCJmYWRlXCIgOnN0eWxlcz1cIm1hc2tDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiIC8+XHJcblx0XHRcdDx1bmktdHJhbnNpdGlvbiBrZXk9XCIyXCIgOm1vZGUtY2xhc3M9XCJhbmlcIiBuYW1lPVwiY29udGVudFwiIDpzdHlsZXM9XCJ0cmFuc0NsYXNzXCIgOmR1cmF0aW9uPVwiZHVyYXRpb25cIiA6c2hvdz1cInNob3dUcmFuc1wiIEBjbGljaz1cIm9uVGFwXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktcG9wdXBfX3dyYXBwZXJcIiA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogYmcgfVwiIDpjbGFzcz1cIltwb3B1cHN0eWxlXVwiIEBjbGljaz1cImNsZWFyXCI+PHNsb3QgLz48L3ZpZXc+XHJcblx0XHRcdDwvdW5pLXRyYW5zaXRpb24+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICNpZmRlZiBINSAtLT5cclxuXHRcdDxrZXlwcmVzcyB2LWlmPVwibWFza1Nob3dcIiBAZXNjPVwib25UYXBcIiAvPlxyXG5cdFx0PCEtLSAjZW5kaWYgLS0+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gI2lmZGVmIEg1XHJcbmltcG9ydCBrZXlwcmVzcyBmcm9tICcuL2tleXByZXNzLmpzJ1xyXG4vLyAjZW5kaWZcclxuXHJcbi8qKlxyXG4gKiBQb3BVcCDlvLnlh7rlsYJcclxuICogQGRlc2NyaXB0aW9uIOW8ueWHuuWxgue7hOS7tu+8jOS4uuS6huino+WGs+mBrue9qeW8ueWxgueahOmXrumimFxyXG4gKiBAdHV0b3JpYWwgaHR0cHM6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MzI5XHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB0eXBlID0gW3RvcHxjZW50ZXJ8Ym90dG9tfGxlZnR8cmlnaHR8bWVzc2FnZXxkaWFsb2d8c2hhcmVdIOW8ueWHuuaWueW8j1xyXG4gKiBcdEB2YWx1ZSB0b3Ag6aG26YOo5by55Ye6XHJcbiAqIFx0QHZhbHVlIGNlbnRlciDkuK3pl7TlvLnlh7pcclxuICogXHRAdmFsdWUgYm90dG9tIOW6lemDqOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBsZWZ0XHRcdOW3puS+p+W8ueWHulxyXG4gKiBcdEB2YWx1ZSByaWdodCAg5Y+z5L6n5by55Ye6XHJcbiAqIFx0QHZhbHVlIG1lc3NhZ2Ug5raI5oGv5o+Q56S6XHJcbiAqIFx0QHZhbHVlIGRpYWxvZyDlr7nor53moYZcclxuICogXHRAdmFsdWUgc2hhcmUg5bqV6YOo5YiG5Lqr56S65L6LXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gYW5pbWF0aW9uID0gW3RydWV8ZmFsc2VdIOaYr+WQpuW8gOWQr+WKqOeUu1xyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IG1hc2tDbGljayA9IFt0cnVlfGZhbHNlXSDokpnniYjngrnlh7vmmK/lkKblhbPpl63lvLnnqpco5bqf5byDKVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGlzTWFza0NsaWNrID0gW3RydWV8ZmFsc2VdIOiSmeeJiOeCueWHu+aYr+WQpuWFs+mXreW8ueeql1xyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gIGJhY2tncm91bmRDb2xvciDkuLvnqpflj6Pog4zmma/oibJcclxuICogQHByb3BlcnR5IHtTdHJpbmd9ICBtYXNrQmFja2dyb3VuZENvbG9yIOiSmeeJiOminOiJslxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IHNhZmVBcmVhXHRcdCAgIOaYr+WQpumAgumFjeW6lemDqOWuieWFqOWMulxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBjaGFuZ2Ug5omT5byA5YWz6Zet5by556qX6Kem5Y+R77yMZT17c2hvdzogZmFsc2V9XHJcbiAqIEBldmVudCB7RnVuY3Rpb259IG1hc2tDbGljayDngrnlh7vpga7nvanop6blj5FcclxuICovXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bmFtZTogJ3VuaVBvcHVwJyxcclxuXHRjb21wb25lbnRzOiB7XHJcblx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdGtleXByZXNzXHJcblx0XHQvLyAjZW5kaWZcclxuXHR9LFxyXG5cdGVtaXRzOlsnY2hhbmdlJywnbWFza0NsaWNrJ10sXHJcblx0cHJvcHM6IHtcclxuXHRcdC8vIOW8gOWQr+WKqOeUu1xyXG5cdFx0YW5pbWF0aW9uOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvLyDlvLnlh7rlsYLnsbvlnovvvIzlj6/pgInlgLzvvIx0b3A6IOmhtumDqOW8ueWHuuWxgu+8m2JvdHRvbe+8muW6lemDqOW8ueWHuuWxgu+8m2NlbnRlcu+8muWFqOWxj+W8ueWHuuWxglxyXG5cdFx0Ly8gbWVzc2FnZTog5raI5oGv5o+Q56S6IDsgZGlhbG9nIDog5a+56K+d5qGGXHJcblx0XHR0eXBlOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ2NlbnRlcidcclxuXHRcdH0sXHJcblx0XHQvLyBtYXNrQ2xpY2tcclxuXHRcdGlzTWFza0NsaWNrOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIDIg5Liq54mI5pys5ZCO5bqf5byD5bGe5oCnIO+8jOS9v+eUqCBpc01hc2tDbGlja1xyXG5cdFx0bWFza0NsaWNrOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdH0sXHJcblx0XHRiYWNrZ3JvdW5kQ29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAnbm9uZSdcclxuXHRcdH0sXHJcblx0XHRzYWZlQXJlYTp7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdH0sXHJcblx0XHRtYXNrQmFja2dyb3VuZENvbG9yOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ3JnYmEoMCwgMCwgMCwgMC40KSdcclxuXHRcdH0sXHJcblx0fSxcclxuXHJcblx0d2F0Y2g6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog55uR5ZCsdHlwZeexu+Wei1xyXG5cdFx0ICovXHJcblx0XHR0eXBlOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHR5cGUpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMuY29uZmlnW3R5cGVdKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzW3RoaXMuY29uZmlnW3R5cGVdXSh0cnVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHRpc0Rlc2t0b3A6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24obmV3VmFsKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1tuZXdWYWxdKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzW3RoaXMuY29uZmlnW3RoaXMudHlwZV1dKHRydWUpXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog55uR5ZCs6YGu572p5piv5ZCm5Y+v54K55Ye7XHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gdmFsXHJcblx0XHQgKi9cclxuXHRcdG1hc2tDbGljazoge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih2YWwpIHtcclxuXHRcdFx0XHR0aGlzLm1rY2xpY2sgPSB2YWxcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0aXNNYXNrQ2xpY2s6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XHJcblx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8vIEg1IOS4i+emgeatouW6lemDqOa7muWKqFxyXG5cdFx0c2hvd1BvcHVwKHNob3cpIHtcclxuXHRcdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5aSE55CGIGg1IOa7muWKqOepv+mAj+eahOmXrumimFxyXG5cdFx0XHRkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLnN0eWxlLm92ZXJmbG93ID0gc2hvdyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fVxyXG5cdH0sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGR1cmF0aW9uOiAzMDAsXHJcblx0XHRcdGFuaTogW10sXHJcblx0XHRcdHNob3dQb3B1cDogZmFsc2UsXHJcblx0XHRcdHNob3dUcmFuczogZmFsc2UsXHJcblx0XHRcdHBvcHVwV2lkdGg6IDAsXHJcblx0XHRcdHBvcHVwSGVpZ2h0OiAwLFxyXG5cdFx0XHRjb25maWc6IHtcclxuXHRcdFx0XHR0b3A6ICd0b3AnLFxyXG5cdFx0XHRcdGJvdHRvbTogJ2JvdHRvbScsXHJcblx0XHRcdFx0Y2VudGVyOiAnY2VudGVyJyxcclxuXHRcdFx0XHRsZWZ0OiAnbGVmdCcsXHJcblx0XHRcdFx0cmlnaHQ6ICdyaWdodCcsXHJcblx0XHRcdFx0bWVzc2FnZTogJ3RvcCcsXHJcblx0XHRcdFx0ZGlhbG9nOiAnY2VudGVyJyxcclxuXHRcdFx0XHRzaGFyZTogJ2JvdHRvbSdcclxuXHRcdFx0fSxcclxuXHRcdFx0bWFza0NsYXNzOiB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC40KSdcclxuXHRcdFx0fSxcclxuXHRcdFx0dHJhbnNDbGFzczoge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDBcclxuXHRcdFx0fSxcclxuXHRcdFx0bWFza1Nob3c6IHRydWUsXHJcblx0XHRcdG1rY2xpY2s6IHRydWUsXHJcblx0XHRcdHBvcHVwc3R5bGU6IHRoaXMuaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXRvcCcgOiAndG9wJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0Y29tcHV0ZWQ6IHtcclxuXHRcdGlzRGVza3RvcCgpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9wdXBXaWR0aCA+PSA1MDAgJiYgdGhpcy5wb3B1cEhlaWdodCA+PSA1MDBcclxuXHRcdH0sXHJcblx0XHRiZygpIHtcclxuXHRcdFx0aWYgKHRoaXMuYmFja2dyb3VuZENvbG9yID09PSAnJyB8fCB0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJ25vbmUnKSB7XHJcblx0XHRcdFx0cmV0dXJuICd0cmFuc3BhcmVudCdcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdGhpcy5iYWNrZ3JvdW5kQ29sb3JcclxuXHRcdH1cclxuXHR9LFxyXG5cdG1vdW50ZWQoKSB7XHJcblx0XHRjb25zdCBmaXhTaXplID0gKCkgPT4ge1xyXG5cdFx0XHRjb25zdCB7IHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQsIHdpbmRvd1RvcCwgc2FmZUFyZWEsc2NyZWVuSGVpZ2h0ICxzYWZlQXJlYUluc2V0cyB9ID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKClcclxuXHRcdFx0dGhpcy5wb3B1cFdpZHRoID0gd2luZG93V2lkdGhcclxuXHRcdFx0dGhpcy5wb3B1cEhlaWdodCA9IHdpbmRvd0hlaWdodCArIHdpbmRvd1RvcFxyXG5cdFx0XHQvLyBUT0RPIGZpeCBieSBtZWhhb3RpYW4g5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6ICznm67liY3lvq7kv6Fpb3Mg44CB5ZKMIGFwcCBpb3Mg6K6h566X5pyJ5beu5byC77yM6ZyA6KaB5qGG5p625L+u5aSNXHJcblx0XHRcdGlmKHNhZmVBcmVhKXtcclxuXHRcdFx0XHQvLyAjaWZkZWYgTVAtV0VJWElOXHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IHNjcmVlbkhlaWdodCAtIHNhZmVBcmVhLmJvdHRvbVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdC8vICNpZm5kZWYgTVAtV0VJWElOXHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IHNhZmVBcmVhSW5zZXRzLmJvdHRvbVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHR0aGlzLnNhZmVBcmVhSW5zZXRzID0gMFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRmaXhTaXplKClcclxuXHRcdC8vICNpZmRlZiBINVxyXG5cdFx0Ly8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpeFNpemUpXHJcblx0XHQvLyB0aGlzLiRvbmNlKCdob29rOmJlZm9yZURlc3Ryb3knLCAoKSA9PiB7XHJcblx0XHQvLyBcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxyXG5cdFx0Ly8gfSlcclxuXHRcdC8vICNlbmRpZlxyXG5cdH0sXHJcblx0Y3JlYXRlZCgpIHtcclxuXHRcdC8vIHRoaXMubWtjbGljayA9ICB0aGlzLmlzTWFza0NsaWNrIHx8IHRoaXMubWFza0NsaWNrXHJcblx0XHRpZih0aGlzLmlzTWFza0NsaWNrID09PSBudWxsICYmIHRoaXMubWFza0NsaWNrID09PSBudWxsKXtcclxuXHRcdFx0dGhpcy5ta2NsaWNrICA9IHRydWVcclxuXHRcdH1lbHNle1xyXG5cdFx0XHR0aGlzLm1rY2xpY2sgPSB0aGlzLmlzTWFza0NsaWNrICE9PSBudWxsID8gdGhpcy5pc01hc2tDbGljayA6IHRoaXMubWFza0NsaWNrXHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5hbmltYXRpb24pIHtcclxuXHRcdFx0dGhpcy5kdXJhdGlvbiA9IDMwMFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5kdXJhdGlvbiA9IDBcclxuXHRcdH1cclxuXHRcdC8vIFRPRE8g5aSE55CGIG1lc3NhZ2Ug57uE5Lu255Sf5ZG95ZGo5pyf5byC5bi455qE6Zeu6aKYXHJcblx0XHR0aGlzLm1lc3NhZ2VDaGlsZCA9IG51bGxcclxuXHRcdC8vIFRPRE8g6Kej5Yaz5aS05p2h5YaS5rOh55qE6Zeu6aKYXHJcblx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSBmYWxzZVxyXG5cdFx0dGhpcy5tYXNrQ2xhc3MuYmFja2dyb3VuZENvbG9yID0gdGhpcy5tYXNrQmFja2dyb3VuZENvbG9yXHJcblx0fSxcclxuXHRtZXRob2RzOiB7XHJcblx0XHQvKipcclxuXHRcdCAqIOWFrOeUqOaWueazle+8jOS4jeaYvuekuumBrue9qeWxglxyXG5cdFx0ICovXHJcblx0XHRjbG9zZU1hc2soKSB7XHJcblx0XHRcdHRoaXMubWFza1Nob3cgPSBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5YWs55So5pa55rOV77yM6YGu572p5bGC56aB5q2i54K55Ye7XHJcblx0XHQgKi9cclxuXHRcdGRpc2FibGVNYXNrKCkge1xyXG5cdFx0XHR0aGlzLm1rY2xpY2sgPSBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdC8vIFRPRE8gbnZ1ZSDlj5bmtojlhpLms6FcclxuXHRcdGNsZWFyKGUpIHtcclxuXHRcdFx0Ly8gI2lmbmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSB0cnVlXHJcblx0XHR9LFxyXG5cclxuXHRcdG9wZW4oZGlyZWN0aW9uKSB7XHJcblx0XHRcdGxldCBpbm5lclR5cGUgPSBbJ3RvcCcsICdjZW50ZXInLCAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnLCAnbWVzc2FnZScsICdkaWFsb2cnLCAnc2hhcmUnXVxyXG5cdFx0XHRpZiAoIShkaXJlY3Rpb24gJiYgaW5uZXJUeXBlLmluZGV4T2YoZGlyZWN0aW9uKSAhPT0gLTEpKSB7XHJcblx0XHRcdFx0ZGlyZWN0aW9uID0gdGhpcy50eXBlXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1tkaXJlY3Rpb25dKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcign57y65bCR57G75Z6L77yaJywgZGlyZWN0aW9uKVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXNbdGhpcy5jb25maWdbZGlyZWN0aW9uXV0oKVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0c2hvdzogdHJ1ZSxcclxuXHRcdFx0XHR0eXBlOiBkaXJlY3Rpb25cclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRjbG9zZSh0eXBlKSB7XHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gZmFsc2VcclxuXHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdHNob3c6IGZhbHNlLFxyXG5cdFx0XHRcdHR5cGU6IHRoaXMudHlwZVxyXG5cdFx0XHR9KVxyXG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lcilcclxuXHRcdFx0Ly8gLy8g6Ieq5a6a5LmJ5YWz6Zet5LqL5Lu2XHJcblx0XHRcdC8vIHRoaXMuY3VzdG9tT3BlbiAmJiB0aGlzLmN1c3RvbUNsb3NlKClcclxuXHRcdFx0dGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2hvd1BvcHVwID0gZmFsc2VcclxuXHRcdFx0fSwgMzAwKVxyXG5cdFx0fSxcclxuXHRcdC8vIFRPRE8g5aSE55CG5YaS5rOh5LqL5Lu277yM5aS05p2h55qE5YaS5rOh5LqL5Lu25pyJ6Zeu6aKYIO+8jOWFiOi/meagt+WFvOWuuVxyXG5cdFx0dG91Y2hzdGFydCgpe1xyXG5cdFx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSBmYWxzZVxyXG5cdFx0fSxcclxuXHJcblx0XHRvblRhcCgpIHtcclxuXHRcdFx0aWYgKHRoaXMuY2xlYXJQcm9wYWdhdGlvbikge1xyXG5cdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5YW85a65IG52dWVcclxuXHRcdFx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSBmYWxzZVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuJGVtaXQoJ21hc2tDbGljaycpXHJcblx0XHRcdGlmICghdGhpcy5ta2NsaWNrKSByZXR1cm5cclxuXHRcdFx0dGhpcy5jbG9zZSgpXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDpobbpg6jlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0dG9wKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gdGhpcy5pc0Rlc2t0b3AgPyAnZml4Zm9ycGMtdG9wJyA6ICd0b3AnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS10b3AnXVxyXG5cdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRpZiAodGhpcy5tZXNzYWdlQ2hpbGQgJiYgdGhpcy50eXBlID09PSAnbWVzc2FnZScpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZUNoaWxkLnRpbWVyQ2xvc2UoKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOW6lemDqOW8ueWHuuagt+W8j+WkhOeQhlxyXG5cdFx0ICovXHJcblx0XHRib3R0b20odHlwZSkge1xyXG5cdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnYm90dG9tJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtYm90dG9tJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHBhZGRpbmdCb3R0b206IHRoaXMuc2FmZUFyZWFJbnNldHMrJ3B4JyxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDkuK3pl7TlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0Y2VudGVyKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2NlbnRlcidcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3pvb20tb3V0JywgJ2ZhZGUnXVxyXG5cdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxyXG5cdFx0XHRcdGFsaWduSXRlbXM6ICdjZW50ZXInXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGxlZnQodHlwZSkge1xyXG5cdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnbGVmdCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLWxlZnQnXVxyXG5cdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZyxcclxuXHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxyXG5cdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdHJpZ2h0KHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ3JpZ2h0J1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtcmlnaHQnXVxyXG5cdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XHJcblx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuLnVuaS1wb3B1cCB7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHR6LWluZGV4OiA5OTtcclxuXHQvKiAjZW5kaWYgKi9cclxuXHQmLnRvcCxcclxuXHQmLmxlZnQsXHJcblx0Ji5yaWdodCB7XHJcblx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdHRvcDogdmFyKC0td2luZG93LXRvcCk7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdC8qICNpZm5kZWYgSDUgKi9cclxuXHRcdHRvcDogMDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdH1cclxuXHQudW5pLXBvcHVwX193cmFwcGVyIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBpcGhvbmV4IOetieWuieWFqOWMuuiuvue9ru+8jOW6lemDqOWuieWFqOWMuumAgumFjSAqL1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0Ly8gcGFkZGluZy1ib3R0b206IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xyXG5cdFx0Ly8gcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0Ji5sZWZ0LFxyXG5cdFx0Ji5yaWdodCB7XHJcblx0XHRcdC8qICNpZmRlZiBINSAqL1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0td2luZG93LXRvcCk7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHQvKiAjaWZuZGVmIEg1ICovXHJcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0ZmxleDogMTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5maXhmb3JwYy16LWluZGV4IHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ei1pbmRleDogOTk5O1xyXG5cdC8qICNlbmRpZiAqL1xyXG59XHJcblxyXG4uZml4Zm9ycGMtdG9wIHtcclxuXHR0b3A6IDA7XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///121\n"); /***/ }), /* 122 */ /*!**********************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 123);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=script&lang=js& */ 125);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_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 _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZMO0FBQzdMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02ZjU0NTIwYSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC1kaWFsb2cvdW5pLXBvcHVwLWRpYWxvZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///122\n"); /***/ }), /* 123 */ /*!*****************************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 124); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 124 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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", "uni-popup-dialog"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uni-dialog-title"), attrs: { _i: 1 } }, [ _c( "text", { staticClass: _vm._$s(2, "sc", "uni-dialog-title-text"), class: _vm._$s(2, "c", ["uni-popup__" + _vm.dialogType]), attrs: { _i: 2 }, }, [_vm._v(_vm._$s(2, "t0-0", _vm._s(_vm.titleText)))] ), ] ), _vm._$s(3, "i", _vm.mode === "base") ? _c( "view", { staticClass: _vm._$s(3, "sc", "uni-dialog-content"), attrs: { _i: 3 }, }, [ _vm._t( "default", [ _c( "text", { staticClass: _vm._$s(5, "sc", "uni-dialog-content-text"), attrs: { _i: 5 }, }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.content)))] ), ], { _i: 4 } ), ], 2 ) : _c( "view", { staticClass: _vm._$s(6, "sc", "uni-dialog-content"), attrs: { _i: 6 }, }, [ _vm._t( "default", [ _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.val, expression: "val", }, ], staticClass: _vm._$s(8, "sc", "uni-dialog-input"), attrs: { placeholder: _vm._$s( 8, "a-placeholder", _vm.placeholderText ), focus: _vm._$s(8, "a-focus", _vm.focus), _i: 8, }, domProps: { value: _vm._$s(8, "v-model", _vm.val) }, on: { input: function ($event) { if ($event.target.composing) { return } _vm.val = $event.target.value }, }, }), ], { _i: 7 } ), ], 2 ), _c( "view", { staticClass: _vm._$s(9, "sc", "uni-dialog-button-group"), attrs: { _i: 9 }, }, [ _c( "view", { staticClass: _vm._$s(10, "sc", "uni-dialog-button"), attrs: { _i: 10 }, on: { click: _vm.closeDialog }, }, [ _c( "text", { staticClass: _vm._$s(11, "sc", "uni-dialog-button-text"), attrs: { _i: 11 }, }, [_vm._v(_vm._$s(11, "t0-0", _vm._s(_vm.closeText)))] ), ] ), _c( "view", { staticClass: _vm._$s( 12, "sc", "uni-dialog-button uni-border-left" ), attrs: { _i: 12 }, on: { click: _vm.onOk }, }, [ _c( "text", { staticClass: _vm._$s( 13, "sc", "uni-dialog-button-text uni-button-color" ), attrs: { _i: 13 }, }, [_vm._v(_vm._$s(13, "t0-0", _vm._s(_vm.okText)))] ), ] ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 125 */ /*!***********************************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=script&lang=js& */ 126);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9wQixDQUFnQiwwb0JBQUcsRUFBQyIsImZpbGUiOiIxMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///125\n"); /***/ }), /* 126 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 127));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 91);\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 128));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),\n t = _initVueI18n.t;\n/**\n * PopUp 弹出层-对话框样式\n * @description 弹出层-对话框样式\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} value input 模式下的默认值\n * @property {String} placeholder input 模式下输入提示\n * @property {String} type = [success|warning|info|error] 主题样式\n * @value success 成功\n * \t@value warning 提示\n * \t@value info 消息\n * \t@value error 错误\n * @property {String} mode = [base|input] 模式、\n * \t@value base 基础对话框\n * \t@value input 可输入对话框\n * @property {String} content 对话框内容\n * @property {Boolean} beforeClose 是否拦截取消事件\n * @event {Function} confirm 点击确认按钮触发\n * @event {Function} close 点击取消按钮触发\n */\nvar _default = {\n name: \"uniPopupDialog\",\n mixins: [_popup.default],\n emits: ['confirm', 'close'],\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n placeholder: {\n type: [String, Number],\n default: ''\n },\n type: {\n type: String,\n default: 'error'\n },\n mode: {\n type: String,\n default: 'base'\n },\n title: {\n type: String,\n default: ''\n },\n content: {\n type: String,\n default: ''\n },\n beforeClose: {\n type: Boolean,\n default: false\n },\n cancelText: {\n type: String,\n default: ''\n },\n confirmText: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n dialogType: 'error',\n focus: false,\n val: \"\"\n };\n },\n computed: {\n okText: function okText() {\n return this.confirmText || t(\"uni-popup.ok\");\n },\n closeText: function closeText() {\n return this.cancelText || t(\"uni-popup.cancel\");\n },\n placeholderText: function placeholderText() {\n return this.placeholder || t(\"uni-popup.placeholder\");\n },\n titleText: function titleText() {\n return this.title || t(\"uni-popup.title\");\n }\n },\n watch: {\n type: function type(val) {\n this.dialogType = val;\n },\n mode: function mode(val) {\n if (val === 'input') {\n this.dialogType = 'info';\n }\n },\n value: function value(val) {\n this.val = val;\n }\n },\n created: function created() {\n // 对话框遮罩不可点击\n this.popup.disableMask();\n // this.popup.closeMask()\n if (this.mode === 'input') {\n this.dialogType = 'info';\n this.val = this.value;\n } else {\n this.dialogType = this.type;\n }\n },\n mounted: function mounted() {\n this.focus = true;\n },\n methods: {\n /**\n * 点击确认按钮\n */\n onOk: function onOk() {\n if (this.mode === 'input') {\n this.$emit('confirm', this.val);\n } else {\n this.$emit('confirm');\n }\n if (this.beforeClose) return;\n this.popup.close();\n },\n /**\n * 点击取消按钮\n */\n closeDialog: function closeDialog() {\n this.$emit('close');\n if (this.beforeClose) return;\n this.popup.close();\n },\n close: function close() {\n this.popup.close();\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6WyJ0IiwibmFtZSIsIm1peGlucyIsImVtaXRzIiwicHJvcHMiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0IiwicGxhY2Vob2xkZXIiLCJtb2RlIiwidGl0bGUiLCJjb250ZW50IiwiYmVmb3JlQ2xvc2UiLCJjYW5jZWxUZXh0IiwiY29uZmlybVRleHQiLCJkYXRhIiwiZGlhbG9nVHlwZSIsImZvY3VzIiwidmFsIiwiY29tcHV0ZWQiLCJva1RleHQiLCJjbG9zZVRleHQiLCJwbGFjZWhvbGRlclRleHQiLCJ0aXRsZVRleHQiLCJ3YXRjaCIsImNyZWF0ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsIm9uT2siLCJjbG9zZURpYWxvZyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBNEJBO0FBQ0E7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtFQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbEJBLGVBb0JBO0VBQ0FDO0VBQ0FDO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRDtNQUNBQTtNQUNBQztJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO0lBQ0E7SUFDQU07TUFDQVA7TUFDQUM7SUFDQTtJQUNBTztNQUNBUjtNQUNBQztJQUNBO0VBQ0E7RUFDQVE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQWxCO01BQ0E7SUFDQTtJQUNBRztNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FKO01BQ0E7SUFDQTtFQUNBO0VBQ0FvQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO01BQ0E7TUFDQTtJQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwLWRpYWxvZ1wiPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLXRpdGxlXCI+XHJcblx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pLWRpYWxvZy10aXRsZS10ZXh0XCIgOmNsYXNzPVwiWyd1bmktcG9wdXBfXycrZGlhbG9nVHlwZV1cIj57e3RpdGxlVGV4dH19PC90ZXh0PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgdi1pZj1cIm1vZGUgPT09ICdiYXNlJ1wiIGNsYXNzPVwidW5pLWRpYWxvZy1jb250ZW50XCI+XHJcblx0XHRcdDxzbG90PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pLWRpYWxvZy1jb250ZW50LXRleHRcIj57e2NvbnRlbnR9fTwvdGV4dD5cclxuXHRcdFx0PC9zbG90PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgdi1lbHNlIGNsYXNzPVwidW5pLWRpYWxvZy1jb250ZW50XCI+XHJcblx0XHRcdDxzbG90PlxyXG5cdFx0XHRcdDxpbnB1dCBjbGFzcz1cInVuaS1kaWFsb2ctaW5wdXRcIiB2LW1vZGVsPVwidmFsXCIgdHlwZT1cInRleHRcIiA6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclRleHRcIiA6Zm9jdXM9XCJmb2N1c1wiID5cclxuXHRcdFx0PC9zbG90PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi1ncm91cFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uXCIgQGNsaWNrPVwiY2xvc2VEaWFsb2dcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLXRleHRcIj57e2Nsb3NlVGV4dH19PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24gdW5pLWJvcmRlci1sZWZ0XCIgQGNsaWNrPVwib25Pa1wiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tdGV4dCB1bmktYnV0dG9uLWNvbG9yXCI+e3tva1RleHR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBwb3B1cCBmcm9tICcuLi91bmktcG9wdXAvcG9wdXAuanMnXHJcblx0aW1wb3J0IHtcclxuXHRpbml0VnVlSTE4blxyXG5cdH0gZnJvbSAnQGRjbG91ZGlvL3VuaS1pMThuJ1xyXG5cdGltcG9ydCBtZXNzYWdlcyBmcm9tICcuLi91bmktcG9wdXAvaTE4bi9pbmRleC5qcydcclxuXHRjb25zdCB7XHR0IH0gPSBpbml0VnVlSTE4bihtZXNzYWdlcylcclxuXHQvKipcclxuXHQgKiBQb3BVcCDlvLnlh7rlsYIt5a+56K+d5qGG5qC35byPXHJcblx0ICogQGRlc2NyaXB0aW9uIOW8ueWHuuWxgi3lr7nor53moYbmoLflvI9cclxuXHQgKiBAdHV0b3JpYWwgaHR0cHM6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MzI5XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHZhbHVlIGlucHV0IOaooeW8j+S4i+eahOm7mOiupOWAvFxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBwbGFjZWhvbGRlciBpbnB1dCDmqKHlvI/kuIvovpPlhaXmj5DnpLpcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFtzdWNjZXNzfHdhcm5pbmd8aW5mb3xlcnJvcl0g5Li76aKY5qC35byPXHJcblx0ICogIEB2YWx1ZSBzdWNjZXNzIOaIkOWKn1xyXG5cdCAqIFx0QHZhbHVlIHdhcm5pbmcg5o+Q56S6XHJcblx0ICogXHRAdmFsdWUgaW5mbyDmtojmga9cclxuXHQgKiBcdEB2YWx1ZSBlcnJvciDplJnor69cclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gbW9kZSA9IFtiYXNlfGlucHV0XSDmqKHlvI/jgIFcclxuXHQgKiBcdEB2YWx1ZSBiYXNlIOWfuuehgOWvueivneahhlxyXG5cdCAqIFx0QHZhbHVlIGlucHV0IOWPr+i+k+WFpeWvueivneahhlxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBjb250ZW50IOWvueivneahhuWGheWuuVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gYmVmb3JlQ2xvc2Ug5piv5ZCm5oum5oiq5Y+W5raI5LqL5Lu2XHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY29uZmlybSDngrnlh7vnoa7orqTmjInpkq7op6blj5FcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjbG9zZSDngrnlh7vlj5bmtojmjInpkq7op6blj5FcclxuXHQgKi9cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogXCJ1bmlQb3B1cERpYWxvZ1wiLFxyXG5cdFx0bWl4aW5zOiBbcG9wdXBdLFxyXG5cdFx0ZW1pdHM6Wydjb25maXJtJywnY2xvc2UnXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHZhbHVlOiB7XHJcblx0XHRcdFx0dHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRwbGFjZWhvbGRlcjoge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0dHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnZXJyb3InXHJcblx0XHRcdH0sXHJcblx0XHRcdG1vZGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2Jhc2UnXHJcblx0XHRcdH0sXHJcblx0XHRcdHRpdGxlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbnRlbnQ6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0YmVmb3JlQ2xvc2U6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdGNhbmNlbFRleHQ6e1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb25maXJtVGV4dDp7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGRpYWxvZ1R5cGU6ICdlcnJvcicsXHJcblx0XHRcdFx0Zm9jdXM6IGZhbHNlLFxyXG5cdFx0XHRcdHZhbDogXCJcIlxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0b2tUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbmZpcm1UZXh0IHx8IHQoXCJ1bmktcG9wdXAub2tcIilcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xvc2VUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmNhbmNlbFRleHQgfHwgdChcInVuaS1wb3B1cC5jYW5jZWxcIilcclxuXHRcdFx0fSxcclxuXHRcdFx0cGxhY2Vob2xkZXJUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIHx8IHQoXCJ1bmktcG9wdXAucGxhY2Vob2xkZXJcIilcclxuXHRcdFx0fSxcclxuXHRcdFx0dGl0bGVUZXh0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnRpdGxlIHx8IHQoXCJ1bmktcG9wdXAudGl0bGVcIilcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdHR5cGUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdG1vZGUodmFsKSB7XHJcblx0XHRcdFx0aWYgKHZhbCA9PT0gJ2lucHV0Jykge1xyXG5cdFx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gJ2luZm8nXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR2YWx1ZSh2YWwpIHtcclxuXHRcdFx0XHR0aGlzLnZhbCA9IHZhbFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHRcdFx0Ly8g5a+56K+d5qGG6YGu572p5LiN5Y+v54K55Ye7XHJcblx0XHRcdHRoaXMucG9wdXAuZGlzYWJsZU1hc2soKVxyXG5cdFx0XHQvLyB0aGlzLnBvcHVwLmNsb3NlTWFzaygpXHJcblx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdpbnB1dCcpIHtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1R5cGUgPSAnaW5mbydcclxuXHRcdFx0XHR0aGlzLnZhbCA9IHRoaXMudmFsdWVcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnR5cGVcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdHRoaXMuZm9jdXMgPSB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog54K55Ye756Gu6K6k5oyJ6ZKuXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRvbk9rKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdpbnB1dCcpe1xyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY29uZmlybScsIHRoaXMudmFsKVxyXG5cdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY29uZmlybScpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHRoaXMuYmVmb3JlQ2xvc2UpIHJldHVyblxyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog54K55Ye75Y+W5raI5oyJ6ZKuXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRjbG9zZURpYWxvZygpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdjbG9zZScpXHJcblx0XHRcdFx0aWYodGhpcy5iZWZvcmVDbG9zZSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpcy5wb3B1cC5jbG9zZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNsb3NlKCl7XHJcblx0XHRcdFx0dGhpcy5wb3B1cC5jbG9zZSgpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgPlxyXG5cdC51bmktcG9wdXAtZGlhbG9nIHtcclxuXHRcdHdpZHRoOiAzMDBweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDExcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctdGl0bGUge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0cGFkZGluZy10b3A6IDI1cHg7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy10aXRsZS10ZXh0IHtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1jb250ZW50IHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nOiAyMHB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctY29udGVudC10ZXh0IHtcclxuXHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdGNvbG9yOiAjNkM2QzZDO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uLWdyb3VwIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRib3JkZXItdG9wLWNvbG9yOiAjZjVmNWY1O1xyXG5cdFx0Ym9yZGVyLXRvcC1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItdG9wLXdpZHRoOiAxcHg7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1idXR0b24ge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cclxuXHRcdGZsZXg6IDE7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0aGVpZ2h0OiA0NXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1ib3JkZXItbGVmdCB7XHJcblx0XHRib3JkZXItbGVmdC1jb2xvcjogI2YwZjBmMDtcclxuXHRcdGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcclxuXHRcdGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XHJcblx0fVxyXG5cclxuXHQudW5pLWRpYWxvZy1idXR0b24tdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRjb2xvcjogIzMzMztcclxuXHR9XHJcblxyXG5cdC51bmktYnV0dG9uLWNvbG9yIHtcclxuXHRcdGNvbG9yOiAjMDA3YWZmO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctaW5wdXQge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdGJvcmRlcjogMXB4ICNlZWUgc29saWQ7XHJcblx0XHRoZWlnaHQ6IDQwcHg7XHJcblx0XHRwYWRkaW5nOiAwIDEwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRjb2xvcjogIzU1NTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX3N1Y2Nlc3Mge1xyXG5cdFx0Y29sb3I6ICM0Y2Q5NjQ7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX193YXJuIHtcclxuXHRcdGNvbG9yOiAjZjBhZDRlO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fZXJyb3Ige1xyXG5cdFx0Y29sb3I6ICNkZDUyNGQ7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19pbmZvIHtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///126\n"); /***/ }), /* 127 */ /*!***************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/popup.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n data: function data() {\n return {};\n },\n created: function created() {\n this.popup = this.getParent();\n },\n methods: {\n /**\r\n * 获取父元素实例\r\n */\n getParent: function getParent() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniPopup';\n var parent = this.$parent;\n var parentName = parent.$options.name;\n while (parentName !== name) {\n parent = parent.$parent;\n if (!parent) return false;\n parentName = parent.$options.name;\n }\n return parent;\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7OztlQUNlO0VBQ2RBLElBQUksa0JBQUc7SUFDTixPQUFPLENBRVAsQ0FBQztFQUNGLENBQUM7RUFDREMsT0FBTyxxQkFBRTtJQUNSLElBQUksQ0FBQ0MsS0FBSyxHQUFHLElBQUksQ0FBQ0MsU0FBUyxFQUFFO0VBQzlCLENBQUM7RUFDREMsT0FBTyxFQUFDO0lBQ1A7QUFDRjtBQUNBO0lBQ0VELFNBQVMsdUJBQW9CO01BQUEsSUFBbkJFLElBQUksdUVBQUcsVUFBVTtNQUMxQixJQUFJQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPO01BQ3pCLElBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFRLENBQUNKLElBQUk7TUFDckMsT0FBT0csVUFBVSxLQUFLSCxJQUFJLEVBQUU7UUFDM0JDLE1BQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFPO1FBQ3ZCLElBQUksQ0FBQ0QsTUFBTSxFQUFFLE9BQU8sS0FBSztRQUN6QkUsVUFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVEsQ0FBQ0osSUFBSTtNQUNsQztNQUNBLE9BQU9DLE1BQU07SUFDZDtFQUNEO0FBQ0QsQ0FBQztBQUFBIiwiZmlsZSI6IjEyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0Y3JlYXRlZCgpe1xyXG5cdFx0dGhpcy5wb3B1cCA9IHRoaXMuZ2V0UGFyZW50KClcclxuXHR9LFxyXG5cdG1ldGhvZHM6e1xyXG5cdFx0LyoqXHJcblx0XHQgKiDojrflj5bniLblhYPntKDlrp7kvotcclxuXHRcdCAqL1xyXG5cdFx0Z2V0UGFyZW50KG5hbWUgPSAndW5pUG9wdXAnKSB7XHJcblx0XHRcdGxldCBwYXJlbnQgPSB0aGlzLiRwYXJlbnQ7XHJcblx0XHRcdGxldCBwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdHdoaWxlIChwYXJlbnROYW1lICE9PSBuYW1lKSB7XHJcblx0XHRcdFx0cGFyZW50ID0gcGFyZW50LiRwYXJlbnQ7XHJcblx0XHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdHBhcmVudE5hbWUgPSBwYXJlbnQuJG9wdGlvbnMubmFtZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gcGFyZW50O1xyXG5cdFx0fSxcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///127\n"); /***/ }), /* 128 */ /*!********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/index.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 129));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 130));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 131));\nvar _default = {\n en: _en.default,\n 'zh-Hans': _zhHans.default,\n 'zh-Hant': _zhHant.default\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFBbUMsZUFDcEI7RUFDZEEsRUFBRSxFQUFGQSxXQUFFO0VBQ0YsU0FBUyxFQUFFQyxlQUFNO0VBQ2pCLFNBQVMsRUFBRUM7QUFDWixDQUFDO0FBQUEiLCJmaWxlIjoiMTI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVuIGZyb20gJy4vZW4uanNvbidcclxuaW1wb3J0IHpoSGFucyBmcm9tICcuL3poLUhhbnMuanNvbidcclxuaW1wb3J0IHpoSGFudCBmcm9tICcuL3poLUhhbnQuanNvbidcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGVuLFxyXG5cdCd6aC1IYW5zJzogemhIYW5zLFxyXG5cdCd6aC1IYW50JzogemhIYW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///128\n"); /***/ }), /* 129 */ /*!*******************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/en.json ***! \*******************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"cancel\\\",\\\"uni-popup.ok\\\":\\\"ok\\\",\\\"uni-popup.placeholder\\\":\\\"pleace enter\\\",\\\"uni-popup.title\\\":\\\"Hint\\\",\\\"uni-popup.shareTitle\\\":\\\"Share to\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMjkuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///129\n"); /***/ }), /* 130 */ /*!************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json ***! \************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"确定\\\",\\\"uni-popup.placeholder\\\":\\\"请输入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMzAuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///130\n"); /***/ }), /* 131 */ /*!************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json ***! \************************************************************************************************/ /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"取消\\\",\\\"uni-popup.ok\\\":\\\"確定\\\",\\\"uni-popup.placeholder\\\":\\\"請輸入\\\",\\\"uni-popup.title\\\":\\\"提示\\\",\\\"uni-popup.shareTitle\\\":\\\"分享到\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMzEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///131\n"); /***/ }), /* 132 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/a1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/a1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2ExLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///132\n"); /***/ }), /* 133 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/b1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/b1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2IxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///133\n"); /***/ }), /* 134 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/c1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/c1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2MxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///134\n"); /***/ }), /* 135 */ /*!*************************************************!*\ !*** D:/code/private/Monitor-APP/static/d1.png ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = \"/static/d1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjEzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCIvc3RhdGljL2QxLnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///135\n"); /***/ }), /* 136 */ /*!*********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 137);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRuQixDQUFnQiwwb0JBQUcsRUFBQyIsImZpbGUiOiIxMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///136\n"); /***/ }), /* 137 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! 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 _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 103));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 102));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n commonUrl: null,\n // 通用url\n show: true,\n modeClass: 'fade',\n styles: {},\n baseIP: '',\n baseLedId: '',\n basePort: '',\n crnId: '',\n value: '',\n xDistance: 0,\n yDistance: 0,\n xDuration: 0,\n yDuration: 0,\n used: 317,\n usedPr: 90,\n stockCount: 0,\n emptyCount: 0,\n noneCount: 0,\n chartsData: {\n \"Line\": {\n \"categories\": [],\n \"series\": []\n },\n \"Pie\": {\n \"series\": [{\n \"data\": []\n }]\n }\n },\n chartsDataLine1: {},\n chartsDataPie2: {},\n ringOpts: {},\n year: 2022,\n month: 4,\n day: 14,\n hours: 13,\n minutes: 38,\n seconds: 13,\n week: '星期四',\n ani: '',\n // move: 'upMove 1.5s 1;',\n move: false,\n topMove: 'topUp',\n floorMove: '',\n version: '',\n // newspaper:'拣料出库(4426)\\n源库位:1200101\\n目标站:186\\n1101842-10000-22047518517\\n\\n',\t\n newspaper: '',\n errorPaper: '',\n title: '',\n staNo: '',\n matnr: '',\n maknx: '',\n specs: '',\n count: '',\n orderNo: null,\n doneOfTray: '',\n totalOfTray: '',\n doneOfUnit: '',\n totalOfUnit: '',\n errorMsg: null,\n width: 'full-width',\n errorShow: '',\n pakinShow: '',\n pakinGun: '',\n orderShow: false,\n swiper: 'swiper-here',\n autoplay: true,\n // 自动循环\n interval: 1000,\n // 调用时长\n duration: 8000,\n // 移动速度\n matList: [],\n // 订单列表\n ejectShow: false\n };\n },\n mounted: function mounted() {\n var that = this;\n var BaseIP = uni.getStorageSync('BaseIp');\n var BaseLedId = uni.getStorageSync('BaseLedId');\n var BasePort = uni.getStorageSync('BasePort');\n var BaseCrnId = uni.getStorageSync('BaseCrnId');\n that.baseIP = BaseIP;\n that.baseLedId = BaseLedId;\n that.basePort = BasePort;\n that.baseCrnId = BaseCrnId;\n this.getUrl();\n },\n onLoad: function onLoad() {},\n onReady: function onReady() {\n var _this = this;\n setInterval(function () {\n // 获得初始数据\n _this.initlineChart();\n _this.initPieChart();\n // 主页信息\n _this.getServerData();\n _this.getOther();\n // 其他信息\n _this.getDate();\n _this.getPakin();\n _this.getError();\n // this.getYYY();\n // this.getEEE();\n _this.animation();\n _this.getUrl();\n }, 1000);\n },\n methods: {\n // 获取url\n getUrl: function getUrl() {\n this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;\n this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));\n },\n // 获取错误信息\n getYYY: function getYYY() {\n var that = this;\n var result = _data.default.dataEEE;\n // 测试用 ↓\n var res = result.data;\n // 测试用 ↑\n // 返回结果有值 且值不等于空值 就是有错误信息需要展示\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 显示\n } else {\n that.errorPaper = '';\n that.errorShow = false;\n if (that.pakinShow) {\n return;\n } else {\n that.move = true; // 隐藏\n }\n }\n },\n getEEE: function getEEE() {\n var that = this;\n var newsData = '';\n var str = '';\n var result = _data.default.dataYYY;\n // 测试用 ↓\n var res = result.data;\n // 测试用 ↑\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.title = '检料出库';\n }\n that.staNo = '目标站:' + res.data[0].staNo;\n that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;\n that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;\n that.count = '出库数量:' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"订单号:\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;\n that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;\n that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;\n that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;\n if (that.errorShow) {\n return;\n } else {\n that.newspaper = newsData;\n that.move = false;\n }\n } else {\n that.move = true;\n }\n },\n // 获取错误信息\n getError: function getError() {\n var that = this;\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led/error\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (res.data && res.data !== \"\") {\n that.errorMsg = res.data;\n that.errorShow = true;\n that.move = false; // 显示\n } else {\n that.errorShow = false;\n // if (that.pakinShow) {\n // \treturn;\n // } else {\n // \t// that.move = true // 隐藏\n // }\n }\n }\n });\n },\n getPakin: function getPakin() {\n var that = this;\n that.matList = []; // 清空条码列表\n var newsData = '';\n var str = '';\n var res;\n uni.request({\n url: that.commonUrl + \"/monitor/led\",\n data: {\n ledId: that.baseLedId\n },\n method: 'GET',\n success: function success(result) {\n res = result.data;\n if (that.errorShow) {\n return; // 有错误信息\n }\n\n if (res.data && res.data !== null) {\n if (res.data[0].ioType === 101) {\n that.title = '全板出库';\n } else if (res.data[0].ioType === 103) {\n that.title = '检料出库';\n } else that.title = res.data[0].title;\n that.staNo = '目标站:' + res.data[0].staNo;\n that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr;\n that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx;\n that.specs = '规格:' + res.data[0].matDtos[0].specs;\n that.count = '出库数量:' + res.data[0].matDtos[0].count;\n if (res.data[0].orderNo) {\n that.orderNo = \"订单号:\" + res.data[0].orderNo;\n that.orderShow = true;\n that.width = 'half-width';\n } else {\n that.orderNo = null;\n that.orderShow = false;\n that.width = 'full-width';\n }\n that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray;\n that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray;\n that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit;\n that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit;\n that.newspaper = newsData;\n that.move = false;\n } else {\n that.move = true;\n }\n }\n });\n },\n animation: function animation() {\n if (this.move) {\n this.topMove = 'topUp';\n this.floorMove = 'floorUp';\n } else {\n this.topMove = 'topDown';\n this.floorMove = 'floorDown';\n }\n },\n getDateFormat: function getDateFormat(value) {\n var date = new Date(); // 获取当前时间\n date.setDate(date.getDate() + value); // 设置天数 -1 天\n var m = date.getMonth() + 1;\n var d = date.getDate();\n var newDate = m + '-' + d;\n return newDate;\n },\n /*************** 折线图 *****************************************************************************************************/initlineChart: function initlineChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/line/charts\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n __f__(\"log\", result, \" at pages/index/index.vue:586\");\n if (res.code === 200) {\n that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];\n that.chartsData.Line.series = res.data.rows;\n }\n }\n });\n },\n /*************** 饼图 *****************************************************************************************************/initPieChart: function initPieChart() {\n var that = this;\n uni.request({\n url: that.commonUrl + \"/monitor/loc/rep\",\n method: 'GET',\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n that.chartsData.Pie.series[0].data = res.data.pie;\n that.stockCount = res.data.stockCunt;\n that.emptyCount = res.data.emptyCount;\n that.noneCount = res.data.noneCount;\n that.used = res.data.used;\n that.usedPr = res.data.usedPr;\n }\n }\n });\n },\n getOther: function getOther() {\n var that = this;\n uni.request({\n // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n url: that.commonUrl + \"/monitor/other\",\n data: {\n crnId: that.baseCrnId,\n ledId: 1\n },\n success: function success(result) {\n __f__(\"log\", result, \" at pages/index/index.vue:626\");\n var res = result.data;\n if (res.code === 200) {\n that.xDistance = res.data.xDistance;\n that.yDistance = res.data.yDistance;\n that.xDuration = res.data.xDuration;\n that.yDuration = res.data.yDuration;\n } else if (res.code === 403) {} else {}\n }\n });\n },\n ejected: function ejected() {\n this.ejectShow = true;\n },\n // 弹出层确认\n ejectConfirm: function ejectConfirm() {\n uni.setStorageSync('BaseIp', this.baseIP);\n uni.setStorageSync('BaseLedId', this.baseLedId);\n uni.setStorageSync('BasePort', this.basePort);\n uni.setStorageSync('BaseCrnId', this.baseCrnId);\n this.getUrl();\n this.ejectShow = false;\n },\n // 弹出层取消\n ejectClose: function ejectClose() {\n this.ejectShow = false;\n },\n getServerData: function getServerData() {\n this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n },\n complete: function complete(e) {\n __f__(\"log\", \"渲染完成事件\", e, \" at pages/index/index.vue:662\");\n },\n getDate: function getDate() {\n var dt = new Date();\n this.year = dt.getFullYear();\n this.month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n this.day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n this.weeks = dt.getDay();\n switch (this.weeks) {\n case 0:\n this.week = \"星期日\";\n break;\n case 1:\n this.week = \"星期一\";\n break;\n case 2:\n this.week = \"星期二\";\n break;\n case 3:\n this.week = \"星期三\";\n break;\n case 4:\n this.week = \"星期四\";\n break;\n case 5:\n this.week = \"星期五\";\n break;\n default:\n this.week = \"星期六\";\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsInNwZWNzIiwiY291bnQiLCJvcmRlck5vIiwiZG9uZU9mVHJheSIsInRvdGFsT2ZUcmF5IiwiZG9uZU9mVW5pdCIsInRvdGFsT2ZVbml0IiwiZXJyb3JNc2ciLCJ3aWR0aCIsImVycm9yU2hvdyIsInBha2luU2hvdyIsInBha2luR3VuIiwib3JkZXJTaG93Iiwic3dpcGVyIiwiYXV0b3BsYXkiLCJpbnRlcnZhbCIsImR1cmF0aW9uIiwibWF0TGlzdCIsImVqZWN0U2hvdyIsIm1vdW50ZWQiLCJ0aGF0IiwiQmFzZUlQIiwidW5pIiwiZ2V0U3RvcmFnZVN5bmMiLCJCYXNlTGVkSWQiLCJCYXNlUG9ydCIsIkJhc2VDcm5JZCIsImJhc2VDcm5JZCIsImdldFVybCIsIm9uTG9hZCIsIm9uUmVhZHkiLCJzZXRJbnRlcnZhbCIsImluaXRsaW5lQ2hhcnQiLCJpbml0UGllQ2hhcnQiLCJnZXRTZXJ2ZXJEYXRhIiwiZ2V0T3RoZXIiLCJnZXREYXRlIiwiZ2V0UGFraW4iLCJnZXRFcnJvciIsImFuaW1hdGlvbiIsIm1ldGhvZHMiLCJiYXNlSHR0cCIsImJhc2VVcmwiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJkZW1vZGF0YSIsIkxpbmUiLCJnZXRZWVkiLCJyZXN1bHQiLCJ5Y3FkYXRhIiwiZGF0YUVFRSIsInJlcyIsImdldEVFRSIsIm5ld3NEYXRhIiwic3RyIiwiZGF0YVlZWSIsImlvVHlwZSIsIm1hdER0b3MiLCJyZXF1ZXN0IiwidXJsIiwibGVkSWQiLCJtZXRob2QiLCJzdWNjZXNzIiwiZ2V0RGF0ZUZvcm1hdCIsImRhdGUiLCJEYXRlIiwic2V0RGF0ZSIsIm0iLCJnZXRNb250aCIsImQiLCJuZXdEYXRlIiwiY29kZSIsImNhdGVnb3JpZXMiLCJzZXJpZXMiLCJyb3dzIiwiUGllIiwicGllIiwic3RvY2tDdW50IiwiZWplY3RlZCIsImVqZWN0Q29uZmlybSIsInNldFN0b3JhZ2VTeW5jIiwiZWplY3RDbG9zZSIsImNvbXBsZXRlIiwiZSIsImR0IiwiZ2V0RnVsbFllYXIiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwid2Vla3MiLCJnZXREYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUEyU0M7QUFDQTtBQTVTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QSxJQUFJLEdBQUcsS0FBSztVQUFFO1FBQzNCLEtBQUssQ0FBQztVQUFFLElBQUksQ0FBQ0EsSUFBSSxHQUFHLEtBQUs7VUFBRTtRQUMzQixLQUFLLENBQUM7VUFBRSxJQUFJLENBQUNBLElBQUksR0FBRyxLQUFLO1VBQUU7UUFDM0I7VUFBVSxJQUFJLENBQUNBLElBQUksR0FBRyxLQUFLO01BQUM7SUFFOUI7RUFDRDtBQUNELENBQUM7QUFBQSwyQiIsImZpbGUiOiIxMzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcblx0aW1wb3J0IGRlbW9kYXRhIGZyb20gJ0AvbW9ja2RhdGEvZGVtb2RhdGEuanNvbic7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxuXHRcdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0XHRtb2RlQ2xhc3M6ICdmYWRlJyxcblx0XHRcdFx0c3R5bGVzOiB7fSxcblx0XHRcdFx0YmFzZUlQOicnLFxuXHRcdFx0XHRiYXNlTGVkSWQ6JycsXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxuXHRcdFx0XHRjcm5JZDonJyxcblx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXG5cdFx0XHRcdHlEaXN0YW5jZTowLFxuXHRcdFx0XHR4RHVyYXRpb246MCxcblx0XHRcdFx0eUR1cmF0aW9uOjAsXG5cdFx0XHRcdHVzZWQ6MzE3LFxuXHRcdFx0XHR1c2VkUHI6IDkwLFxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXG5cdFx0XHRcdGVtcHR5Q291bnQ6MCxcblx0XHRcdFx0bm9uZUNvdW50OjAsXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xuXHRcdFx0XHRcdFx0XCJjYXRlZ29yaWVzXCI6IFtdLFxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwiUGllXCI6IHtcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdFx0XHRcdFx0fV1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxuXHRcdFx0XHR5ZWFyOjIwMjIsXG5cdFx0XHRcdG1vbnRoOjQsXG5cdFx0XHRcdGRheToxNCxcblx0XHRcdFx0aG91cnM6MTMsXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXG5cdFx0XHRcdHNlY29uZHM6MTMsXG5cdFx0XHRcdHdlZWs6J+aYn+acn+WbmycsXG5cdFx0XHRcdGFuaTonJyxcblx0XHRcdFx0Ly8gbW92ZTogJ3VwTW92ZSAxLjVzIDE7Jyxcblx0XHRcdFx0bW92ZTpmYWxzZSxcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxuXHRcdFx0XHRmbG9vck1vdmU6JycsXG5cdFx0XHRcdHZlcnNpb246JycsXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcblx0XHRcdFx0bmV3c3BhcGVyOicnLFxuXHRcdFx0XHRlcnJvclBhcGVyOicnLFxuXHRcdFx0XHR0aXRsZTonJyxcblx0XHRcdFx0c3RhTm86JycsXG5cdFx0XHRcdG1hdG5yOicnLFxuXHRcdFx0XHRtYWtueDonJyxcblx0XHRcdFx0c3BlY3M6JycsXG5cdFx0XHRcdGNvdW50OicnLFxuXHRcdFx0XHRvcmRlck5vOm51bGwsXG5cdFx0XHRcdGRvbmVPZlRyYXk6JycsXG5cdFx0XHRcdHRvdGFsT2ZUcmF5OicnLFxuXHRcdFx0XHRkb25lT2ZVbml0OicnLFxuXHRcdFx0XHR0b3RhbE9mVW5pdDonJyxcblx0XHRcdFx0ZXJyb3JNc2c6bnVsbCxcblx0XHRcdFx0d2lkdGg6J2Z1bGwtd2lkdGgnLFxuXHRcdFx0XHRlcnJvclNob3c6JycsXG5cdFx0XHRcdHBha2luU2hvdzonJyxcblx0XHRcdFx0cGFraW5HdW46JycsXG5cdFx0XHRcdG9yZGVyU2hvdzpmYWxzZSxcblx0XHRcdFx0c3dpcGVyOidzd2lwZXItaGVyZScsXG5cdFx0XHRcdGF1dG9wbGF5OnRydWUsIC8vIOiHquWKqOW+queOr1xuXHRcdFx0XHRpbnRlcnZhbDoxMDAwLCAvLyDosIPnlKjml7bplb9cblx0XHRcdFx0ZHVyYXRpb246ODAwMCwgLy8g56e75Yqo6YCf5bqmXG5cdFx0XHRcdG1hdExpc3Q6W10sIC8vIOiuouWNleWIl+ihqFxuXHRcdFx0XHRlamVjdFNob3c6IGZhbHNlLFxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1vdW50ZWQoKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XG5cdFx0XHRjb25zdCBCYXNlTGVkSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcpO1xuXHRcdFx0Y29uc3QgQmFzZVBvcnQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyk7XG5cdFx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xuXHRcdFx0XHR0aGF0LmJhc2VJUCA9IEJhc2VJUFxuXHRcdFx0XHR0aGF0LmJhc2VMZWRJZCA9IEJhc2VMZWRJZFxuXHRcdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcblx0XHRcdFx0dGhhdC5iYXNlQ3JuSWQgPSBCYXNlQ3JuSWRcblx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHR9LFxuXHRcdG9uTG9hZCgpIHtcblx0XHRcdFxuXHRcdH0sXG5cdFx0b25SZWFkeSgpIHtcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0Ly8g6I635b6X5Yid5aeL5pWw5o2uXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpO1xuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xuXHRcdFx0XHQvLyDkuLvpobXkv6Hmga9cblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKCk7XG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcblx0XHRcdFx0Ly8g5YW25LuW5L+h5oGvXG5cdFx0XHRcdHRoaXMuZ2V0RGF0ZSgpO1xuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XG5cdFx0XHRcdHRoaXMuZ2V0RXJyb3IoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRZWVkoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcblx0XHRcdFx0dGhpcy5hbmltYXRpb24oKVxuXHRcdFx0XHR0aGlzLmdldFVybCgpXG5cdFx0XHR9LDEwMDApXG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHQvLyDojrflj5Z1cmxcblx0XHRcdGdldFVybCgpIHtcblx0XHRcdFx0dGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyB0aGlzLmJhc2VVcmxcblx0XHRcdFx0dGhpcy5jaGFydHNEYXRhTGluZTEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlbW9kYXRhLkxpbmUpKVxuXHRcdFx0fSxcblx0XHRcdC8vIOiOt+WPlumUmeivr+S/oeaBr1xuXHRcdFx0Z2V0WVlZKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YUVFRVxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcblx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yUGFwZXIgPSAnJ1xuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXRFRUUgKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcblx0XHRcdFx0dmFyIHN0ciA9ICcnXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFZWVlcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcblx0XHRcdFx0bGV0XHRyZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cblx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSAn5ZWG5ZOB57yW5Y+377yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcblx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cblx0XHRcdGdldEVycm9yKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGVkL2Vycm9yXCIsXG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0cmVzID0gcmVzdWx0LmRhdGEgXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0Ly8gaWYgKHRoYXQucGFraW5TaG93KSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBcdC8vIHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXG5cdFx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGdldFBha2luICgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubWF0TGlzdCA9IFtdIC8vIOa4heepuuadoeeggeWIl+ihqFxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xuXHRcdFx0XHR2YXIgc3RyID0gJydcblx0XHRcdFx0bGV0IHJlcyBcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuOyAgLy8g5pyJ6ZSZ6K+v5L+h5oGvXG5cdFx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdFx0aWYocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHJlcy5kYXRhWzBdLnRpdGxlXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXG5cdFx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdFx0dGhhdC5zcGVjcyA9ICfop4TmoLzvvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5zcGVjc1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNvdW50ID0gJ+WHuuW6k+aVsOmHj++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLmNvdW50XG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gXCLorqLljZXlj7fvvJpcIiArIHJlcy5kYXRhWzBdLm9yZGVyTm9cblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IHRydWVcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlck5vID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdmdWxsLXdpZHRoJ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdFx0dGhhdC50b3RhbE9mVHJheSA9ICfmiZjnm5jmgLvmlbDph4/vvJonICsgcmVzLmRhdGFbMF0udG90YWxPZlRyYXlcblx0XHRcdFx0XHRcdFx0dGhhdC5kb25lT2ZVbml0ID0gJ+W3suWHuueuseaVsO+8micgKyByZXMuZGF0YVswXS5kb25lT2ZVbml0XG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRcdHRoYXQubmV3c3BhcGVyID0gbmV3c0RhdGFcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdH1lbHNlIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0YW5pbWF0aW9uKCkge1xuXHRcdFx0XHRpZiAodGhpcy5tb3ZlKSB7IFxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BVcCdcblx0XHRcdFx0XHR0aGlzLmZsb29yTW92ZSA9ICdmbG9vclVwJ1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BEb3duJ1xuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yRG93bidcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGdldERhdGVGb3JtYXQodmFsdWUpIHtcblx0XHRcdFx0dmFyIGRhdGUgPSBuZXcgRGF0ZSgpOy8vIOiOt+WPluW9k+WJjeaXtumXtFxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxuXHRcdFx0XHR2YXIgbSA9IGRhdGUuZ2V0TW9udGgoKSArIDFcblx0XHRcdFx0dmFyIGQgPSBkYXRlLmdldERhdGUoKVxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXG5cdFx0XHRcdHJldHVybiBuZXdEYXRlXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0bGluZUNoYXJ0KCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xpbmUvY2hhcnRzXCIsXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5jYXRlZ29yaWVzID0gW1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksdGhhdC5nZXREYXRlRm9ybWF0KC0yKSx0aGF0LmdldERhdGVGb3JtYXQoLTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxdXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IHJlcy5kYXRhLnJvd3Ncblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDppbzlm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0UGllQ2hhcnQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gcmVzLmRhdGEucGllXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQubm9uZUNvdW50ID0gcmVzLmRhdGEubm9uZUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQudXNlZCA9IHJlcy5kYXRhLnVzZWRcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0T3RoZXIoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0Ly8gaHR0cDovLzEwLjEwLjAuMjIyOjkwOTAvamt3Y3MvbW9uaXRvci9sZWQ/bGVkSWQ9MTg2XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHRjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC55RGlzdGFuY2UgPSByZXMuZGF0YS55RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRlamVjdGVkICgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXG5cdFx0XHRlamVjdENvbmZpcm0oKSB7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUlwJywgdGhpcy5iYXNlSVApO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcsdGhpcy5iYXNlUG9ydCk7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyx0aGlzLmJhc2VDcm5JZCk7XG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxuXHRcdFx0ZWplY3RDbG9zZSgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGdldFNlcnZlckRhdGEoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXG5cdFx0XHR9LFxuXHRcdFx0Y29tcGxldGUoZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xuXHRcdFx0fSxcblx0XHRcdGdldERhdGUoKSB7XG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdHRoaXMueWVhciA9IGR0LmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdHRoaXMubW9udGggPSAoZHQuZ2V0TW9udGgoKSsxKSA8IDEwID8gJzAnKyAoZHQuZ2V0TW9udGgoKSsxKSA6IChkdC5nZXRNb250aCgpKzEpO1xuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcblx0XHRcdFx0dGhpcy5ob3VycyA9IGR0LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGR0LmdldEhvdXJzKCkgOiBkdC5nZXRIb3VycygpO1xuXHRcdFx0XHR0aGlzLm1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGR0LmdldE1pbnV0ZXMoKSA6IGR0LmdldE1pbnV0ZXMoKTtcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxuXHRcdFx0XHR0aGlzLndlZWtzID0gZHQuZ2V0RGF5KCk7IFxuXHRcdFx0XHRzd2l0Y2ggKHRoaXMud2Vla3MpIHtcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgMTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAyOiB0aGlzLndlZWsgPSBcIuaYn+acn+S6jFwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgNDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSA1OiB0aGlzLndlZWsgPSBcIuaYn+acn+S6lFwiOyBicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///137\n"); /***/ }), /* 138 */ /*!***********************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/monitor.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 _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 139);\n/* harmony import */ var _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./monitor.vue?vue&type=script&lang=js&mpType=page */ 141);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _monitor_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 _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7d4f7644\",\n null,\n false,\n _monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/index/monitor.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkk7QUFDM0k7QUFDc0U7QUFDTDs7O0FBR2pFO0FBQ3VMO0FBQ3ZMLGdCQUFnQiw4TEFBVTtBQUMxQixFQUFFLHdGQUFNO0FBQ1IsRUFBRSx5R0FBTTtBQUNSLEVBQUUsa0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTM4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tb25pdG9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03ZDRmNzY0NCZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiN2Q0Zjc2NDRcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaW5kZXgvbW9uaXRvci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///138\n"); /***/ }), /* 139 */ /*!*****************************************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=template&id=7d4f7644&scoped=true&mpType=page */ 140); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_template_id_7d4f7644_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 140 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/index/monitor.vue?vue&type=template&id=7d4f7644&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 var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", [ _c("view", [ _c( "swiper", { attrs: { autoplay: _vm._$s(2, "a-autoplay", _vm.autoplay), interval: _vm._$s(2, "a-interval", _vm.interval), duration: _vm._$s(2, "a-duration", _vm.duration), _i: 2, }, }, _vm._l( _vm._$s(3, "f", { forItems: _vm.list }), function (item, index, $20, $30) { return _c( "swiper-item", { key: _vm._$s(3, "f", { forIndex: $20, key: index }) }, [_c("view", [_vm._v(_vm._$s("4-" + $30, "t0-0", _vm._s(item)))])] ) } ), 0 ), ]), ]) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 141 */ /*!***********************************************************************************************!*\ !*** D:/code/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./monitor.vue?vue&type=script&lang=js&mpType=page */ 142);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_monitor_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThuQixDQUFnQiw0b0JBQUcsRUFBQyIsImZpbGUiOiIxNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL21vbml0b3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbW9uaXRvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///141\n"); /***/ }), /* 142 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/pages/index/monitor.vue?vue&type=script&lang=js&mpType=page ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: '',\n data: function data() {\n return {\n autoplay: true,\n interval: 1000,\n duration: 1000,\n list: ['请点击发行菜单进行发布', '1', '体积较大;若要正式发布', '2', '运行模式下不压缩代码且含有sourcemap', '3', '检查是否启动多个微信开发者工具,如果是则关闭所有打开的微信开发者工具,', '4', '然后再重新运行', '5', '如果出现微信开发者工具启动后白屏的问题', '6', '或者关闭微信开发者工具,然后再从HBuilderX中启动指定页面', '7', '可以通过微信开发者工具切换pages.json中condition配置的页面', '8', '中修改文件并保存,会自动刷新微信模拟器', '9', '微信开发者工具已启动,在HBuilderX', '10']\n };\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLGVBRWtCO0VBQ1ZBLElBQUksRUFBQyxFQUFFO0VBQ1BDLElBQUksa0JBQUU7SUFDRixPQUFNO01BQ0ZDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLFFBQVEsRUFBQyxJQUFJO01BQ2JDLElBQUksRUFBQyxDQUNELGFBQWEsRUFDNUIsR0FBRyxFQUNZLGFBQWEsRUFDNUIsR0FBRyxFQUNZLHdCQUF3QixFQUN2QyxHQUFHLEVBQ1kscUNBQXFDLEVBQ3BELEdBQUcsRUFDWSxTQUFTLEVBQ3hCLEdBQUcsRUFDWSxxQkFBcUIsRUFDcEMsR0FBRyxFQUNZLGtDQUFrQyxFQUNqRCxHQUFHLEVBQ1ksd0NBQXdDLEVBQ3ZELEdBQUcsRUFDWSxxQkFBcUIsRUFDcEMsR0FBRyxFQUNZLHVCQUF1QixFQUN0QyxJQUFJO0lBRUcsQ0FBQztFQUNMO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjE0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbiAgICBleHBvcnQgZGVmYXVsdHtcbiAgICAgICAgbmFtZTonJyxcbiAgICAgICAgZGF0YSgpe1xuICAgICAgICAgICAgcmV0dXJue1xuICAgICAgICAgICAgICAgIGF1dG9wbGF5OnRydWUsXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6MTAwMCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjoxMDAwLFxuICAgICAgICAgICAgICAgIGxpc3Q6W1xuICAgICAgICAgICAgICAgICAgICAn6K+354K55Ye75Y+R6KGM6I+c5Y2V6L+b6KGM5Y+R5biDJyxcblx0XHRcdFx0XHQnMScsXG4gICAgICAgICAgICAgICAgICAgICfkvZPnp6/ovoPlpKfvvJvoi6XopoHmraPlvI/lj5HluIMnLFxuXHRcdFx0XHRcdCcyJyxcbiAgICAgICAgICAgICAgICAgICAgJ+i/kOihjOaooeW8j+S4i+S4jeWOi+e8qeS7o+eggeS4lOWQq+aciXNvdXJjZW1hcCcsXG5cdFx0XHRcdFx0JzMnLFxuICAgICAgICAgICAgICAgICAgICAn5qOA5p+l5piv5ZCm5ZCv5Yqo5aSa5Liq5b6u5L+h5byA5Y+R6ICF5bel5YW377yM5aaC5p6c5piv5YiZ5YWz6Zet5omA5pyJ5omT5byA55qE5b6u5L+h5byA5Y+R6ICF5bel5YW377yMJyxcblx0XHRcdFx0XHQnNCcsXG4gICAgICAgICAgICAgICAgICAgICfnhLblkI7lho3ph43mlrDov5DooYwnLFxuXHRcdFx0XHRcdCc1JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WmguaenOWHuueOsOW+ruS/oeW8gOWPkeiAheW3peWFt+WQr+WKqOWQjueZveWxj+eahOmXrumimCcsXG5cdFx0XHRcdFx0JzYnLFxuICAgICAgICAgICAgICAgICAgICAn5oiW6ICF5YWz6Zet5b6u5L+h5byA5Y+R6ICF5bel5YW377yM54S25ZCO5YaN5LuOSEJ1aWxkZXJY5Lit5ZCv5Yqo5oyH5a6a6aG16Z2iJyxcblx0XHRcdFx0XHQnNycsXG4gICAgICAgICAgICAgICAgICAgICflj6/ku6XpgJrov4flvq7kv6HlvIDlj5HogIXlt6XlhbfliIfmjaJwYWdlcy5qc29u5LitY29uZGl0aW9u6YWN572u55qE6aG16Z2iJyxcblx0XHRcdFx0XHQnOCcsXG4gICAgICAgICAgICAgICAgICAgICfkuK3kv67mlLnmlofku7blubbkv53lrZjvvIzkvJroh6rliqjliLfmlrDlvq7kv6HmqKHmi5/lmagnLFxuXHRcdFx0XHRcdCc5JyxcbiAgICAgICAgICAgICAgICAgICAgJ+W+ruS/oeW8gOWPkeiAheW3peWFt+W3suWQr+WKqO+8jOWcqEhCdWlsZGVyWCcsXG5cdFx0XHRcdFx0JzEwJyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///142\n"); /***/ }), /* 143 */ /*!*******************************************!*\ !*** D:/code/private/Monitor-APP/App.vue ***! \*******************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 144);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_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 _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 25);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDaUw7QUFDakwsZ0JBQWdCLDhMQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjE0My5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50c1xudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJBcHAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///143\n"); /***/ }), /* 144 */ /*!********************************************************************!*\ !*** D:/code/private/Monitor-APP/App.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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../code environment/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 145);\n/* harmony import */ var _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_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 _code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_code_environment_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXVsQixDQUFnQiw2bkJBQUcsRUFBQyIsImZpbGUiOiIxNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vY29kZSBlbnZpcm9ubWVudC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi9jb2RlIGVudmlyb25tZW50L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uL2NvZGUgZW52aXJvbm1lbnQvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///144\n"); /***/ }), /* 145 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./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!D:/code/private/Monitor-APP/App.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n }\n};\nexports.default = _default;\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjE0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlZmF1bHQge1xuXHRvbkxhdW5jaDogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBMYXVuY2gnKVxuXHR9LFxuXHRvblNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdGNvbnNvbGUubG9nKCdBcHAgU2hvdycpXG5cdH0sXG5cdG9uSGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBIaWRlJylcblx0fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); /***/ }) ],[[0,"app-config"]]]);