diff --git a/Step/wwwroot/assets/styles/style.css b/Step/wwwroot/assets/styles/style.css
index d10d703a..bf340dd0 100644
--- a/Step/wwwroot/assets/styles/style.css
+++ b/Step/wwwroot/assets/styles/style.css
@@ -1001,9 +1001,8 @@ body {
.iziToast-wrapper-bottomLeft {
bottom: 80px;
}
-.iziToast-wrapper-topRight,
-.iziToast-wrapper-topLeft {
- top: 80px;
+.iziToast-wrapper-bottomRight .iziToast {
+ bottom: 80px;
}
.iziToast {
background-color: #f1f1f1;
diff --git a/Step/wwwroot/assets/styles/style.less b/Step/wwwroot/assets/styles/style.less
index c1fb9964..5274fed7 100644
--- a/Step/wwwroot/assets/styles/style.less
+++ b/Step/wwwroot/assets/styles/style.less
@@ -11,10 +11,14 @@ body{
bottom: 80px;
}
-.iziToast-wrapper-topRight,.iziToast-wrapper-topLeft{
- top: 80px;
+.iziToast-wrapper-bottomRight .iziToast{
+ bottom: 80px;
}
+// .iziToast-wrapper-topRight,.iziToast-wrapper-topLeft{
+// // top: 80px;
+// }
+
.iziToast{
background-color: @color-white2;
border-color: @color-white2;
diff --git a/Step/wwwroot/dist/0.build.js b/Step/wwwroot/dist/0.build.js
index addae043..34447bce 100644
--- a/Step/wwwroot/dist/0.build.js
+++ b/Step/wwwroot/dist/0.build.js
@@ -1,40 +1,42 @@
webpackJsonp([0],{
-/***/ 438:
+/***/ 442:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue__ = __webpack_require__(445);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fed36922_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_Home_vue__ = __webpack_require__(446);\nvar disposed = false\nfunction injectStyle (ssrContext) {\n if (disposed) return\n __webpack_require__(443)\n}\nvar normalizeComponent = __webpack_require__(12)\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-fed36922\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fed36922_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_Home_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\components\\\\Home.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) { return key !== \"default\" && key.substr(0, 2) !== \"__\"})) { console.error(\"named exports are not supported in *.vue files.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-fed36922\", Component.options)\n } else {\n hotAPI.reload(\"data-v-fed36922\", Component.options)\n' + ' }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDM4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/YWIwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuZnVuY3Rpb24gaW5qZWN0U3R5bGUgKHNzckNvbnRleHQpIHtcbiAgaWYgKGRpc3Bvc2VkKSByZXR1cm5cbiAgcmVxdWlyZShcIiEhdnVlLXN0eWxlLWxvYWRlciFjc3MtbG9hZGVyP3NvdXJjZU1hcCEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc3R5bGUtY29tcGlsZXIvaW5kZXg/e1xcXCJ2dWVcXFwiOnRydWUsXFxcImlkXFxcIjpcXFwiZGF0YS12LWZlZDM2OTIyXFxcIixcXFwic2NvcGVkXFxcIjp0cnVlLFxcXCJoYXNJbmxpbmVDb25maWdcXFwiOmZhbHNlfSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zdHlsZXMmaW5kZXg9MCZidXN0Q2FjaGUhLi9Ib21lLnZ1ZVwiKVxufVxudmFyIG5vcm1hbGl6ZUNvbXBvbmVudCA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyXCIpXG4vKiBzY3JpcHQgKi9cbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISFiYWJlbC1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAmYnVzdENhY2hlIS4vSG9tZS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCBfX3Z1ZV90ZW1wbGF0ZV9fIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LWZlZDM2OTIyXFxcIixcXFwiaGFzU2NvcGVkXFxcIjp0cnVlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAmYnVzdENhY2hlIS4vSG9tZS52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IGluamVjdFN0eWxlXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gXCJkYXRhLXYtZmVkMzY5MjJcIlxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjXFxcXGNvbXBvbmVudHNcXFxcSG9tZS52dWVcIlxuaWYgKENvbXBvbmVudC5lc01vZHVsZSAmJiBPYmplY3Qua2V5cyhDb21wb25lbnQuZXNNb2R1bGUpLnNvbWUoZnVuY3Rpb24gKGtleSkgeyAgcmV0dXJuIGtleSAhPT0gXCJkZWZhdWx0XCIgJiYga2V5LnN1YnN0cigwLCAyKSAhPT0gXCJfX1wifSkpIHsgIGNvbnNvbGUuZXJyb3IoXCJuYW1lZCBleHBvcnRzIGFyZSBub3Qgc3VwcG9ydGVkIGluICoudnVlIGZpbGVzLlwiKX1cblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LWZlZDM2OTIyXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtZmVkMzY5MjJcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4nICsgJyAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0Mzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///438\n");
+eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue__ = __webpack_require__(453);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_04c2046b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_App_vue__ = __webpack_require__(457);\nvar disposed = false\nvar normalizeComponent = __webpack_require__(12)\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_04c2046b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_App_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\App.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) { return key !== \"default\" && key.substr(0, 2) !== \"__\"})) { console.error(\"named exports are not supported in *.vue files.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-04c2046b\", Component.options)\n } else {\n hotAPI.reload(\"data-v-04c2046b\", Component.options)\n' + ' }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL0FwcC52dWU/OWUwNCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxudmFyIG5vcm1hbGl6ZUNvbXBvbmVudCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyXCIpXG4vKiBzY3JpcHQgKi9cbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISFiYWJlbC1sb2FkZXIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAmYnVzdENhY2hlIS4vQXBwLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IF9fdnVlX3RlbXBsYXRlX18gZnJvbSBcIiEhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMDRjMjA0NmJcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAmYnVzdENhY2hlIS4vQXBwLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfdGVtcGxhdGVfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyY1xcXFxBcHAudnVlXCJcbmlmIChDb21wb25lbnQuZXNNb2R1bGUgJiYgT2JqZWN0LmtleXMoQ29tcG9uZW50LmVzTW9kdWxlKS5zb21lKGZ1bmN0aW9uIChrZXkpIHsgIHJldHVybiBrZXkgIT09IFwiZGVmYXVsdFwiICYmIGtleS5zdWJzdHIoMCwgMikgIT09IFwiX19cIn0pKSB7ICBjb25zb2xlLmVycm9yKFwibmFtZWQgZXhwb3J0cyBhcmUgbm90IHN1cHBvcnRlZCBpbiAqLnZ1ZSBmaWxlcy5cIil9XG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0wNGMyMDQ2YlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTA0YzIwNDZiXCIsIENvbXBvbmVudC5vcHRpb25zKVxuJyArICcgIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvQXBwLnZ1ZVxuLy8gbW9kdWxlIGlkID0gNDQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///442\n");
/***/ }),
-/***/ 443:
-/***/ (function(module, exports, __webpack_require__) {
-
-eval("// style-loader: Adds some css to the DOM by adding a \\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/YTAzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKHRydWUpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuaDFbZGF0YS12LWZlZDM2OTIyXSxcXG5oMltkYXRhLXYtZmVkMzY5MjJdIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbnVsW2RhdGEtdi1mZWQzNjkyMl0ge1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgcGFkZGluZzogMDtcXG59XFxubGlbZGF0YS12LWZlZDM2OTIyXSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXJnaW46IDAgMTBweDtcXG59XFxuYVtkYXRhLXYtZmVkMzY5MjJdIHtcXG4gIGNvbG9yOiAjNDJiOTgzO1xcbn1cXG5cIiwgXCJcIiwge1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wiQzovV29yay9TQ00vQ01TL1N0ZXAvU3RlcC93d3dyb290L3NyYy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0hvbWUudnVlPzI1YjFkN2U0XCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCI7QUFzQkE7O0VBRUEsb0JBQUE7Q0FDQTtBQUNBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0NBQ0E7QUFDQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtDQUNBO0FBQ0E7RUFDQSxlQUFBO0NBQ0FcIixcImZpbGVcIjpcIkhvbWUudnVlXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIjx0ZW1wbGF0ZT5cXG4gIDxkaXYgY2xhc3M9XFxcImhlbGxvXFxcIj5cXG5cXG4gIDwvZGl2PlxcbjwvdGVtcGxhdGU+XFxuXFxuPHNjcmlwdD5cXG5cXG5cXG5leHBvcnQgZGVmYXVsdCB7XFxuICBuYW1lOiBcXFwiSGVsbG9Xb3JsZFxcXCIsXFxuICBjb21wb25lbnRzOiB7ICB9LFxcbiAgZGF0YSgpIHtcXG4gICAgcmV0dXJuIHtcXG4gICAgICBtc2c6IFxcXCJXZWxjb21lIHRvIFlvdXIgVnVlLmpzIEFwcFxcXCJcXG4gICAgfTtcXG4gIH1cXG59O1xcbjwvc2NyaXB0PlxcblxcbjwhLS0gQWRkIFxcXCJzY29wZWRcXFwiIGF0dHJpYnV0ZSB0byBsaW1pdCBDU1MgdG8gdGhpcyBjb21wb25lbnQgb25seSAtLT5cXG48c3R5bGUgc2NvcGVkPlxcbmgxLFxcbmgyIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbnVsIHtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbmxpIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMCAxMHB4O1xcbn1cXG5hIHtcXG4gIGNvbG9yOiAjNDJiOTgzO1xcbn1cXG48L3N0eWxlPlxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyP3NvdXJjZU1hcCEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zdHlsZS1jb21waWxlcj97XCJ2dWVcIjp0cnVlLFwiaWRcIjpcImRhdGEtdi1mZWQzNjkyMlwiLFwic2NvcGVkXCI6dHJ1ZSxcImhhc0lubGluZUNvbmZpZ1wiOmZhbHNlfSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXN0eWxlcyZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0NDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///444\n");
-
-/***/ }),
-
-/***/ 445:
+/***/ 453:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n//\n//\n//\n//\n//\n\n\nexports.default = {\n name: \"HelloWorld\",\n components: {},\n data: function data() {\n return {\n msg: \"Welcome to Your Vue.js App\"\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL0hvbWUudnVlP2YwZmMiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVsbG9cIj5cblxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiBcIkhlbGxvV29ybGRcIixcbiAgY29tcG9uZW50czogeyAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbXNnOiBcIldlbGNvbWUgdG8gWW91ciBWdWUuanMgQXBwXCJcbiAgICB9O1xuICB9XG59O1xuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmgxLFxuaDIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5saSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG5hIHtcbiAgY29sb3I6ICM0MmI5ODM7XG59XG48L3N0eWxlPlxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIEhvbWUudnVlPzI1YjFkN2U0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBOztBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQURBO0FBR0E7QUFQQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///445\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _hub = __webpack_require__(454);\n\nvar _app = __webpack_require__(59);\n\nvar _loginService = __webpack_require__(152);\n\nvar _base = __webpack_require__(48);\n\nvar _baseComponents = __webpack_require__(58);\n\nvar _store = __webpack_require__(36);\n\n__webpack_require__(455);\n\nvar _izitoast = __webpack_require__(456);\n\nvar iziToast = _interopRequireWildcard(_izitoast);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: \"app\",\n components: {\n appHeader: _app.Header,\n appFooter: _app.Footer,\n modalContainer: _baseComponents.ModalContainer,\n alarmList: _app.alarmList\n },\n mounted: function mounted() {\n var _this2 = this;\n\n var ms = _base.Factory.Get(_base.MessageService);\n ms.subscribeToChannel(\"show-modal\", function (args) {\n _this2.applyBlur = true;\n });\n\n ms.subscribeToChannel(\"hide-modal\", function (args) {\n _this2.applyBlur = false;\n });\n\n ms.subscribeToChannel(\"show-loading\", function (args) {\n _this2.loadingOperations++;\n });\n ms.subscribeToChannel(\"hide-loading\", function (args) {\n _this2.loadingOperations--;\n });\n\n var _this = this;\n _base.Factory.Get(_loginService.LoginService).getUserInfo().then(function () {\n if (!_this.isAuthenticated) _this.$nextTick(function () {\n return _baseComponents.ModalHelper.ShowModal(_app.Login);\n });\n });\n\n this.$store.watch(function (s) {\n return s.currentUser;\n }, function (n, o) {\n if (!n) _this2.$nextTick(function () {\n return _baseComponents.ModalHelper.ShowModal(_app.Login);\n });\n });\n\n // SHOW Toasts notifications\n\n this.hub = new _hub.Hub();\n },\n computed: {\n isAuthenticated: function isAuthenticated() {\n return this.$store.state.currentUser != null;\n },\n debugStore: function debugStore() {\n return this.$store.state;\n },\n isMainViewLiftedUp: function isMainViewLiftedUp() {\n return this.$store.state.isMainViewLiftedUp;\n }\n },\n watch: {\n isMainViewLiftedUp: function isMainViewLiftedUp() {\n if (this.state.isMainViewLiftedUp) this.applyViewPosition(-window.innerHeight + 84);else this.applyViewPosition(0);\n },\n loadingOperations: function loadingOperations(n, o) {\n\n if (o == 0 && n > 0) {\n iziToast.show({\n class: \"t-loading\",\n theme: \"dark\",\n message: \"loading ...\",\n icon: \"fa fa-refresh fa-spin fa-2x fa-fw\",\n position: \"bottomLeft\", animateInside: false, timeout: false,\n transitionIn: 'fadeInRight',\n transitionOut: 'fadeOut'\n });\n }\n\n if (n == 0 || n < 0) {\n this.loadingOperations = 0;\n iziToast.hide(document.querySelector('.t-loading'));\n }\n }\n },\n methods: {\n callHub: function callHub() {\n this.hub.Hello();\n },\n toggleMainView: function toggleMainView() {\n _store.appModelActions.MainViewToggle(this.$store);\n },\n movepanel: function movepanel(e) {\n if (e && e.touches && e.touches[0]) {\n this.applyViewPosition(-window.innerHeight + 84 + e.touches[0].screenY, true);\n }\n },\n applyViewPosition: function applyViewPosition(position, removetransition) {\n this.$refs[\"main-view\"].style = this.$refs[\"main-view-handler\"].style = \"transform:translateY(\" + position + \"px);\" + (removetransition ? \"transition:unset;\" : \"\");\n }\n },\n data: function data() {\n return {\n state: this.$store.state,\n applyBlur: false,\n loadingOperations: 0\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL0FwcC52dWU/ZDE0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGlkPVwiYXBwXCIgOmNsYXNzPVwieydibHVyJzphcHBseUJsdXJ9XCI+XG4gICAgICA8YXBwLWhlYWRlcj48L2FwcC1oZWFkZXI+XG4gICAgICA8YWxhcm0tbGlzdD48L2FsYXJtLWxpc3Q+XG4gICAgICA8ZGl2IGlkPVwiYmFjay12aWV3XCI+XG4gICAgICAgIDxyb3V0ZXItdmlldyBuYW1lPVwiYmFja3ZpZXdcIj48L3JvdXRlci12aWV3PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJtYWluLXZpZXdcIiByZWY9XCJtYWluLXZpZXdcIj5cbiAgICAgICAgPHJvdXRlci12aWV3Lz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cIm1haW4tdmlldy1oYW5kbGVyXCIgcmVmPVwibWFpbi12aWV3LWhhbmRsZXJcIiBAY2xpY2s9XCJ0b2dnbGVNYWluVmlldygpXCI+XG4gICAgICAgICAgPHZ1ZS1nZXN0dXJlIDp0eXBlPVwiJ3N3aXBlZG93bidcIiA6Y2FsbD1cInRvZ2dsZU1haW5WaWV3XCIgOm9ubW92ZT1cIm1vdmVwYW5lbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhhbmRsZVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLWRvd25cIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3Z1ZS1nZXN0dXJlPlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLWZvb3Rlcj48L2FwcC1mb290ZXI+XG5cbiAgICAgIDwhLS1cbjpjbGFzcz1cInsndHVybi11cCc6c3RhdGUuaXNNYWluVmlld0xpZnRlZFVwfVwiXG4gICAgICAtLT5cblxuICAgICAgPCEtLSBNb2RhbGkgc2VtcHJlIGRpc3BvbmliaWxpIC0tPlxuICAgICAgPCEtLSA8bG9naW4+PC9sb2dpbj4gLS0+XG4gICAgICA8IS0tIDx1c2VyLWluZm8+PC91c2VyLWluZm8+XG4gICAgICA8bWFjaGluZS1pbmZvPjwvbWFjaGluZS1pbmZvPiAtLT5cblxuICAgIDwvZGl2PlxuICAgIDxtb2RhbC1jb250YWluZXIgbmFtZT1cIm1vZGFsXCIgPjwvbW9kYWwtY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBIdWIgfSBmcm9tIFwiLi9zZXJ2aWNlcy9odWJcIjtcbmltcG9ydCB7IEhlYWRlciwgRm9vdGVyLCBMb2dpbiwgYWxhcm1MaXN0IH0gZnJvbSBcIi4vYXBwLm1vZHVsZXNcIjtcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gXCJzcmMvc2VydmljZXMvbG9naW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBGYWN0b3J5LCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuL19iYXNlXCI7XG5pbXBvcnQgeyBNb2RhbENvbnRhaW5lciwgTW9kYWxIZWxwZXIgfSBmcm9tIFwiLi9tb2R1bGVzL2Jhc2UtY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgYXBwTW9kZWxBY3Rpb25zIH0gZnJvbSBcInNyYy9zdG9yZVwiO1xuaW1wb3J0IFwiLi9hcHAuYnVzaW5lc3MtbG9naWNcIjtcbmltcG9ydCAqIGFzIGl6aVRvYXN0IGZyb20gXCJpeml0b2FzdFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6IFwiYXBwXCIsXG4gIGNvbXBvbmVudHM6IHtcbiAgICBhcHBIZWFkZXI6IEhlYWRlcixcbiAgICBhcHBGb290ZXI6IEZvb3RlcixcbiAgICBtb2RhbENvbnRhaW5lcjogTW9kYWxDb250YWluZXIsXG4gICAgYWxhcm1MaXN0XG4gIH0sXG4gIG1vdW50ZWQ6IGZ1bmN0aW9uKCkge1xuICAgIGxldCBtcyA9IEZhY3RvcnkuR2V0KE1lc3NhZ2VTZXJ2aWNlKTtcbiAgICBtcy5zdWJzY3JpYmVUb0NoYW5uZWwoXCJzaG93LW1vZGFsXCIsIGFyZ3MgPT4ge1xuICAgICAgdGhpcy5hcHBseUJsdXIgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgbXMuc3Vic2NyaWJlVG9DaGFubmVsKFwiaGlkZS1tb2RhbFwiLCBhcmdzID0+IHtcbiAgICAgIHRoaXMuYXBwbHlCbHVyID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICBtcy5zdWJzY3JpYmVUb0NoYW5uZWwoXCJzaG93LWxvYWRpbmdcIiwgYXJncyA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmdPcGVyYXRpb25zKys7XG4gICAgfSk7XG4gICAgbXMuc3Vic2NyaWJlVG9DaGFubmVsKFwiaGlkZS1sb2FkaW5nXCIsIGFyZ3MgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nT3BlcmF0aW9ucy0tO1xuICAgIH0pO1xuXG4gICAgbGV0IF90aGlzID0gdGhpcztcbiAgICBGYWN0b3J5LkdldChMb2dpblNlcnZpY2UpXG4gICAgICAuZ2V0VXNlckluZm8oKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBpZiAoIV90aGlzLmlzQXV0aGVudGljYXRlZClcbiAgICAgICAgICBfdGhpcy4kbmV4dFRpY2soKCkgPT4gTW9kYWxIZWxwZXIuU2hvd01vZGFsKExvZ2luKSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuJHN0b3JlLndhdGNoKFxuICAgICAgcyA9PiBzLmN1cnJlbnRVc2VyLFxuICAgICAgKG4sIG8pID0+IHtcbiAgICAgICAgaWYgKCFuKSB0aGlzLiRuZXh0VGljaygoKSA9PiBNb2RhbEhlbHBlci5TaG93TW9kYWwoTG9naW4pKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gU0hPVyBUb2FzdHMgbm90aWZpY2F0aW9uc1xuXG4gICAgdGhpcy5odWIgPSBuZXcgSHViKCk7XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgaXNBdXRoZW50aWNhdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS5jdXJyZW50VXNlciAhPSBudWxsO1xuICAgIH0sXG4gICAgZGVidWdTdG9yZTogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy4kc3RvcmUuc3RhdGU7XG4gICAgfSxcbiAgICBpc01haW5WaWV3TGlmdGVkVXA6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlLmlzTWFpblZpZXdMaWZ0ZWRVcDtcbiAgICB9XG4gIH0sXG4gIHdhdGNoOiB7XG4gICAgaXNNYWluVmlld0xpZnRlZFVwOiBmdW5jdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLmlzTWFpblZpZXdMaWZ0ZWRVcClcbiAgICAgICAgdGhpcy5hcHBseVZpZXdQb3NpdGlvbigtd2luZG93LmlubmVySGVpZ2h0ICsgODQpO1xuICAgICAgZWxzZSB0aGlzLmFwcGx5Vmlld1Bvc2l0aW9uKDApO1xuICAgIH0sXG4gICAgbG9hZGluZ09wZXJhdGlvbnM6IGZ1bmN0aW9uKG4sIG8pIHtcblxuICAgICAgaWYobyA9PSAwICYmIG4gPjApe1xuICAgICAgICBpemlUb2FzdC5zaG93KHtcbiAgICAgICAgICBjbGFzczogXCJ0LWxvYWRpbmdcIixcbiAgICAgICAgICB0aGVtZTpcImRhcmtcIixcbiAgICAgICAgICBtZXNzYWdlOiBcImxvYWRpbmcgLi4uXCIsXG4gICAgICAgICAgaWNvbjogXCJmYSBmYS1yZWZyZXNoIGZhLXNwaW4gZmEtMnggZmEtZndcIixcbiAgICAgICAgICBwb3NpdGlvbjogXCJib3R0b21MZWZ0XCIsIGFuaW1hdGVJbnNpZGU6IGZhbHNlLCB0aW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICB0cmFuc2l0aW9uSW46ICdmYWRlSW5SaWdodCcsXG4gICAgICAgICAgdHJhbnNpdGlvbk91dDogJ2ZhZGVPdXQnLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZihuID09IDAgfHwgbjwwKXtcbiAgICAgICAgdGhpcy5sb2FkaW5nT3BlcmF0aW9ucyA9IDA7XG4gICAgICAgIGl6aVRvYXN0LmhpZGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnQtbG9hZGluZycpKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGNhbGxIdWI6IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5odWIuSGVsbG8oKTtcbiAgICB9LFxuICAgIHRvZ2dsZU1haW5WaWV3KCkge1xuICAgICAgYXBwTW9kZWxBY3Rpb25zLk1haW5WaWV3VG9nZ2xlKHRoaXMuJHN0b3JlKTtcbiAgICB9LFxuICAgIG1vdmVwYW5lbChlKSB7XG4gICAgICBpZiAoZSAmJiBlLnRvdWNoZXMgJiYgZS50b3VjaGVzWzBdKSB7XG4gICAgICAgIHRoaXMuYXBwbHlWaWV3UG9zaXRpb24oXG4gICAgICAgICAgLXdpbmRvdy5pbm5lckhlaWdodCArIDg0ICsgZS50b3VjaGVzWzBdLnNjcmVlblksXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgYXBwbHlWaWV3UG9zaXRpb24ocG9zaXRpb24sIHJlbW92ZXRyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuJHJlZnNbXCJtYWluLXZpZXdcIl0uc3R5bGUgPSB0aGlzLiRyZWZzW1wibWFpbi12aWV3LWhhbmRsZXJcIl0uc3R5bGUgPVxuICAgICAgICBcInRyYW5zZm9ybTp0cmFuc2xhdGVZKFwiICtcbiAgICAgICAgcG9zaXRpb24gK1xuICAgICAgICBcInB4KTtcIiArXG4gICAgICAgIChyZW1vdmV0cmFuc2l0aW9uID8gXCJ0cmFuc2l0aW9uOnVuc2V0O1wiIDogXCJcIik7XG4gICAgfVxuICB9LFxuICBkYXRhOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGU6IHRoaXMuJHN0b3JlLnN0YXRlLFxuICAgICAgYXBwbHlCbHVyOiBmYWxzZSxcbiAgICAgIGxvYWRpbmdPcGVyYXRpb25zOiAwXG4gICAgfTtcbiAgfVxufTtcbjwvc2NyaXB0PlxuXG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBBcHAudnVlP2MxZmJkMTVhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFvQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFKQTs7QUFNQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBOztBQUNBOztBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTs7QUFZQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBekJBOztBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBckJBO0FBdUJBOztBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUEvR0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///453\n");
/***/ }),
-/***/ 446:
+/***/ 454:
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Hub = /** @class */function () {\n function Hub() {\n this._hub = $.connection.dataHub;\n // Registro le callback;\n this._hub.client.hello = function (r) {\n console.log(r);\n };\n $.connection.hub.start();\n }\n Hub.prototype.Hello = function () {\n this._hub.server.hello();\n };\n return Hub;\n}();\nexports.Hub = Hub;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL2h1Yi50cz9jOGIwIl0sInNvdXJjZXNDb250ZW50IjpbIlxuXG5kZWNsYXJlIGxldCAkOiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBIdWIge1xuXG4gIHByaXZhdGUgX2h1YjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgdGhpcy5faHViID0gJC5jb25uZWN0aW9uLmRhdGFIdWI7XG5cbiAgICAvLyBSZWdpc3RybyBsZSBjYWxsYmFjaztcblxuICAgIHRoaXMuX2h1Yi5jbGllbnQuaGVsbG8gPSAocikgPT4geyBjb25zb2xlLmxvZyhyKTsgfTtcbiAgICAkLmNvbm5lY3Rpb24uaHViLnN0YXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgSGVsbG8gKCl7XG4gICAgdGhpcy5faHViLnNlcnZlci5oZWxsbygpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2VydmljZXMvaHViLnRzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUlBO0FBSUE7QUFFQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBakJBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///454\n");
+
+/***/ }),
+
+/***/ 455:
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _base = __webpack_require__(48);\n\nvar _baseComponents = __webpack_require__(58);\n\nvar _app = __webpack_require__(59);\n\nvar messageService = _base.Factory.Get(_base.MessageService);\nmessageService.subscribeToChannel(\"show-user-info\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.UserInfoDialog);\n});\nmessageService.subscribeToChannel(\"show-machine-info\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.MachineInfoDialog);\n});\nmessageService.subscribeToChannel(\"show-axes-calibration\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.AxesCalibration);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2FwcC5idXNpbmVzcy1sb2dpYy50cz8yYjZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlLCBGYWN0b3J5IH0gZnJvbSBcIi4vX2Jhc2VcIjtcbmltcG9ydCB7IE1vZGFsSGVscGVyIH0gZnJvbSBcIi4vbW9kdWxlcy9iYXNlLWNvbXBvbmVudHNcIjtcblxuaW1wb3J0IHsgVXNlckluZm9EaWFsb2csIE1hY2hpbmVJbmZvRGlhbG9nLCBBeGVzQ2FsaWJyYXRpb24gfSBmcm9tIFwiLi9hcHAubW9kdWxlc1wiO1xuXG5jb25zdCBtZXNzYWdlU2VydmljZSA9IEZhY3RvcnkuR2V0KE1lc3NhZ2VTZXJ2aWNlKTtcblxubWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlVG9DaGFubmVsKFwic2hvdy11c2VyLWluZm9cIiwgKCkgPT4geyBNb2RhbEhlbHBlci5TaG93TW9kYWwoVXNlckluZm9EaWFsb2cpOyB9KTtcbm1lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZVRvQ2hhbm5lbChcInNob3ctbWFjaGluZS1pbmZvXCIsICgpID0+IHsgTW9kYWxIZWxwZXIuU2hvd01vZGFsKE1hY2hpbmVJbmZvRGlhbG9nKTsgfSk7XG5tZXNzYWdlU2VydmljZS5zdWJzY3JpYmVUb0NoYW5uZWwoXCJzaG93LWF4ZXMtY2FsaWJyYXRpb25cIiwgKCkgPT57IE1vZGFsSGVscGVyLlNob3dNb2RhbChBeGVzQ2FsaWJyYXRpb24pO30pXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwLmJ1c2luZXNzLWxvZ2ljLnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///455\n");
+
+/***/ }),
+
+/***/ 457:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"hello\" })\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-fed36922\", esExports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/MTY2NCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiaGVsbG9cIiB9KVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbnZhciBlc0V4cG9ydHMgPSB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9XG5leHBvcnQgZGVmYXVsdCBlc0V4cG9ydHNcbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtZmVkMzY5MjJcIiwgZXNFeHBvcnRzKVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1mZWQzNjkyMlwiLFwiaGFzU2NvcGVkXCI6dHJ1ZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0NDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///446\n");
+eval("var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"div\",\n { class: { blur: _vm.applyBlur }, attrs: { id: \"app\" } },\n [\n _c(\"app-header\"),\n _vm._v(\" \"),\n _c(\"alarm-list\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n { attrs: { id: \"back-view\" } },\n [_c(\"router-view\", { attrs: { name: \"backview\" } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { ref: \"main-view\", attrs: { id: \"main-view\" } },\n [_c(\"router-view\")],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n ref: \"main-view-handler\",\n attrs: { id: \"main-view-handler\" },\n on: {\n click: function($event) {\n _vm.toggleMainView()\n }\n }\n },\n [\n _c(\n \"vue-gesture\",\n {\n attrs: {\n type: \"swipedown\",\n call: _vm.toggleMainView,\n onmove: _vm.movepanel\n }\n },\n [\n _c(\"div\", { staticClass: \"handle\" }, [\n _c(\"i\", { staticClass: \"fa fa-angle-double-down\" })\n ])\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"app-footer\")\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"modal-container\", { attrs: { name: \"modal\" } })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-04c2046b\", esExports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL0FwcC52dWU/N2RjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJjb250YWluZXJcIiB9LFxuICAgIFtcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzOiB7IGJsdXI6IF92bS5hcHBseUJsdXIgfSwgYXR0cnM6IHsgaWQ6IFwiYXBwXCIgfSB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJhcHAtaGVhZGVyXCIpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJhbGFybS1saXN0XCIpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBhdHRyczogeyBpZDogXCJiYWNrLXZpZXdcIiB9IH0sXG4gICAgICAgICAgICBbX2MoXCJyb3V0ZXItdmlld1wiLCB7IGF0dHJzOiB7IG5hbWU6IFwiYmFja3ZpZXdcIiB9IH0pXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyByZWY6IFwibWFpbi12aWV3XCIsIGF0dHJzOiB7IGlkOiBcIm1haW4tdmlld1wiIH0gfSxcbiAgICAgICAgICAgIFtfYyhcInJvdXRlci12aWV3XCIpXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZWY6IFwibWFpbi12aWV3LWhhbmRsZXJcIixcbiAgICAgICAgICAgICAgYXR0cnM6IHsgaWQ6IFwibWFpbi12aWV3LWhhbmRsZXJcIiB9LFxuICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIF92bS50b2dnbGVNYWluVmlldygpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcInZ1ZS1nZXN0dXJlXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2lwZWRvd25cIixcbiAgICAgICAgICAgICAgICAgICAgY2FsbDogX3ZtLnRvZ2dsZU1haW5WaWV3LFxuICAgICAgICAgICAgICAgICAgICBvbm1vdmU6IF92bS5tb3ZlcGFuZWxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiaGFuZGxlXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImlcIiwgeyBzdGF0aWNDbGFzczogXCJmYSBmYS1hbmdsZS1kb3VibGUtZG93blwiIH0pXG4gICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJhcHAtZm9vdGVyXCIpXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJtb2RhbC1jb250YWluZXJcIiwgeyBhdHRyczogeyBuYW1lOiBcIm1vZGFsXCIgfSB9KVxuICAgIF0sXG4gICAgMVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxudmFyIGVzRXhwb3J0cyA9IHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH1cbmV4cG9ydCBkZWZhdWx0IGVzRXhwb3J0c1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0wNGMyMDQ2YlwiLCBlc0V4cG9ydHMpXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTA0YzIwNDZiXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9BcHAudnVlXG4vLyBtb2R1bGUgaWQgPSA0NTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///457\n");
/***/ })
diff --git a/Step/wwwroot/dist/1.build.js b/Step/wwwroot/dist/1.build.js
index fc9effa2..6c84a9e1 100644
--- a/Step/wwwroot/dist/1.build.js
+++ b/Step/wwwroot/dist/1.build.js
@@ -1,49 +1,40 @@
webpackJsonp([1],{
-/***/ 442:
+/***/ 438:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue__ = __webpack_require__(453);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_04c2046b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_App_vue__ = __webpack_require__(456);\nvar disposed = false\nvar normalizeComponent = __webpack_require__(12)\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_App_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_04c2046b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_App_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\App.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) { return key !== \"default\" && key.substr(0, 2) !== \"__\"})) { console.error(\"named exports are not supported in *.vue files.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-04c2046b\", Component.options)\n } else {\n hotAPI.reload(\"data-v-04c2046b\", Component.options)\n' + ' }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL0FwcC52dWU/OWUwNCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxudmFyIG5vcm1hbGl6ZUNvbXBvbmVudCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyXCIpXG4vKiBzY3JpcHQgKi9cbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISFiYWJlbC1sb2FkZXIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAmYnVzdENhY2hlIS4vQXBwLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IF9fdnVlX3RlbXBsYXRlX18gZnJvbSBcIiEhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtMDRjMjA0NmJcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAmYnVzdENhY2hlIS4vQXBwLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSBmdW5jdGlvbmFsICovXG52YXIgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fID0gZmFsc2Vcbi8qIHN0eWxlcyAqL1xudmFyIF9fdnVlX3N0eWxlc19fID0gbnVsbFxuLyogc2NvcGVJZCAqL1xudmFyIF9fdnVlX3Njb3BlSWRfXyA9IG51bGxcbi8qIG1vZHVsZUlkZW50aWZpZXIgKHNlcnZlciBvbmx5KSAqL1xudmFyIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX18gPSBudWxsXG52YXIgQ29tcG9uZW50ID0gbm9ybWFsaXplQ29tcG9uZW50KFxuICBfX3Z1ZV9zY3JpcHRfXyxcbiAgX192dWVfdGVtcGxhdGVfXyxcbiAgX192dWVfdGVtcGxhdGVfZnVuY3Rpb25hbF9fLFxuICBfX3Z1ZV9zdHlsZXNfXyxcbiAgX192dWVfc2NvcGVJZF9fLFxuICBfX3Z1ZV9tb2R1bGVfaWRlbnRpZmllcl9fXG4pXG5Db21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyY1xcXFxBcHAudnVlXCJcbmlmIChDb21wb25lbnQuZXNNb2R1bGUgJiYgT2JqZWN0LmtleXMoQ29tcG9uZW50LmVzTW9kdWxlKS5zb21lKGZ1bmN0aW9uIChrZXkpIHsgIHJldHVybiBrZXkgIT09IFwiZGVmYXVsdFwiICYmIGtleS5zdWJzdHIoMCwgMikgIT09IFwiX19cIn0pKSB7ICBjb25zb2xlLmVycm9yKFwibmFtZWQgZXhwb3J0cyBhcmUgbm90IHN1cHBvcnRlZCBpbiAqLnZ1ZSBmaWxlcy5cIil9XG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi0wNGMyMDQ2YlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LTA0YzIwNDZiXCIsIENvbXBvbmVudC5vcHRpb25zKVxuJyArICcgIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvQXBwLnZ1ZVxuLy8gbW9kdWxlIGlkID0gNDQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///442\n");
+eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue__ = __webpack_require__(445);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fed36922_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_Home_vue__ = __webpack_require__(446);\nvar disposed = false\nfunction injectStyle (ssrContext) {\n if (disposed) return\n __webpack_require__(443)\n}\nvar normalizeComponent = __webpack_require__(12)\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-fed36922\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_Home_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_fed36922_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_Home_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\components\\\\Home.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) { return key !== \"default\" && key.substr(0, 2) !== \"__\"})) { console.error(\"named exports are not supported in *.vue files.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-fed36922\", Component.options)\n } else {\n hotAPI.reload(\"data-v-fed36922\", Component.options)\n' + ' }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDM4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/YWIwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGlzcG9zZWQgPSBmYWxzZVxuZnVuY3Rpb24gaW5qZWN0U3R5bGUgKHNzckNvbnRleHQpIHtcbiAgaWYgKGRpc3Bvc2VkKSByZXR1cm5cbiAgcmVxdWlyZShcIiEhdnVlLXN0eWxlLWxvYWRlciFjc3MtbG9hZGVyP3NvdXJjZU1hcCEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc3R5bGUtY29tcGlsZXIvaW5kZXg/e1xcXCJ2dWVcXFwiOnRydWUsXFxcImlkXFxcIjpcXFwiZGF0YS12LWZlZDM2OTIyXFxcIixcXFwic2NvcGVkXFxcIjp0cnVlLFxcXCJoYXNJbmxpbmVDb25maWdcXFwiOmZhbHNlfSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zdHlsZXMmaW5kZXg9MCZidXN0Q2FjaGUhLi9Ib21lLnZ1ZVwiKVxufVxudmFyIG5vcm1hbGl6ZUNvbXBvbmVudCA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyXCIpXG4vKiBzY3JpcHQgKi9cbmltcG9ydCBfX3Z1ZV9zY3JpcHRfXyBmcm9tIFwiISFiYWJlbC1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yP3R5cGU9c2NyaXB0JmluZGV4PTAmYnVzdENhY2hlIS4vSG9tZS52dWVcIlxuLyogdGVtcGxhdGUgKi9cbmltcG9ydCBfX3Z1ZV90ZW1wbGF0ZV9fIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlci9pbmRleD97XFxcImlkXFxcIjpcXFwiZGF0YS12LWZlZDM2OTIyXFxcIixcXFwiaGFzU2NvcGVkXFxcIjp0cnVlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAmYnVzdENhY2hlIS4vSG9tZS52dWVcIlxuLyogdGVtcGxhdGUgZnVuY3Rpb25hbCAqL1xudmFyIF9fdnVlX3RlbXBsYXRlX2Z1bmN0aW9uYWxfXyA9IGZhbHNlXG4vKiBzdHlsZXMgKi9cbnZhciBfX3Z1ZV9zdHlsZXNfXyA9IGluamVjdFN0eWxlXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gXCJkYXRhLXYtZmVkMzY5MjJcIlxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjXFxcXGNvbXBvbmVudHNcXFxcSG9tZS52dWVcIlxuaWYgKENvbXBvbmVudC5lc01vZHVsZSAmJiBPYmplY3Qua2V5cyhDb21wb25lbnQuZXNNb2R1bGUpLnNvbWUoZnVuY3Rpb24gKGtleSkgeyAgcmV0dXJuIGtleSAhPT0gXCJkZWZhdWx0XCIgJiYga2V5LnN1YnN0cigwLCAyKSAhPT0gXCJfX1wifSkpIHsgIGNvbnNvbGUuZXJyb3IoXCJuYW1lZCBleHBvcnRzIGFyZSBub3Qgc3VwcG9ydGVkIGluICoudnVlIGZpbGVzLlwiKX1cblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHsoZnVuY3Rpb24gKCkge1xuICB2YXIgaG90QVBJID0gcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKVxuICBob3RBUEkuaW5zdGFsbChyZXF1aXJlKFwidnVlXCIpLCBmYWxzZSlcbiAgaWYgKCFob3RBUEkuY29tcGF0aWJsZSkgcmV0dXJuXG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKCFtb2R1bGUuaG90LmRhdGEpIHtcbiAgICBob3RBUEkuY3JlYXRlUmVjb3JkKFwiZGF0YS12LWZlZDM2OTIyXCIsIENvbXBvbmVudC5vcHRpb25zKVxuICB9IGVsc2Uge1xuICAgIGhvdEFQSS5yZWxvYWQoXCJkYXRhLXYtZmVkMzY5MjJcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4nICsgJyAgfVxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkaXNwb3NlZCA9IHRydWVcbiAgfSlcbn0pKCl9XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudC5leHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0Mzhcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///438\n");
/***/ }),
-/***/ 453:
+/***/ 443:
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("// style-loader: Adds some css to the DOM by adding a \\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/YTAzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKHRydWUpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuaDFbZGF0YS12LWZlZDM2OTIyXSxcXG5oMltkYXRhLXYtZmVkMzY5MjJdIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbnVsW2RhdGEtdi1mZWQzNjkyMl0ge1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgcGFkZGluZzogMDtcXG59XFxubGlbZGF0YS12LWZlZDM2OTIyXSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXJnaW46IDAgMTBweDtcXG59XFxuYVtkYXRhLXYtZmVkMzY5MjJdIHtcXG4gIGNvbG9yOiAjNDJiOTgzO1xcbn1cXG5cIiwgXCJcIiwge1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wiQzovV29yay9TQ00vQ01TL1N0ZXAvU3RlcC93d3dyb290L3NyYy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0hvbWUudnVlPzI1YjFkN2U0XCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCI7QUFzQkE7O0VBRUEsb0JBQUE7Q0FDQTtBQUNBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0NBQ0E7QUFDQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtDQUNBO0FBQ0E7RUFDQSxlQUFBO0NBQ0FcIixcImZpbGVcIjpcIkhvbWUudnVlXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIjx0ZW1wbGF0ZT5cXG4gIDxkaXYgY2xhc3M9XFxcImhlbGxvXFxcIj5cXG5cXG4gIDwvZGl2PlxcbjwvdGVtcGxhdGU+XFxuXFxuPHNjcmlwdD5cXG5cXG5cXG5leHBvcnQgZGVmYXVsdCB7XFxuICBuYW1lOiBcXFwiSGVsbG9Xb3JsZFxcXCIsXFxuICBjb21wb25lbnRzOiB7ICB9LFxcbiAgZGF0YSgpIHtcXG4gICAgcmV0dXJuIHtcXG4gICAgICBtc2c6IFxcXCJXZWxjb21lIHRvIFlvdXIgVnVlLmpzIEFwcFxcXCJcXG4gICAgfTtcXG4gIH1cXG59O1xcbjwvc2NyaXB0PlxcblxcbjwhLS0gQWRkIFxcXCJzY29wZWRcXFwiIGF0dHJpYnV0ZSB0byBsaW1pdCBDU1MgdG8gdGhpcyBjb21wb25lbnQgb25seSAtLT5cXG48c3R5bGUgc2NvcGVkPlxcbmgxLFxcbmgyIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbnVsIHtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbmxpIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMCAxMHB4O1xcbn1cXG5hIHtcXG4gIGNvbG9yOiAjNDJiOTgzO1xcbn1cXG48L3N0eWxlPlxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyP3NvdXJjZU1hcCEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zdHlsZS1jb21waWxlcj97XCJ2dWVcIjp0cnVlLFwiaWRcIjpcImRhdGEtdi1mZWQzNjkyMlwiLFwic2NvcGVkXCI6dHJ1ZSxcImhhc0lubGluZUNvbmZpZ1wiOmZhbHNlfSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXN0eWxlcyZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0NDRcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///444\n");
+
+/***/ }),
+
+/***/ 445:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _hub = __webpack_require__(454);\n\nvar _app = __webpack_require__(59);\n\nvar _loginService = __webpack_require__(152);\n\nvar _base = __webpack_require__(48);\n\nvar _baseComponents = __webpack_require__(58);\n\nvar _store = __webpack_require__(36);\n\n__webpack_require__(455);\n\nvar _izitoast = __webpack_require__(457);\n\nvar iziToast = _interopRequireWildcard(_izitoast);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: \"app\",\n components: {\n appHeader: _app.Header,\n appFooter: _app.Footer,\n modalContainer: _baseComponents.ModalContainer,\n alarmList: _app.alarmList\n },\n mounted: function mounted() {\n var _this2 = this;\n\n _base.Factory.Get(_base.MessageService).subscribeToChannel(\"show-modal\", function (args) {\n _this2.applyBlur = true;\n });\n\n _base.Factory.Get(_base.MessageService).subscribeToChannel(\"hide-modal\", function (args) {\n _this2.applyBlur = false;\n });\n\n var _this = this;\n _base.Factory.Get(_loginService.LoginService).getUserInfo().then(function () {\n if (!_this.isAuthenticated) _this.$nextTick(function () {\n return _baseComponents.ModalHelper.ShowModal(_app.Login);\n });\n });\n\n this.$store.watch(function (s) {\n return s.currentUser;\n }, function (n, o) {\n if (!n) _this2.$nextTick(function () {\n return _baseComponents.ModalHelper.ShowModal(_app.Login);\n });\n });\n\n // SHOW Toasts notifications\n\n iziToast.show({\n theme: 'dark',\n title: \"Welcome to Step!\",\n message: \"This is for main app notification when fallback is closed\",\n timeout: false\n });\n\n iziToast.show({\n title: \"Welcome to Step!\",\n message: \"This is for main app notification when fallback is open\",\n timeout: false\n });\n\n iziToast.show({\n theme: 'dark',\n title: \"Hey\",\n message: \"Autoclosing.... wait 10 sec. \",\n timeout: 10000\n });\n\n iziToast.error({\n theme: 'dark',\n title: \"ERROR\",\n message: \"TEST ERROR\",\n timeout: false\n });\n\n iziToast.warning({\n theme: 'dark',\n title: \"Warning\",\n message: \"TEST warning\",\n timeout: false\n });\n this.hub = new _hub.Hub();\n },\n computed: {\n isAuthenticated: function isAuthenticated() {\n return this.$store.state.currentUser != null;\n },\n debugStore: function debugStore() {\n return this.$store.state;\n },\n isMainViewLiftedUp: function isMainViewLiftedUp() {\n return this.$store.state.isMainViewLiftedUp;\n }\n },\n watch: {\n isMainViewLiftedUp: function isMainViewLiftedUp() {\n if (this.state.isMainViewLiftedUp) this.applyViewPosition(-window.innerHeight + 84);else this.applyViewPosition(0);\n }\n },\n methods: {\n callHub: function callHub() {\n this.hub.Hello();\n },\n toggleMainView: function toggleMainView() {\n _store.appModelActions.MainViewToggle(this.$store);\n },\n movepanel: function movepanel(e) {\n if (e && e.touches && e.touches[0]) {\n this.applyViewPosition(-window.innerHeight + 84 + e.touches[0].screenY, true);\n }\n },\n applyViewPosition: function applyViewPosition(position, removetransition) {\n this.$refs[\"main-view\"].style = this.$refs[\"main-view-handler\"].style = \"transform:translateY(\" + position + \"px);\" + (removetransition ? \"transition:unset;\" : \"\");\n }\n },\n data: function data() {\n return {\n state: this.$store.state,\n applyBlur: false\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL0FwcC52dWU/ZTMyMSJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8ZGl2IGlkPVwiYXBwXCIgOmNsYXNzPVwieydibHVyJzphcHBseUJsdXJ9XCI+XG4gICAgICA8YXBwLWhlYWRlcj48L2FwcC1oZWFkZXI+XG4gICAgICA8YWxhcm0tbGlzdD48L2FsYXJtLWxpc3Q+XG4gICAgICA8ZGl2IGlkPVwiYmFjay12aWV3XCI+XG4gICAgICAgIDxyb3V0ZXItdmlldyBuYW1lPVwiYmFja3ZpZXdcIj48L3JvdXRlci12aWV3PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgaWQ9XCJtYWluLXZpZXdcIiByZWY9XCJtYWluLXZpZXdcIj5cbiAgICAgICAgPHJvdXRlci12aWV3Lz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cIm1haW4tdmlldy1oYW5kbGVyXCIgcmVmPVwibWFpbi12aWV3LWhhbmRsZXJcIiBAY2xpY2s9XCJ0b2dnbGVNYWluVmlldygpXCI+XG4gICAgICAgICAgPHZ1ZS1nZXN0dXJlIDp0eXBlPVwiJ3N3aXBlZG93bidcIiA6Y2FsbD1cInRvZ2dsZU1haW5WaWV3XCIgOm9ubW92ZT1cIm1vdmVwYW5lbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhhbmRsZVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLWRvd25cIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3Z1ZS1nZXN0dXJlPlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLWZvb3Rlcj48L2FwcC1mb290ZXI+XG5cbiAgICAgIDwhLS1cbjpjbGFzcz1cInsndHVybi11cCc6c3RhdGUuaXNNYWluVmlld0xpZnRlZFVwfVwiXG4gICAgICAtLT5cblxuICAgICAgPCEtLSBNb2RhbGkgc2VtcHJlIGRpc3BvbmliaWxpIC0tPlxuICAgICAgPCEtLSA8bG9naW4+PC9sb2dpbj4gLS0+XG4gICAgICA8IS0tIDx1c2VyLWluZm8+PC91c2VyLWluZm8+XG4gICAgICA8bWFjaGluZS1pbmZvPjwvbWFjaGluZS1pbmZvPiAtLT5cblxuICAgIDwvZGl2PlxuICAgIDxtb2RhbC1jb250YWluZXIgbmFtZT1cIm1vZGFsXCIgPjwvbW9kYWwtY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBIdWIgfSBmcm9tIFwiLi9zZXJ2aWNlcy9odWJcIjtcbmltcG9ydCB7IEhlYWRlciwgRm9vdGVyLCBMb2dpbiwgYWxhcm1MaXN0IH0gZnJvbSBcIi4vYXBwLm1vZHVsZXNcIjtcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gXCJzcmMvc2VydmljZXMvbG9naW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBGYWN0b3J5LCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuL19iYXNlXCI7XG5pbXBvcnQgeyBNb2RhbENvbnRhaW5lciwgTW9kYWxIZWxwZXIgfSBmcm9tIFwiLi9tb2R1bGVzL2Jhc2UtY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgYXBwTW9kZWxBY3Rpb25zIH0gZnJvbSBcInNyYy9zdG9yZVwiO1xuaW1wb3J0IFwiLi9hcHAuYnVzaW5lc3MtbG9naWNcIjtcbmltcG9ydCAqIGFzIGl6aVRvYXN0IGZyb20gXCJpeml0b2FzdFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6IFwiYXBwXCIsXG4gIGNvbXBvbmVudHM6IHtcbiAgICBhcHBIZWFkZXI6IEhlYWRlcixcbiAgICBhcHBGb290ZXI6IEZvb3RlcixcbiAgICBtb2RhbENvbnRhaW5lcjogTW9kYWxDb250YWluZXIsXG4gICAgYWxhcm1MaXN0XG4gIH0sXG4gIG1vdW50ZWQ6IGZ1bmN0aW9uKCkge1xuICAgIEZhY3RvcnkuR2V0KE1lc3NhZ2VTZXJ2aWNlKS5zdWJzY3JpYmVUb0NoYW5uZWwoXCJzaG93LW1vZGFsXCIsIGFyZ3MgPT4ge1xuICAgICAgdGhpcy5hcHBseUJsdXIgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgRmFjdG9yeS5HZXQoTWVzc2FnZVNlcnZpY2UpLnN1YnNjcmliZVRvQ2hhbm5lbChcImhpZGUtbW9kYWxcIiwgYXJncyA9PiB7XG4gICAgICB0aGlzLmFwcGx5Qmx1ciA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgbGV0IF90aGlzID0gdGhpcztcbiAgICBGYWN0b3J5LkdldChMb2dpblNlcnZpY2UpXG4gICAgICAuZ2V0VXNlckluZm8oKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBpZiAoIV90aGlzLmlzQXV0aGVudGljYXRlZClcbiAgICAgICAgICBfdGhpcy4kbmV4dFRpY2soKCkgPT4gTW9kYWxIZWxwZXIuU2hvd01vZGFsKExvZ2luKSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuJHN0b3JlLndhdGNoKFxuICAgICAgcyA9PiBzLmN1cnJlbnRVc2VyLFxuICAgICAgKG4sIG8pID0+IHtcbiAgICAgICAgaWYgKCFuKSB0aGlzLiRuZXh0VGljaygoKSA9PiBNb2RhbEhlbHBlci5TaG93TW9kYWwoTG9naW4pKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgICAvLyBTSE9XIFRvYXN0cyBub3RpZmljYXRpb25zXG5cbiAgICBpemlUb2FzdC5zaG93KHtcbiAgICAgIHRoZW1lOidkYXJrJyxcbiAgICAgIHRpdGxlOiBcIldlbGNvbWUgdG8gU3RlcCFcIixcbiAgICAgIG1lc3NhZ2U6IFwiVGhpcyBpcyBmb3IgbWFpbiBhcHAgbm90aWZpY2F0aW9uIHdoZW4gZmFsbGJhY2sgaXMgY2xvc2VkXCIsXG4gICAgICB0aW1lb3V0OiBmYWxzZVxuICAgIH0pO1xuXG4gICAgaXppVG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogXCJXZWxjb21lIHRvIFN0ZXAhXCIsXG4gICAgIG1lc3NhZ2U6IFwiVGhpcyBpcyBmb3IgbWFpbiBhcHAgbm90aWZpY2F0aW9uIHdoZW4gZmFsbGJhY2sgaXMgb3BlblwiLFxuICAgICAgdGltZW91dDogZmFsc2VcbiAgICB9KTtcblxuICAgIGl6aVRvYXN0LnNob3coe1xuICAgICAgdGhlbWU6J2RhcmsnLFxuICAgICAgdGl0bGU6IFwiSGV5XCIsXG4gICAgICBtZXNzYWdlOiBcIkF1dG9jbG9zaW5nLi4uLiB3YWl0IDEwIHNlYy4gIFwiLFxuICAgICAgdGltZW91dDogMTAwMDBcbiAgICB9KTtcblxuICAgIGl6aVRvYXN0LmVycm9yKHtcbiAgICAgIHRoZW1lOidkYXJrJyxcbiAgICAgIHRpdGxlOiBcIkVSUk9SXCIsXG4gICAgICBtZXNzYWdlOiBcIlRFU1QgRVJST1JcIixcbiAgICAgIHRpbWVvdXQ6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBpemlUb2FzdC53YXJuaW5nKHtcbiAgICAgIHRoZW1lOidkYXJrJyxcbiAgICAgIHRpdGxlOiBcIldhcm5pbmdcIixcbiAgICAgIG1lc3NhZ2U6IFwiVEVTVCB3YXJuaW5nXCIsXG4gICAgICB0aW1lb3V0OiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMuaHViID0gbmV3IEh1YigpO1xuICB9LFxuICBjb21wdXRlZDoge1xuICAgIGlzQXV0aGVudGljYXRlZDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy4kc3RvcmUuc3RhdGUuY3VycmVudFVzZXIgIT0gbnVsbDtcbiAgICB9LFxuICAgIGRlYnVnU3RvcmU6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlO1xuICAgIH0sXG4gICAgaXNNYWluVmlld0xpZnRlZFVwOiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS5pc01haW5WaWV3TGlmdGVkVXA7XG4gICAgfVxuICB9LFxuICB3YXRjaDoge1xuICAgIGlzTWFpblZpZXdMaWZ0ZWRVcDogZnVuY3Rpb24oKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5pc01haW5WaWV3TGlmdGVkVXApXG4gICAgICAgIHRoaXMuYXBwbHlWaWV3UG9zaXRpb24oLXdpbmRvdy5pbm5lckhlaWdodCArIDg0KTtcbiAgICAgIGVsc2UgdGhpcy5hcHBseVZpZXdQb3NpdGlvbigwKTtcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBjYWxsSHViOiBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuaHViLkhlbGxvKCk7XG4gICAgfSxcbiAgICB0b2dnbGVNYWluVmlldygpIHtcbiAgICAgIGFwcE1vZGVsQWN0aW9ucy5NYWluVmlld1RvZ2dsZSh0aGlzLiRzdG9yZSk7XG4gICAgfSxcbiAgICBtb3ZlcGFuZWwoZSkge1xuICAgICAgaWYgKGUgJiYgZS50b3VjaGVzICYmIGUudG91Y2hlc1swXSkge1xuICAgICAgICB0aGlzLmFwcGx5Vmlld1Bvc2l0aW9uKFxuICAgICAgICAgIC13aW5kb3cuaW5uZXJIZWlnaHQgKyA4NCArIGUudG91Y2hlc1swXS5zY3JlZW5ZLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGFwcGx5Vmlld1Bvc2l0aW9uKHBvc2l0aW9uLCByZW1vdmV0cmFuc2l0aW9uKSB7XG4gICAgICB0aGlzLiRyZWZzW1wibWFpbi12aWV3XCJdLnN0eWxlID0gdGhpcy4kcmVmc1tcIm1haW4tdmlldy1oYW5kbGVyXCJdLnN0eWxlID1cbiAgICAgICAgXCJ0cmFuc2Zvcm06dHJhbnNsYXRlWShcIiArXG4gICAgICAgIHBvc2l0aW9uICtcbiAgICAgICAgXCJweCk7XCIgK1xuICAgICAgICAocmVtb3ZldHJhbnNpdGlvbiA/IFwidHJhbnNpdGlvbjp1bnNldDtcIiA6IFwiXCIpO1xuICAgIH1cbiAgfSxcbiAgZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlOiB0aGlzLiRzdG9yZS5zdGF0ZSxcbiAgICAgIGFwcGx5Qmx1cjogZmFsc2VcbiAgICB9O1xuICB9XG59O1xuPC9zY3JpcHQ+XG5cblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIEFwcC52dWU/NTRiMjZiZGIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQW9DQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUpBOztBQU1BO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTs7QUFDQTs7QUFDQTtBQUNBO0FBSUE7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBSEE7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBOztBQVlBO0FBQ0E7QUFHQTtBQUxBOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFyQkE7QUF1QkE7O0FBRUE7QUFDQTtBQUZBO0FBSUE7QUFwSEEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///453\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n//\n//\n//\n//\n//\n\n\nexports.default = {\n name: \"HelloWorld\",\n components: {},\n data: function data() {\n return {\n msg: \"Welcome to Your Vue.js App\"\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL0hvbWUudnVlP2YwZmMiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVsbG9cIj5cblxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiBcIkhlbGxvV29ybGRcIixcbiAgY29tcG9uZW50czogeyAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbXNnOiBcIldlbGNvbWUgdG8gWW91ciBWdWUuanMgQXBwXCJcbiAgICB9O1xuICB9XG59O1xuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmgxLFxuaDIge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5saSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG5hIHtcbiAgY29sb3I6ICM0MmI5ODM7XG59XG48L3N0eWxlPlxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIEhvbWUudnVlPzI1YjFkN2U0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBOztBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQURBO0FBR0E7QUFQQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///445\n");
/***/ }),
-/***/ 454:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Hub = /** @class */function () {\n function Hub() {\n this._hub = $.connection.dataHub;\n // Registro le callback;\n this._hub.client.hello = function (r) {\n console.log(r);\n };\n $.connection.hub.start();\n }\n Hub.prototype.Hello = function () {\n this._hub.server.hello();\n };\n return Hub;\n}();\nexports.Hub = Hub;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3NlcnZpY2VzL2h1Yi50cz9jOGIwIl0sInNvdXJjZXNDb250ZW50IjpbIlxuXG5kZWNsYXJlIGxldCAkOiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBIdWIge1xuXG4gIHByaXZhdGUgX2h1YjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgdGhpcy5faHViID0gJC5jb25uZWN0aW9uLmRhdGFIdWI7XG5cbiAgICAvLyBSZWdpc3RybyBsZSBjYWxsYmFjaztcblxuICAgIHRoaXMuX2h1Yi5jbGllbnQuaGVsbG8gPSAocikgPT4geyBjb25zb2xlLmxvZyhyKTsgfTtcbiAgICAkLmNvbm5lY3Rpb24uaHViLnN0YXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgSGVsbG8gKCl7XG4gICAgdGhpcy5faHViLnNlcnZlci5oZWxsbygpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvc2VydmljZXMvaHViLnRzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUlBO0FBSUE7QUFFQTtBQUVBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBakJBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///454\n");
-
-/***/ }),
-
-/***/ 455:
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval("\n\nvar _base = __webpack_require__(48);\n\nvar _baseComponents = __webpack_require__(58);\n\nvar _app = __webpack_require__(59);\n\nvar messageService = _base.Factory.Get(_base.MessageService);\nmessageService.subscribeToChannel(\"show-user-info\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.UserInfoDialog);\n});\nmessageService.subscribeToChannel(\"show-machine-info\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.MachineInfoDialog);\n});\nmessageService.subscribeToChannel(\"show-axes-calibration\", function () {\n _baseComponents.ModalHelper.ShowModal(_app.AxesCalibration);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2FwcC5idXNpbmVzcy1sb2dpYy50cz8yYjZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlLCBGYWN0b3J5IH0gZnJvbSBcIi4vX2Jhc2VcIjtcbmltcG9ydCB7IE1vZGFsSGVscGVyIH0gZnJvbSBcIi4vbW9kdWxlcy9iYXNlLWNvbXBvbmVudHNcIjtcblxuaW1wb3J0IHsgVXNlckluZm9EaWFsb2csIE1hY2hpbmVJbmZvRGlhbG9nLCBBeGVzQ2FsaWJyYXRpb24gfSBmcm9tIFwiLi9hcHAubW9kdWxlc1wiO1xuXG5jb25zdCBtZXNzYWdlU2VydmljZSA9IEZhY3RvcnkuR2V0KE1lc3NhZ2VTZXJ2aWNlKTtcblxubWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlVG9DaGFubmVsKFwic2hvdy11c2VyLWluZm9cIiwgKCkgPT4geyBNb2RhbEhlbHBlci5TaG93TW9kYWwoVXNlckluZm9EaWFsb2cpOyB9KTtcbm1lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZVRvQ2hhbm5lbChcInNob3ctbWFjaGluZS1pbmZvXCIsICgpID0+IHsgTW9kYWxIZWxwZXIuU2hvd01vZGFsKE1hY2hpbmVJbmZvRGlhbG9nKTsgfSk7XG5tZXNzYWdlU2VydmljZS5zdWJzY3JpYmVUb0NoYW5uZWwoXCJzaG93LWF4ZXMtY2FsaWJyYXRpb25cIiwgKCkgPT57IE1vZGFsSGVscGVyLlNob3dNb2RhbChBeGVzQ2FsaWJyYXRpb24pO30pXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwLmJ1c2luZXNzLWxvZ2ljLnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///455\n");
-
-/***/ }),
-
-/***/ 456:
+/***/ 446:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"container\" },\n [\n _c(\n \"div\",\n { class: { blur: _vm.applyBlur }, attrs: { id: \"app\" } },\n [\n _c(\"app-header\"),\n _vm._v(\" \"),\n _c(\"alarm-list\"),\n _vm._v(\" \"),\n _c(\n \"div\",\n { attrs: { id: \"back-view\" } },\n [_c(\"router-view\", { attrs: { name: \"backview\" } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { ref: \"main-view\", attrs: { id: \"main-view\" } },\n [_c(\"router-view\")],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n ref: \"main-view-handler\",\n attrs: { id: \"main-view-handler\" },\n on: {\n click: function($event) {\n _vm.toggleMainView()\n }\n }\n },\n [\n _c(\n \"vue-gesture\",\n {\n attrs: {\n type: \"swipedown\",\n call: _vm.toggleMainView,\n onmove: _vm.movepanel\n }\n },\n [\n _c(\"div\", { staticClass: \"handle\" }, [\n _c(\"i\", { staticClass: \"fa fa-angle-double-down\" })\n ])\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"app-footer\")\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"modal-container\", { attrs: { name: \"modal\" } })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-04c2046b\", esExports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL0FwcC52dWU/N2RjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJjb250YWluZXJcIiB9LFxuICAgIFtcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzOiB7IGJsdXI6IF92bS5hcHBseUJsdXIgfSwgYXR0cnM6IHsgaWQ6IFwiYXBwXCIgfSB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJhcHAtaGVhZGVyXCIpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJhbGFybS1saXN0XCIpLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBhdHRyczogeyBpZDogXCJiYWNrLXZpZXdcIiB9IH0sXG4gICAgICAgICAgICBbX2MoXCJyb3V0ZXItdmlld1wiLCB7IGF0dHJzOiB7IG5hbWU6IFwiYmFja3ZpZXdcIiB9IH0pXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyByZWY6IFwibWFpbi12aWV3XCIsIGF0dHJzOiB7IGlkOiBcIm1haW4tdmlld1wiIH0gfSxcbiAgICAgICAgICAgIFtfYyhcInJvdXRlci12aWV3XCIpXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZWY6IFwibWFpbi12aWV3LWhhbmRsZXJcIixcbiAgICAgICAgICAgICAgYXR0cnM6IHsgaWQ6IFwibWFpbi12aWV3LWhhbmRsZXJcIiB9LFxuICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIF92bS50b2dnbGVNYWluVmlldygpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcInZ1ZS1nZXN0dXJlXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2lwZWRvd25cIixcbiAgICAgICAgICAgICAgICAgICAgY2FsbDogX3ZtLnRvZ2dsZU1haW5WaWV3LFxuICAgICAgICAgICAgICAgICAgICBvbm1vdmU6IF92bS5tb3ZlcGFuZWxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiaGFuZGxlXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImlcIiwgeyBzdGF0aWNDbGFzczogXCJmYSBmYS1hbmdsZS1kb3VibGUtZG93blwiIH0pXG4gICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJhcHAtZm9vdGVyXCIpXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJtb2RhbC1jb250YWluZXJcIiwgeyBhdHRyczogeyBuYW1lOiBcIm1vZGFsXCIgfSB9KVxuICAgIF0sXG4gICAgMVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxudmFyIGVzRXhwb3J0cyA9IHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH1cbmV4cG9ydCBkZWZhdWx0IGVzRXhwb3J0c1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi0wNGMyMDQ2YlwiLCBlc0V4cG9ydHMpXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LTA0YzIwNDZiXCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9BcHAudnVlXG4vLyBtb2R1bGUgaWQgPSA0NTZcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///456\n");
-
-/***/ }),
-
-/***/ 457:
-/***/ (function(module, exports, __webpack_require__) {
-
-eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n* iziToast | v1.2.0\r\n* http://izitoast.marcelodolce.com\r\n* by Marcelo Dolce.\r\n*/\r\n(function (root, factory) {\r\n\tif(true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory(root)),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t} else if(typeof exports === 'object') {\r\n\t\tmodule.exports = factory(root);\r\n\t} else {\r\n\t\troot.iziToast = factory(root);\r\n\t}\r\n})(typeof global !== 'undefined' ? global : window || this.window || this.global, function (root) {\r\n\r\n\t'use strict';\r\n\r\n\t//\r\n\t// Variables\r\n\t//\r\n\tvar $iziToast = {},\r\n\t\tPLUGIN_NAME = 'iziToast',\r\n\t\tBODY = document.querySelector('body'),\r\n\t\tISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false,\r\n\t\tISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\r\n\t\tISFIREFOX = typeof InstallTrigger !== 'undefined',\r\n\t\tACCEPTSTOUCH = 'ontouchstart' in document.documentElement,\r\n\t\tPOSITIONS = ['bottomRight','bottomLeft','bottomCenter','topRight','topLeft','topCenter','center'],\r\n\t\tTHEMES = {\r\n\t\t\tinfo: {\r\n\t\t\t\tcolor: 'blue',\r\n\t\t\t\ticon: 'ico-info'\r\n\t\t\t},\r\n\t\t\tsuccess: {\r\n\t\t\t\tcolor: 'green',\r\n\t\t\t\ticon: 'ico-success'\r\n\t\t\t},\r\n\t\t\twarning: {\r\n\t\t\t\tcolor: 'orange',\r\n\t\t\t\ticon: 'ico-warning'\r\n\t\t\t},\r\n\t\t\terror: {\r\n\t\t\t\tcolor: 'red',\r\n\t\t\t\ticon: 'ico-error'\r\n\t\t\t},\r\n\t\t\tquestion: {\r\n\t\t\t\tcolor: 'yellow',\r\n\t\t\t\ticon: 'ico-question'\r\n\t\t\t}\r\n\t\t},\r\n\t\tMOBILEWIDTH = 568,\r\n\t\tCONFIG = {};\r\n\r\n\r\n\t// Default settings\r\n\tvar defaults = {\r\n\t\tid: null, \r\n\t\tclass: '',\r\n\t\ttitle: '',\r\n\t\ttitleColor: '',\r\n\t\ttitleSize: '',\r\n\t\ttitleLineHeight: '',\r\n\t\tmessage: '',\r\n\t\tmessageColor: '',\r\n\t\tmessageSize: '',\r\n\t\tmessageLineHeight: '',\r\n\t\tbackgroundColor: '',\r\n\t\ttheme: 'light', // dark\r\n\t\tcolor: '', // blue, red, green, yellow\r\n\t\ticon: '',\r\n\t\ticonText: '',\r\n\t\ticonColor: '',\r\n\t\timage: '',\r\n\t\timageWidth: 50,\r\n\t\tmaxWidth: null,\r\n\t\tzindex: null,\r\n\t\tlayout: 1,\r\n\t\tballoon: false,\r\n\t\tclose: true,\r\n\t\tcloseOnEscape: false,\r\n\t\trtl: false,\r\n\t\tposition: 'bottomRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center\r\n\t\ttarget: '',\r\n\t\ttargetFirst: true,\r\n\t\ttoastOnce: false,\r\n\t\ttimeout: 5000,\r\n\t\tanimateInside: true,\r\n\t\tdrag: true,\r\n\t\tpauseOnHover: true,\r\n\t\tresetOnHover: false,\r\n\t\tprogressBar: true,\r\n\t\tprogressBarColor: '',\r\n\t\tprogressBarEasing: 'linear',\r\n\t\toverlay: false,\r\n\t\toverlayClose: false,\r\n\t\toverlayColor: 'rgba(0, 0, 0, 0.6)',\r\n\t\ttransitionIn: 'fadeInUp', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX\r\n\t\ttransitionOut: 'fadeOut', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX\r\n\t\ttransitionInMobile: 'fadeInUp',\r\n\t\ttransitionOutMobile: 'fadeOutDown',\r\n\t\tbuttons: {},\r\n\t\tonOpening: function () {},\r\n\t\tonOpened: function () {},\r\n\t\tonClosing: function () {},\r\n\t\tonClosed: function () {}\r\n\t};\r\n\r\n\t//\r\n\t// Methods\r\n\t//\r\n\r\n\r\n\t/**\r\n\t * Polyfill for remove() method\r\n\t */\r\n\tif(!('remove' in Element.prototype)) {\r\n\t Element.prototype.remove = function() {\r\n\t if(this.parentNode) {\r\n\t this.parentNode.removeChild(this);\r\n\t }\r\n\t };\r\n\t}\r\n\r\n\t/*\r\n * Polyfill for CustomEvent for IE >= 9\r\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\r\n */\r\n if(typeof window.CustomEvent !== 'function') {\r\n var CustomEventPolyfill = function (event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n };\r\n\r\n CustomEventPolyfill.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEventPolyfill;\r\n } \r\n\r\n\t/**\r\n\t * A simple forEach() implementation for Arrays, Objects and NodeLists\r\n\t * @private\r\n\t * @param {Array|Object|NodeList} collection Collection of items to iterate\r\n\t * @param {Function} callback Callback function for each iteration\r\n\t * @param {Array|Object|NodeList} scope Object/NodeList/Array that forEach is iterating over (aka `this`)\r\n\t */\r\n\tvar forEach = function (collection, callback, scope) {\r\n\t\tif(Object.prototype.toString.call(collection) === '[object Object]') {\r\n\t\t\tfor (var prop in collection) {\r\n\t\t\t\tif(Object.prototype.hasOwnProperty.call(collection, prop)) {\r\n\t\t\t\t\tcallback.call(scope, collection[prop], prop, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif(collection){\r\n\t\t\t\tfor (var i = 0, len = collection.length; i < len; i++) {\r\n\t\t\t\t\tcallback.call(scope, collection[i], i, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Merge defaults with user options\r\n\t * @private\r\n\t * @param {Object} defaults Default settings\r\n\t * @param {Object} options User options\r\n\t * @returns {Object} Merged values of defaults and options\r\n\t */\r\n\tvar extend = function (defaults, options) {\r\n\t\tvar extended = {};\r\n\t\tforEach(defaults, function (value, prop) {\r\n\t\t\textended[prop] = defaults[prop];\r\n\t\t});\r\n\t\tforEach(options, function (value, prop) {\r\n\t\t\textended[prop] = options[prop];\r\n\t\t});\r\n\t\treturn extended;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Create a fragment DOM elements\r\n\t * @private\r\n\t */\r\n\tvar createFragElem = function(htmlStr) {\r\n\t\tvar frag = document.createDocumentFragment(),\r\n\t\t\ttemp = document.createElement('div');\r\n\t\ttemp.innerHTML = htmlStr;\r\n\t\twhile (temp.firstChild) {\r\n\t\t\tfrag.appendChild(temp.firstChild);\r\n\t\t}\r\n\t\treturn frag;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a color\r\n\t * @private\r\n\t */\r\n\tvar isColor = function(color){\r\n\t\tif( color.substring(0,1) == '#' || color.substring(0,3) == 'rgb' || color.substring(0,3) == 'hsl' ){\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a Base64 string\r\n\t * @private\r\n\t */\r\n\tvar isBase64 = function(str) {\r\n\t try {\r\n\t return btoa(atob(str)) == str;\r\n\t } catch (err) {\r\n\t return false;\r\n\t }\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Drag method of toasts\r\n\t * @private\r\n\t */\r\n\tvar drag = function() {\r\n\t \r\n\t return {\r\n\t move: function(toast, instance, settings, xpos) {\r\n\r\n\t \tvar opacity,\r\n\t \t\topacityRange = 0.3,\r\n\t \t\tdistance = 180;\r\n\t \r\n\t if(xpos !== 0){\r\n\t \t\r\n\t \ttoast.classList.add(PLUGIN_NAME+'-dragged');\r\n\r\n\t \ttoast.style.transform = 'translateX('+xpos + 'px)';\r\n\r\n\t\t if(xpos > 0){\r\n\t\t \topacity = (distance-xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutRight', transitionOutMobile: 'fadeOutRight' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t } else {\r\n\t\t \topacity = (distance+xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutLeft', transitionOutMobile: 'fadeOutLeft' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t }\r\n\t\t\t\t\ttoast.style.opacity = opacity;\r\n\t\t\t\r\n\t\t\t\t\tif(opacity < opacityRange){\r\n\r\n\t\t\t\t\t\tif(ISCHROME || ISFIREFOX)\r\n\t\t\t\t\t\t\ttoast.style.left = xpos+'px';\r\n\r\n\t\t\t\t\t\ttoast.parentNode.style.opacity = opacityRange;\r\n\r\n\t\t this.stopMoving(toast, null);\r\n\t\t\t\t\t}\r\n\t }\r\n\r\n\t\t\t\t\r\n\t },\r\n\t startMoving: function(toast, instance, settings, e) {\r\n\r\n\t e = e || window.event;\r\n\t var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),\r\n\t toastLeft = toast.style.transform.replace('px)', '');\r\n\t toastLeft = toastLeft.replace('translateX(', '');\r\n\t var offsetX = posX - toastLeft;\r\n\r\n\t\t\t\ttoast.classList.remove(settings.transitionIn);\r\n\t\t\t\ttoast.classList.remove(settings.transitionInMobile);\r\n\t\t\t\ttoast.style.transition = '';\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.touches[0].clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t } else {\r\n\t document.onmousemove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t }\r\n\r\n\t },\r\n\t stopMoving: function(toast, e) {\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function() {};\r\n\t } else {\r\n\t \tdocument.onmousemove = function() {};\r\n\t }\r\n\r\n\t\t\t\ttoast.style.opacity = '';\r\n\t\t\t\ttoast.style.transform = '';\r\n\r\n\t if(toast.classList.contains(PLUGIN_NAME+'-dragged')){\r\n\t \t\r\n\t \ttoast.classList.remove(PLUGIN_NAME+'-dragged');\r\n\r\n\t\t\t\t\ttoast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\ttoast.style.transition = '';\r\n\t\t\t\t\t}, 400);\r\n\t }\r\n\r\n\t }\r\n\t };\r\n\r\n\t}();\r\n\r\n\r\n\t/**\r\n\t * Destroy the current initialization.\r\n\t * @public\r\n\t */\r\n\t$iziToast.destroy = function () {\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'-wrapper'), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\t// Remove event listeners\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opened', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opening', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closing', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closed', {}, false);\r\n\t\tdocument.removeEventListener('keyup', {}, false);\r\n\r\n\t\t// Reset variables\r\n\t\tCONFIG = {};\r\n\t};\r\n\r\n\t/**\r\n\t * Initialize Plugin\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.settings = function (options) {\r\n\r\n\t\t// Destroy any existing initializations\r\n\t\t$iziToast.destroy();\r\n\r\n\t\tCONFIG = options;\r\n\t\tdefaults = extend(defaults, options || {});\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Building themes functions.\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\tforEach(THEMES, function (theme, name) {\r\n\r\n\t\t$iziToast[name] = function (options) {\r\n\r\n\t\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(theme, settings || {});\r\n\r\n\t\t\tthis.show(settings);\r\n\t\t};\r\n\r\n\t});\r\n\r\n\r\n\t/**\r\n\t * Do the calculation to move the progress bar\r\n\t * @private\r\n\t */\r\n\t $iziToast.progress = function ($toast, options, callback) {\r\n\r\n\t\tvar that = this,\r\n\t\t\tsettings = extend(that.settings, options || {}),\r\n\t\t\t$elem = $toast.querySelector('.'+PLUGIN_NAME+'-progressbar div');\r\n\r\n\t return {\r\n\t start: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.timeout +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\t \tsettings.TIME.START = new Date().getTime();\r\n\t \tsettings.TIME.END = settings.TIME.START + settings.timeout;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}, settings.timeout);\r\n\t\t\t\t\r\n\t },\r\n\t pause: function() {\r\n\r\n\t\t\t\tsettings.TIME.REMAINING = settings.TIME.END - new Date().getTime();\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\tvar computedStyle = window.getComputedStyle($elem),\r\n\t\t\t\t\t\tpropertyWidth = computedStyle.getPropertyValue('width');\r\n\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = propertyWidth;\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t },\r\n\t resume: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.TIME.REMAINING +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\r\n\t \tsettings.TIME.END = new Date().getTime() + settings.TIME.REMAINING;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}, settings.TIME.REMAINING);\r\n\r\n\t },\r\n\t reset: function(){\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = '100%';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t }\r\n\t };\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Close the specific Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.hide = function ($toast, options, closedBy) {\r\n\r\n\t\tvar settings = extend(this.settings, options || {});\r\n\t\t\tclosedBy = closedBy || null;\r\n\r\n\t\tif(typeof $toast != 'object'){\r\n\t\t\t$toast = document.querySelector($toast);\r\n\t\t}\r\n\r\n\t\t$toast.classList.add(PLUGIN_NAME+'-closing');\r\n\r\n\t\tsettings.closedBy = closedBy;\r\n\t\tsettings.REF = $toast.getAttribute('data-iziToast-ref');\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tvar $overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\tif($overlay !== null){\r\n\t\t\t\tvar refs = $overlay.getAttribute('data-iziToast-ref');\t\t\r\n\t\t\t\t\trefs = refs.split(',');\r\n\t\t\t\tvar index = refs.indexOf(settings.REF);\r\n\r\n\t\t\t\tif(index !== -1){\r\n\t\t\t\t\trefs.splice(index, 1);\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$overlay.setAttribute('data-iziToast-ref', refs.join());\r\n\r\n\t\t\t\tif(refs.length === 0){\r\n\t\t\t\t\t$overlay.classList.remove('fadeIn');\r\n\t\t\t\t\t$overlay.classList.add('fadeOut');\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$overlay.remove();\r\n\t\t\t\t\t}, 700);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\tif(settings.transitionIn || settings.transitionInMobile){\r\n\t\t\t$toast.classList.remove(settings.transitionIn);\r\n\t\t\t$toast.classList.remove(settings.transitionInMobile);\r\n\t\t}\r\n\r\n\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\tif(settings.transitionOutMobile)\r\n\t\t\t\t$toast.classList.add(settings.transitionOutMobile);\r\n\t\t} else {\r\n\t\t\tif(settings.transitionOut)\r\n\t\t\t\t$toast.classList.add(settings.transitionOut);\r\n\t\t}\r\n\t\tvar H = $toast.parentNode.offsetHeight;\r\n\t\t\t\t$toast.parentNode.style.height = H+'px';\r\n\t\t\t\t$toast.style.pointerEvents = 'none';\r\n\t\t\r\n\t\tif(!ISMOBILE || window.innerWidth > MOBILEWIDTH){\r\n\t\t\t$toast.parentNode.style.transitionDelay = '0.2s';\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tsettings.closedBy = closedBy;\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closing', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t\r\n\t\t\t$toast.parentNode.style.height = '0px';\r\n\t\t\t$toast.parentNode.style.overflow = '';\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t\r\n\t\t\t\t$toast.parentNode.remove();\r\n\t\t\t\ttry {\r\n\t\t\t\t\tsettings.closedBy = closedBy;\r\n\t\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closed', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t\t} catch(ex){\r\n\t\t\t\t\tconsole.warn(ex);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof settings.onClosed !== 'undefined'){\r\n\t\t\t\t\tsettings.onClosed.apply(null, [settings, $toast, closedBy]);\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 1000);\r\n\t\t}, 200);\r\n\r\n\r\n\t\tif(typeof settings.onClosing !== 'undefined'){\r\n\t\t\tsettings.onClosing.apply(null, [settings, $toast, closedBy]);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Create and show the Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.show = function (options) {\r\n\r\n\t\tvar that = this;\r\n\r\n\t\t// Merge user options with defaults\r\n\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(defaults, settings);\r\n\r\n\t\t\tsettings.TIME = {};\r\n\r\n\t\tif(settings.toastOnce && settings.id && document.querySelectorAll('.'+PLUGIN_NAME+'#'+settings.id).length > 0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tsettings.REF = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);\r\n\r\n\t\tvar $DOM = {\r\n\t\t\tbody: document.querySelector('body'),\r\n\t\t\toverlay: document.createElement('div'),\r\n\t\t\ttoast: document.createElement('div'),\r\n\t\t\ttoastBody: document.createElement('div'),\r\n\t\t\ttoastTexts: document.createElement('div'),\r\n\t\t\ttoastCapsule: document.createElement('div'),\r\n\t\t\ticon: document.createElement('i'),\r\n\t\t\tcover: document.createElement('div'),\r\n\t\t\tbuttons: document.createElement('div'),\r\n\t\t\twrapper: null\r\n\t\t};\r\n\r\n\t\t$DOM.toast.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t$DOM.toast.appendChild($DOM.toastBody);\r\n\t\t$DOM.toastCapsule.appendChild($DOM.toast);\r\n\r\n\t\t// CSS Settings\r\n\t\t(function(){\r\n\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME);\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toastCapsule.classList.add(PLUGIN_NAME+'-capsule');\r\n\t\t\t$DOM.toastBody.classList.add(PLUGIN_NAME + '-body');\r\n\t\t\t$DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');\r\n\r\n\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\tif(settings.transitionInMobile)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionInMobile);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.transitionIn)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionIn);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.class){\r\n\t\t\t\tvar classes = settings.class.split(' ');\r\n\t\t\t\tforEach(classes, function (value, index) {\r\n\t\t\t\t\t$DOM.toast.classList.add(value);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.id){ $DOM.toast.id = settings.id; }\r\n\r\n\t\t\tif(settings.rtl){ $DOM.toast.classList.add(PLUGIN_NAME + '-rtl'); }\r\n\r\n\t\t\tif(settings.layout > 1){ $DOM.toast.classList.add(PLUGIN_NAME+'-layout'+settings.layout); }\r\n\r\n\t\t\tif(settings.balloon){ $DOM.toast.classList.add(PLUGIN_NAME+'-balloon'); }\r\n\r\n\t\t\tif(settings.maxWidth){\r\n\t\t\t\tif( !isNaN(settings.maxWidth) ){\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth+'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.theme !== '' || settings.theme !== 'light') {\r\n\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-theme-'+settings.theme);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.color) { //#, rgb, rgba, hsl\r\n\t\t\t\t\r\n\t\t\t\tif( isColor(settings.color) ){\r\n\t\t\t\t\t$DOM.toast.style.background = settings.color;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-color-'+settings.color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.backgroundColor) {\r\n\t\t\t\t$DOM.toast.style.background = settings.backgroundColor;\r\n\t\t\t\tif(settings.balloon){\r\n\t\t\t\t\t$DOM.toast.style.borderColor = settings.backgroundColor;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Cover image\r\n\t\t(function(){\r\n\t\t\tif(settings.image) {\r\n\t\t\t\t$DOM.cover.classList.add(PLUGIN_NAME + '-cover');\r\n\t\t\t\t$DOM.cover.style.width = settings.imageWidth + 'px';\r\n\r\n\t\t\t\tif(isBase64(settings.image.replace(/ /g,''))){\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g,'') + ')';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.marginRight = (settings.imageWidth + 10) + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.marginLeft = (settings.imageWidth + 10) + 'px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toast.appendChild($DOM.cover);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Button close\r\n\t\t(function(){\r\n\t\t\tif(settings.close){\r\n\t\t\t\t\r\n\t\t\t\t$DOM.buttonClose = document.createElement('button');\r\n\r\n\t\t\t\t$DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');\r\n\t\t\t\t$DOM.buttonClose.addEventListener('click', function (e) {\r\n\t\t\t\t\tvar button = e.target;\r\n\t\t\t\t\tthat.hide($DOM.toast, settings, 'button');\r\n\t\t\t\t});\r\n\t\t\t\t$DOM.toast.appendChild($DOM.buttonClose);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toast.style.paddingLeft = '20px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.paddingRight = '20px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Progress Bar & Timeout\r\n\t\t(function(){\r\n\t\t\tif(settings.timeout) {\r\n\r\n\t\t\t\tif(settings.progressBar){\r\n\t\t\t\t\t$DOM.progressBar = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBarDiv = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');\r\n\t\t\t\t\t$DOM.progressBarDiv.style.background = settings.progressBarColor;\r\n\t\t\t\t\t$DOM.progressBar.appendChild($DOM.progressBarDiv);\r\n\t\t\t\t\t$DOM.toast.appendChild($DOM.progressBar);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.pauseOnHover && !settings.resetOnHover){\r\n\t\t\t\t\t\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).pause();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).resume();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.resetOnHover){\r\n\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).reset();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Icon\r\n\t\t(function(){\r\n\t\t\tif(settings.icon) {\r\n\t\t\t\t$DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconText){\r\n\t\t\t\t\t$DOM.icon.appendChild(document.createTextNode(settings.iconText));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.paddingRight = '33px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.paddingLeft = '33px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconColor){\r\n\t\t\t\t\t$DOM.icon.style.color = settings.iconColor;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toastBody.appendChild($DOM.icon);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Title\r\n\t\t(function(){\r\n\t\t\tif(settings.title.length > 0) {\r\n\r\n\t\t\t\t$DOM.strong = document.createElement('strong');\r\n\t\t\t\t$DOM.strong.classList.add(PLUGIN_NAME + '-title');\r\n\t\t\t\t$DOM.strong.appendChild(createFragElem(settings.title));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.strong);\r\n\r\n\t\t\t\tif(settings.titleColor) {\r\n\t\t\t\t\t$DOM.strong.style.color = settings.titleColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleLineHeight) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\t\t\r\n\t\t// Message\r\n\t\t(function(){\r\n\t\t\tif(settings.message.length > 0) {\r\n\r\n\t\t\t\t$DOM.p = document.createElement('p');\r\n\t\t\t\t$DOM.p.classList.add(PLUGIN_NAME + '-message');\r\n\t\t\t\t$DOM.p.appendChild(createFragElem(settings.message));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.p);\r\n\r\n\t\t\t\tif(settings.messageColor) {\r\n\t\t\t\t\t$DOM.p.style.color = settings.messageColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageLineHeight) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tif(settings.title.length > 0 && settings.message.length > 0) {\r\n\t\t\tif(settings.rtl){\r\n\t\t\t\t$DOM.strong.style.marginLeft = '10px';\r\n\t\t\t} else if(settings.layout !== 2 && !settings.rtl) {\r\n\t\t\t\t$DOM.strong.style.marginRight = '10px';\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$DOM.toastBody.appendChild($DOM.toastTexts);\r\n\r\n\t\t// Buttons\r\n\t\t(function(){\r\n\t\t\tif(settings.buttons.length > 0) {\r\n\r\n\t\t\t\t$DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');\r\n\r\n\t\t\t\tif(settings.title.length > 0 && settings.message.length === 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.strong.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.p.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$DOM.p.style.marginBottom = '0';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tforEach(settings.buttons, function (value, index) {\r\n\t\t\t\t\t$DOM.buttons.appendChild(createFragElem(value[0]));\r\n\r\n\t\t\t\t\tvar $btns = $DOM.buttons.childNodes;\r\n\r\n\t\t\t\t\t$btns[index].classList.add(PLUGIN_NAME + '-buttons-child');\r\n\r\n\t\t\t\t\tif(value[2]){\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$btns[index].focus();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$btns[index].addEventListener('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tvar ts = value[1];\r\n\t\t\t\t\t\treturn ts(that, $DOM.toast);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t$DOM.toastBody.appendChild($DOM.buttons);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\t$DOM.toastCapsule.style.visibility = 'hidden';\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tvar H = $DOM.toast.offsetHeight;\r\n\t\t\t\tvar style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);\r\n\t\t\t\tvar marginTop = style.marginTop;\r\n\t\t\t\t\tmarginTop = marginTop.split('px');\r\n\t\t\t\t\tmarginTop = parseInt(marginTop[0]);\r\n\t\t\t\tvar marginBottom = style.marginBottom;\r\n\t\t\t\t\tmarginBottom = marginBottom.split('px');\r\n\t\t\t\t\tmarginBottom = parseInt(marginBottom[0]);\r\n\r\n\t\t\t\t$DOM.toastCapsule.style.visibility = '';\r\n\t\t\t\t$DOM.toastCapsule.style.height = (H+marginBottom+marginTop)+'px';\r\n\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$DOM.toastCapsule.style.height = 'auto';\r\n\t\t\t\t\tif(settings.target){\r\n\t\t\t\t\t\t$DOM.toastCapsule.style.overflow = 'visible';\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\tif(settings.timeout) {\r\n\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\tvar position = settings.position;\r\n\r\n\t\t\tif(settings.target){\r\n\r\n\t\t\t\t$DOM.wrapper = document.querySelector(settings.target);\r\n\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-target');\r\n\r\n\t\t\t\tif(settings.targetFirst) {\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif( POSITIONS.indexOf(settings.position) == -1 ){\r\n\t\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Incorrect position.\\nIt can be › ' + POSITIONS);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\t\tif(settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-bottomCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-topCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-center';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-'+position;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.'+position);\r\n\r\n\t\t\t\tif(!$DOM.wrapper) {\r\n\t\t\t\t\t$DOM.wrapper = document.createElement('div');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(position);\r\n\t\t\t\t\tdocument.body.appendChild($DOM.wrapper);\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight'){\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(settings.zindex)) {\r\n\t\t\t\t$DOM.wrapper.style.zIndex = settings.zindex;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Invalid zIndex.');\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.overlay) {\r\n\r\n\t\t\t\tif( document.querySelector('.'+PLUGIN_NAME+'-overlay.fadeIn') !== null ){\r\n\r\n\t\t\t\t\t$DOM.overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.REF);\r\n\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t$DOM.overlay.classList.add(PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.classList.add('fadeIn');\r\n\t\t\t\t\t$DOM.overlay.style.background = settings.overlayColor;\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.querySelector('body').appendChild($DOM.overlay);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.overlayClose) {\r\n\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t\t$DOM.overlay.addEventListener('click', function (e) {\r\n\t\t\t\t\t\tthat.hide($DOM.toast, settings, 'overlay');\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\t// Inside animations\r\n\t\t(function(){\r\n\t\t\tif(settings.animateInside){\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-animateInside');\r\n\t\t\t\r\n\t\t\t\tvar animationTimes = [200, 100, 300];\r\n\t\t\t\tif(settings.transitionIn == 'bounceInLeft'){\r\n\t\t\t\t\tanimationTimes = [400, 200, 400];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.title.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.strong.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[0]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.p.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[1]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.icon) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.icon.classList.add('revealIn');\r\n\t\t\t\t\t}, animationTimes[2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.buttons.length > 0 && $DOM.buttons) {\r\n\t\t\t\t\tvar counter = 150;\r\n\t\t\t\t\tforEach($DOM.buttons.childNodes, function(element, index) {\r\n\r\n\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\telement.classList.add('revealIn');\r\n\t\t\t\t\t\t}, counter);\r\n\t\t\t\t\t\tcounter = counter + 150;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tsettings.onOpening.apply(null, [settings, $DOM.toast]);\r\n\r\n\t\ttry {\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\r\n\t\t\t$DOM.toast.classList.remove(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opened');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opened', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t} catch(ex){\r\n\t\t\t\tconsole.warn(ex);\r\n\t\t\t}\r\n\r\n\t\t\tsettings.onOpened.apply(null, [settings, $DOM.toast]);\r\n\t\t}, 1000);\r\n\r\n\t\tif(settings.drag){\r\n\r\n\t\t\tif(ACCEPTSTOUCH) {\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchstart', function(e) {\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchend', function(e) {\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t} else {\r\n\r\n\t\t\t $DOM.toast.addEventListener('mousedown', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('mouseup', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(settings.closeOnEscape) {\r\n\r\n\t\t\tdocument.addEventListener('keyup', function (evt) {\r\n\t\t\t\tevt = evt || window.event;\r\n\t\t\t\tif(evt.keyCode == 27) {\r\n\t\t\t\t that.hide($DOM.toast, settings, 'esc');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthat.toast = $DOM.toast;\t\t\r\n\t};\r\n\t\r\n\r\n\treturn $iziToast;\r\n});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(53)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2l6aXRvYXN0L2Rpc3QvanMvaXppVG9hc3QuanM/NjMxNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4qIGl6aVRvYXN0IHwgdjEuMi4wXHJcbiogaHR0cDovL2l6aXRvYXN0Lm1hcmNlbG9kb2xjZS5jb21cclxuKiBieSBNYXJjZWxvIERvbGNlLlxyXG4qL1xyXG4oZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcclxuXHRpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuXHRcdGRlZmluZShbXSwgZmFjdG9yeShyb290KSk7XHJcblx0fSBlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xyXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJvb3QpO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyb290Lml6aVRvYXN0ID0gZmFjdG9yeShyb290KTtcclxuXHR9XHJcbn0pKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93IHx8IHRoaXMud2luZG93IHx8IHRoaXMuZ2xvYmFsLCBmdW5jdGlvbiAocm9vdCkge1xyXG5cclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdC8vXHJcblx0Ly8gVmFyaWFibGVzXHJcblx0Ly9cclxuXHR2YXIgJGl6aVRvYXN0ID0ge30sXHJcblx0XHRQTFVHSU5fTkFNRSA9ICdpemlUb2FzdCcsXHJcblx0XHRCT0RZID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLFxyXG5cdFx0SVNNT0JJTEUgPSAoL01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpID8gdHJ1ZSA6IGZhbHNlLFxyXG5cdFx0SVNDSFJPTUUgPSAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLFxyXG5cdFx0SVNGSVJFRk9YID0gdHlwZW9mIEluc3RhbGxUcmlnZ2VyICE9PSAndW5kZWZpbmVkJyxcclxuXHRcdEFDQ0VQVFNUT1VDSCA9ICdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcclxuXHRcdFBPU0lUSU9OUyA9IFsnYm90dG9tUmlnaHQnLCdib3R0b21MZWZ0JywnYm90dG9tQ2VudGVyJywndG9wUmlnaHQnLCd0b3BMZWZ0JywndG9wQ2VudGVyJywnY2VudGVyJ10sXHJcblx0XHRUSEVNRVMgPSB7XHJcblx0XHRcdGluZm86IHtcclxuXHRcdFx0XHRjb2xvcjogJ2JsdWUnLFxyXG5cdFx0XHRcdGljb246ICdpY28taW5mbydcclxuXHRcdFx0fSxcclxuXHRcdFx0c3VjY2Vzczoge1xyXG5cdFx0XHRcdGNvbG9yOiAnZ3JlZW4nLFxyXG5cdFx0XHRcdGljb246ICdpY28tc3VjY2VzcydcclxuXHRcdFx0fSxcclxuXHRcdFx0d2FybmluZzoge1xyXG5cdFx0XHRcdGNvbG9yOiAnb3JhbmdlJyxcclxuXHRcdFx0XHRpY29uOiAnaWNvLXdhcm5pbmcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiB7XHJcblx0XHRcdFx0Y29sb3I6ICdyZWQnLFxyXG5cdFx0XHRcdGljb246ICdpY28tZXJyb3InXHJcblx0XHRcdH0sXHJcblx0XHRcdHF1ZXN0aW9uOiB7XHJcblx0XHRcdFx0Y29sb3I6ICd5ZWxsb3cnLFxyXG5cdFx0XHRcdGljb246ICdpY28tcXVlc3Rpb24nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRNT0JJTEVXSURUSCA9IDU2OCxcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cclxuXHJcblx0Ly8gRGVmYXVsdCBzZXR0aW5nc1xyXG5cdHZhciBkZWZhdWx0cyA9IHtcclxuXHRcdGlkOiBudWxsLCBcclxuXHRcdGNsYXNzOiAnJyxcclxuXHRcdHRpdGxlOiAnJyxcclxuXHRcdHRpdGxlQ29sb3I6ICcnLFxyXG5cdFx0dGl0bGVTaXplOiAnJyxcclxuXHRcdHRpdGxlTGluZUhlaWdodDogJycsXHJcblx0XHRtZXNzYWdlOiAnJyxcclxuXHRcdG1lc3NhZ2VDb2xvcjogJycsXHJcblx0XHRtZXNzYWdlU2l6ZTogJycsXHJcblx0XHRtZXNzYWdlTGluZUhlaWdodDogJycsXHJcblx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcnLFxyXG5cdFx0dGhlbWU6ICdsaWdodCcsIC8vIGRhcmtcclxuXHRcdGNvbG9yOiAnJywgLy8gYmx1ZSwgcmVkLCBncmVlbiwgeWVsbG93XHJcblx0XHRpY29uOiAnJyxcclxuXHRcdGljb25UZXh0OiAnJyxcclxuXHRcdGljb25Db2xvcjogJycsXHJcblx0XHRpbWFnZTogJycsXHJcblx0XHRpbWFnZVdpZHRoOiA1MCxcclxuXHRcdG1heFdpZHRoOiBudWxsLFxyXG5cdFx0emluZGV4OiBudWxsLFxyXG5cdFx0bGF5b3V0OiAxLFxyXG5cdFx0YmFsbG9vbjogZmFsc2UsXHJcblx0XHRjbG9zZTogdHJ1ZSxcclxuXHRcdGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG5cdFx0cnRsOiBmYWxzZSxcclxuXHRcdHBvc2l0aW9uOiAnYm90dG9tUmlnaHQnLCAvLyBib3R0b21SaWdodCwgYm90dG9tTGVmdCwgdG9wUmlnaHQsIHRvcExlZnQsIHRvcENlbnRlciwgYm90dG9tQ2VudGVyLCBjZW50ZXJcclxuXHRcdHRhcmdldDogJycsXHJcblx0XHR0YXJnZXRGaXJzdDogdHJ1ZSxcclxuXHRcdHRvYXN0T25jZTogZmFsc2UsXHJcblx0XHR0aW1lb3V0OiA1MDAwLFxyXG5cdFx0YW5pbWF0ZUluc2lkZTogdHJ1ZSxcclxuXHRcdGRyYWc6IHRydWUsXHJcblx0XHRwYXVzZU9uSG92ZXI6IHRydWUsXHJcblx0XHRyZXNldE9uSG92ZXI6IGZhbHNlLFxyXG5cdFx0cHJvZ3Jlc3NCYXI6IHRydWUsXHJcblx0XHRwcm9ncmVzc0JhckNvbG9yOiAnJyxcclxuXHRcdHByb2dyZXNzQmFyRWFzaW5nOiAnbGluZWFyJyxcclxuXHRcdG92ZXJsYXk6IGZhbHNlLFxyXG5cdFx0b3ZlcmxheUNsb3NlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC42KScsXHJcblx0XHR0cmFuc2l0aW9uSW46ICdmYWRlSW5VcCcsIC8vIGJvdW5jZUluTGVmdCwgYm91bmNlSW5SaWdodCwgYm91bmNlSW5VcCwgYm91bmNlSW5Eb3duLCBmYWRlSW4sIGZhZGVJbkRvd24sIGZhZGVJblVwLCBmYWRlSW5MZWZ0LCBmYWRlSW5SaWdodCwgZmxpcEluWFxyXG5cdFx0dHJhbnNpdGlvbk91dDogJ2ZhZGVPdXQnLCAvLyBmYWRlT3V0LCBmYWRlT3V0VXAsIGZhZGVPdXREb3duLCBmYWRlT3V0TGVmdCwgZmFkZU91dFJpZ2h0LCBmbGlwT3V0WFxyXG5cdFx0dHJhbnNpdGlvbkluTW9iaWxlOiAnZmFkZUluVXAnLFxyXG5cdFx0dHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXREb3duJyxcclxuXHRcdGJ1dHRvbnM6IHt9LFxyXG5cdFx0b25PcGVuaW5nOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uT3BlbmVkOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uQ2xvc2luZzogZnVuY3Rpb24gKCkge30sXHJcblx0XHRvbkNsb3NlZDogZnVuY3Rpb24gKCkge31cclxuXHR9O1xyXG5cclxuXHQvL1xyXG5cdC8vIE1ldGhvZHNcclxuXHQvL1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogUG9seWZpbGwgZm9yIHJlbW92ZSgpIG1ldGhvZFxyXG5cdCAqL1xyXG5cdGlmKCEoJ3JlbW92ZScgaW4gRWxlbWVudC5wcm90b3R5cGUpKSB7XHJcblx0ICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdCAgICAgICAgaWYodGhpcy5wYXJlbnROb2RlKSB7XHJcblx0ICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpO1xyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cdH1cclxuXHJcblx0LypcclxuICAgICAqIFBvbHlmaWxsIGZvciBDdXN0b21FdmVudCBmb3IgSUUgPj0gOVxyXG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0N1c3RvbUV2ZW50L0N1c3RvbUV2ZW50I1BvbHlmaWxsXHJcbiAgICAgKi9cclxuICAgIGlmKHR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICB2YXIgQ3VzdG9tRXZlbnRQb2x5ZmlsbCA9IGZ1bmN0aW9uIChldmVudCwgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xyXG4gICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gZXZ0O1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIEN1c3RvbUV2ZW50UG9seWZpbGwucHJvdG90eXBlID0gd2luZG93LkV2ZW50LnByb3RvdHlwZTtcclxuXHJcbiAgICAgICAgd2luZG93LkN1c3RvbUV2ZW50ID0gQ3VzdG9tRXZlbnRQb2x5ZmlsbDtcclxuICAgIH0gXHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc2ltcGxlIGZvckVhY2goKSBpbXBsZW1lbnRhdGlvbiBmb3IgQXJyYXlzLCBPYmplY3RzIGFuZCBOb2RlTGlzdHNcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgaXRlbXMgdG8gaXRlcmF0ZVxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZXJhdGlvblxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBzY29wZSBPYmplY3QvTm9kZUxpc3QvQXJyYXkgdGhhdCBmb3JFYWNoIGlzIGl0ZXJhdGluZyBvdmVyIChha2EgYHRoaXNgKVxyXG5cdCAqL1xyXG5cdHZhciBmb3JFYWNoID0gZnVuY3Rpb24gKGNvbGxlY3Rpb24sIGNhbGxiYWNrLCBzY29wZSkge1xyXG5cdFx0aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGNvbGxlY3Rpb24pID09PSAnW29iamVjdCBPYmplY3RdJykge1xyXG5cdFx0XHRmb3IgKHZhciBwcm9wIGluIGNvbGxlY3Rpb24pIHtcclxuXHRcdFx0XHRpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29sbGVjdGlvbiwgcHJvcCkpIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25bcHJvcF0sIHByb3AsIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYoY29sbGVjdGlvbil7XHJcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25baV0sIGksIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1lcmdlIGRlZmF1bHRzIHdpdGggdXNlciBvcHRpb25zXHJcblx0ICogQHByaXZhdGVcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdHMgRGVmYXVsdCBzZXR0aW5nc1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgb3B0aW9uc1xyXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9IE1lcmdlZCB2YWx1ZXMgb2YgZGVmYXVsdHMgYW5kIG9wdGlvbnNcclxuXHQgKi9cclxuXHR2YXIgZXh0ZW5kID0gZnVuY3Rpb24gKGRlZmF1bHRzLCBvcHRpb25zKSB7XHJcblx0XHR2YXIgZXh0ZW5kZWQgPSB7fTtcclxuXHRcdGZvckVhY2goZGVmYXVsdHMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IGRlZmF1bHRzW3Byb3BdO1xyXG5cdFx0fSk7XHJcblx0XHRmb3JFYWNoKG9wdGlvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IG9wdGlvbnNbcHJvcF07XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiBleHRlbmRlZDtcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlIGEgZnJhZ21lbnQgRE9NIGVsZW1lbnRzXHJcblx0ICogQHByaXZhdGVcclxuXHQgKi9cclxuXHR2YXIgY3JlYXRlRnJhZ0VsZW0gPSBmdW5jdGlvbihodG1sU3RyKSB7XHJcblx0XHR2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxcclxuXHRcdFx0dGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0dGVtcC5pbm5lckhUTUwgPSBodG1sU3RyO1xyXG5cdFx0d2hpbGUgKHRlbXAuZmlyc3RDaGlsZCkge1xyXG5cdFx0XHRmcmFnLmFwcGVuZENoaWxkKHRlbXAuZmlyc3RDaGlsZCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZnJhZztcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgaXMgYSBjb2xvclxyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGlzQ29sb3IgPSBmdW5jdGlvbihjb2xvcil7XHJcblx0XHRpZiggY29sb3Iuc3Vic3RyaW5nKDAsMSkgPT0gJyMnIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdyZ2InIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdoc2wnICl7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBpZiBpcyBhIEJhc2U2NCBzdHJpbmdcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdHZhciBpc0Jhc2U2NCA9IGZ1bmN0aW9uKHN0cikge1xyXG5cdCAgICB0cnkge1xyXG5cdCAgICAgICAgcmV0dXJuIGJ0b2EoYXRvYihzdHIpKSA9PSBzdHI7XHJcblx0ICAgIH0gY2F0Y2ggKGVycikge1xyXG5cdCAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cdCAgICB9XHJcblx0fTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERyYWcgbWV0aG9kIG9mIHRvYXN0c1xyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGRyYWcgPSBmdW5jdGlvbigpIHtcclxuXHQgICAgXHJcblx0ICAgIHJldHVybiB7XHJcblx0ICAgICAgICBtb3ZlOiBmdW5jdGlvbih0b2FzdCwgaW5zdGFuY2UsIHNldHRpbmdzLCB4cG9zKSB7XHJcblxyXG5cdCAgICAgICAgXHR2YXIgb3BhY2l0eSxcclxuXHQgICAgICAgIFx0XHRvcGFjaXR5UmFuZ2UgPSAwLjMsXHJcblx0ICAgICAgICBcdFx0ZGlzdGFuY2UgPSAxODA7XHJcblx0ICAgICAgICAgICAgXHJcblx0ICAgICAgICAgICAgaWYoeHBvcyAhPT0gMCl7XHJcblx0ICAgICAgICAgICAgXHRcclxuXHQgICAgICAgICAgICBcdHRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1kcmFnZ2VkJyk7XHJcblxyXG5cdCAgICAgICAgICAgIFx0dG9hc3Quc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoJyt4cG9zICsgJ3B4KSc7XHJcblxyXG5cdFx0ICAgICAgICAgICAgaWYoeHBvcyA+IDApe1xyXG5cdFx0ICAgICAgICAgICAgXHRvcGFjaXR5ID0gKGRpc3RhbmNlLXhwb3MpIC8gZGlzdGFuY2U7XHJcblx0XHQgICAgICAgICAgICBcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cdFx0XHRcdFx0XHRcdGluc3RhbmNlLmhpZGUodG9hc3QsIGV4dGVuZChzZXR0aW5ncywgeyB0cmFuc2l0aW9uT3V0OiAnZmFkZU91dFJpZ2h0JywgdHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXRSaWdodCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH0gZWxzZSB7XHJcblx0XHQgICAgICAgICAgICBcdG9wYWNpdHkgPSAoZGlzdGFuY2UreHBvcykgLyBkaXN0YW5jZTtcclxuXHRcdCAgICAgICAgICAgIFx0aWYob3BhY2l0eSA8IG9wYWNpdHlSYW5nZSl7XHJcblx0XHRcdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSh0b2FzdCwgZXh0ZW5kKHNldHRpbmdzLCB7IHRyYW5zaXRpb25PdXQ6ICdmYWRlT3V0TGVmdCcsIHRyYW5zaXRpb25PdXRNb2JpbGU6ICdmYWRlT3V0TGVmdCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG5cdFx0XHRcclxuXHRcdFx0XHRcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cclxuXHRcdFx0XHRcdFx0aWYoSVNDSFJPTUUgfHwgSVNGSVJFRk9YKVxyXG5cdFx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLmxlZnQgPSB4cG9zKydweCc7XHJcblxyXG5cdFx0XHRcdFx0XHR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5UmFuZ2U7XHJcblxyXG5cdFx0ICAgICAgICAgICAgICAgIHRoaXMuc3RvcE1vdmluZyh0b2FzdCwgbnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHRcdFx0XHRcclxuXHQgICAgICAgIH0sXHJcblx0ICAgICAgICBzdGFydE1vdmluZzogZnVuY3Rpb24odG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZSkge1xyXG5cclxuXHQgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgdmFyIHBvc1ggPSAoKEFDQ0VQVFNUT1VDSCkgPyBlLnRvdWNoZXNbMF0uY2xpZW50WCA6IGUuY2xpZW50WCksXHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKCdweCknLCAnJyk7XHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0TGVmdC5yZXBsYWNlKCd0cmFuc2xhdGVYKCcsICcnKTtcclxuXHQgICAgICAgICAgICB2YXIgb2Zmc2V0WCA9IHBvc1ggLSB0b2FzdExlZnQ7XHJcblxyXG5cdFx0XHRcdHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0XHR0b2FzdC5jbGFzc0xpc3QucmVtb3ZlKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSk7XHJcblx0XHRcdFx0dG9hc3Quc3R5bGUudHJhbnNpdGlvbiA9ICcnO1xyXG5cclxuXHQgICAgICAgICAgICBpZihBQ0NFUFRTVE9VQ0gpIHtcclxuXHQgICAgICAgICAgICAgICAgZG9jdW1lbnQub250b3VjaG1vdmUgPSBmdW5jdGlvbihlKSB7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgcG9zWCA9IGUudG91Y2hlc1swXS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9IGVsc2Uge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IGZ1bmN0aW9uKGUpIHtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBwb3NYID0gZS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHN0b3BNb3Zpbmc6IGZ1bmN0aW9uKHRvYXN0LCBlKSB7XHJcblxyXG5cdCAgICAgICAgICAgIGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbnRvdWNobW92ZSA9IGZ1bmN0aW9uKCkge307XHJcblx0ICAgICAgICAgICAgfSBlbHNlIHtcclxuXHQgICAgICAgICAgICBcdGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oKSB7fTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSAnJztcclxuXHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2Zvcm0gPSAnJztcclxuXHJcblx0ICAgICAgICAgICAgaWYodG9hc3QuY2xhc3NMaXN0LmNvbnRhaW5zKFBMVUdJTl9OQU1FKyctZHJhZ2dlZCcpKXtcclxuXHQgICAgICAgICAgICBcdFxyXG5cdCAgICAgICAgICAgIFx0dG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLWRyYWdnZWQnKTtcclxuXHJcblx0XHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSAwLjRzIGVhc2UsIG9wYWNpdHkgMC40cyBlYXNlJztcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLnRyYW5zaXRpb24gPSAnJztcclxuXHRcdFx0XHRcdH0sIDQwMCk7XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHQgICAgICAgIH1cclxuXHQgICAgfTtcclxuXHJcblx0fSgpO1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveSB0aGUgY3VycmVudCBpbml0aWFsaXphdGlvbi5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0JGl6aVRvYXN0LmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XHJcblxyXG5cdFx0Zm9yRWFjaChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnLXdyYXBwZXInKSwgZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHtcclxuXHRcdFx0ZWxlbWVudC5yZW1vdmUoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGZvckVhY2goZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLicrUExVR0lOX05BTUUpLCBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG5cdFx0XHRlbGVtZW50LnJlbW92ZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihQTFVHSU5fTkFNRSsnLW9wZW5lZCcsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctb3BlbmluZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2luZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2VkJywge30sIGZhbHNlKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywge30sIGZhbHNlKTtcclxuXHJcblx0XHQvLyBSZXNldCB2YXJpYWJsZXNcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluaXRpYWxpemUgUGx1Z2luXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3Quc2V0dGluZ3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG5cclxuXHRcdC8vIERlc3Ryb3kgYW55IGV4aXN0aW5nIGluaXRpYWxpemF0aW9uc1xyXG5cdFx0JGl6aVRvYXN0LmRlc3Ryb3koKTtcclxuXHJcblx0XHRDT05GSUcgPSBvcHRpb25zO1xyXG5cdFx0ZGVmYXVsdHMgPSBleHRlbmQoZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pO1xyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBCdWlsZGluZyB0aGVtZXMgZnVuY3Rpb25zLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBVc2VyIHNldHRpbmdzXHJcblx0ICovXHJcblx0Zm9yRWFjaChUSEVNRVMsIGZ1bmN0aW9uICh0aGVtZSwgbmFtZSkge1xyXG5cclxuXHRcdCRpemlUb2FzdFtuYW1lXSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcblxyXG5cdFx0XHR2YXIgc2V0dGluZ3MgPSBleHRlbmQoQ09ORklHLCBvcHRpb25zIHx8IHt9KTtcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhlbWUsIHNldHRpbmdzIHx8IHt9KTtcclxuXHJcblx0XHRcdHRoaXMuc2hvdyhzZXR0aW5ncyk7XHJcblx0XHR9O1xyXG5cclxuXHR9KTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERvIHRoZSBjYWxjdWxhdGlvbiB0byBtb3ZlIHRoZSBwcm9ncmVzcyBiYXJcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdCAkaXppVG9hc3QucHJvZ3Jlc3MgPSBmdW5jdGlvbiAoJHRvYXN0LCBvcHRpb25zLCBjYWxsYmFjaykge1xyXG5cclxuXHRcdHZhciB0aGF0ID0gdGhpcyxcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhhdC5zZXR0aW5ncywgb3B0aW9ucyB8fCB7fSksXHJcblx0XHRcdCRlbGVtID0gJHRvYXN0LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctcHJvZ3Jlc3NiYXIgZGl2Jyk7XHJcblxyXG5cdCAgICByZXR1cm4ge1xyXG5cdCAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuXHQgICAgICAgIFx0aWYoJGVsZW0gIT09IG51bGwpe1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUudHJhbnNpdGlvbiA9ICd3aWR0aCAnKyBzZXR0aW5ncy50aW1lb3V0ICsnbXMgJytzZXR0aW5ncy5wcm9ncmVzc0JhckVhc2luZztcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLndpZHRoID0gJzAlJztcclxuXHRcdFx0XHR9XHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuU1RBUlQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHQgICAgICAgIFx0c2V0dGluZ3MuVElNRS5FTkQgPSBzZXR0aW5ncy5USU1FLlNUQVJUICsgc2V0dGluZ3MudGltZW91dDtcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdH0sIHNldHRpbmdzLnRpbWVvdXQpO1xyXG5cdFx0XHRcdFxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHBhdXNlOiBmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0c2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgPSBzZXR0aW5ncy5USU1FLkVORCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoJGVsZW0pLFxyXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVdpZHRoID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpO1xyXG5cclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9IHByb3BlcnR5V2lkdGg7XHRcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1x0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fSwgMTApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICB9LFxyXG5cdCAgICAgICAgcmVzdW1lOiBmdW5jdGlvbigpIHtcclxuXHJcblx0ICAgICAgICBcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnd2lkdGggJysgc2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgKydtcyAnK3NldHRpbmdzLnByb2dyZXNzQmFyRWFzaW5nO1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUud2lkdGggPSAnMCUnO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuRU5EID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBzZXR0aW5ncy5USU1FLlJFTUFJTklORztcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHR9LCBzZXR0aW5ncy5USU1FLlJFTUFJTklORyk7XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRjYWxsYmFjay5hcHBseSh0aGF0KTtcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH0sIDEwKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2xvc2UgdGhlIHNwZWNpZmljIFRvYXN0XHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3QuaGlkZSA9IGZ1bmN0aW9uICgkdG9hc3QsIG9wdGlvbnMsIGNsb3NlZEJ5KSB7XHJcblxyXG5cdFx0dmFyIHNldHRpbmdzID0gZXh0ZW5kKHRoaXMuc2V0dGluZ3MsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRjbG9zZWRCeSA9IGNsb3NlZEJ5IHx8IG51bGw7XHJcblxyXG5cdFx0aWYodHlwZW9mICR0b2FzdCAhPSAnb2JqZWN0Jyl7XHJcblx0XHRcdCR0b2FzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJHRvYXN0KTtcclxuXHRcdH1cclxuXHJcblx0XHQkdG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNsb3NpbmcnKTtcclxuXHJcblx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0c2V0dGluZ3MuUkVGID0gJHRvYXN0LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKTtcclxuXHJcblx0XHQvLyBPdmVybGF5XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHJcblx0XHRcdHZhciAkb3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRpZigkb3ZlcmxheSAhPT0gbnVsbCl7XHJcblx0XHRcdFx0dmFyIHJlZnMgPSAkb3ZlcmxheS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJyk7XHRcdFxyXG5cdFx0XHRcdFx0cmVmcyA9IHJlZnMuc3BsaXQoJywnKTtcclxuXHRcdFx0XHR2YXIgaW5kZXggPSByZWZzLmluZGV4T2Yoc2V0dGluZ3MuUkVGKTtcclxuXHJcblx0XHRcdFx0aWYoaW5kZXggIT09IC0xKXtcclxuXHRcdFx0XHRcdHJlZnMuc3BsaWNlKGluZGV4LCAxKTtcdFx0XHRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JG92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHJlZnMuam9pbigpKTtcclxuXHJcblx0XHRcdFx0aWYocmVmcy5sZW5ndGggPT09IDApe1xyXG5cdFx0XHRcdFx0JG92ZXJsYXkuY2xhc3NMaXN0LnJlbW92ZSgnZmFkZUluJyk7XHJcblx0XHRcdFx0XHQkb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdmYWRlT3V0Jyk7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHQkb3ZlcmxheS5yZW1vdmUoKTtcclxuXHRcdFx0XHRcdH0sIDcwMCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uSW4gfHwgc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKXtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZihJU01PQklMRSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA8PSBNT0JJTEVXSURUSCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25PdXRNb2JpbGUpXHJcblx0XHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5hZGQoc2V0dGluZ3MudHJhbnNpdGlvbk91dE1vYmlsZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uT3V0KVxyXG5cdFx0XHRcdCR0b2FzdC5jbGFzc0xpc3QuYWRkKHNldHRpbmdzLnRyYW5zaXRpb25PdXQpO1xyXG5cdFx0fVxyXG5cdFx0dmFyIEggPSAkdG9hc3QucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQ7XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gSCsncHgnO1xyXG5cdFx0XHRcdCR0b2FzdC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG5cdFx0XHJcblx0XHRpZighSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPiBNT0JJTEVXSURUSCl7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLnRyYW5zaXRpb25EZWxheSA9ICcwLjJzJztcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zaW5nJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHR9IGNhdGNoKGV4KXtcclxuXHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdH1cclxuXHJcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcclxuXHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93ID0gJyc7XHJcblxyXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUucmVtb3ZlKCk7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdHNldHRpbmdzLmNsb3NlZEJ5ID0gY2xvc2VkQnk7XHJcblx0XHRcdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zZWQnLCB7ZGV0YWlsOiBzZXR0aW5ncywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZX0pO1xyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oZXgpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIHNldHRpbmdzLm9uQ2xvc2VkICE9PSAndW5kZWZpbmVkJyl7XHJcblx0XHRcdFx0XHRzZXR0aW5ncy5vbkNsb3NlZC5hcHBseShudWxsLCBbc2V0dGluZ3MsICR0b2FzdCwgY2xvc2VkQnldKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LCAxMDAwKTtcclxuXHRcdH0sIDIwMCk7XHJcblxyXG5cclxuXHRcdGlmKHR5cGVvZiBzZXR0aW5ncy5vbkNsb3NpbmcgIT09ICd1bmRlZmluZWQnKXtcclxuXHRcdFx0c2V0dGluZ3Mub25DbG9zaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJHRvYXN0LCBjbG9zZWRCeV0pO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZSBhbmQgc2hvdyB0aGUgVG9hc3RcclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVXNlciBzZXR0aW5nc1xyXG5cdCAqL1xyXG5cdCRpemlUb2FzdC5zaG93ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuXHJcblx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0Ly8gTWVyZ2UgdXNlciBvcHRpb25zIHdpdGggZGVmYXVsdHNcclxuXHRcdHZhciBzZXR0aW5ncyA9IGV4dGVuZChDT05GSUcsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRzZXR0aW5ncyA9IGV4dGVuZChkZWZhdWx0cywgc2V0dGluZ3MpO1xyXG5cclxuXHRcdFx0c2V0dGluZ3MuVElNRSA9IHt9O1xyXG5cclxuXHRcdGlmKHNldHRpbmdzLnRvYXN0T25jZSAmJiBzZXR0aW5ncy5pZCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnIycrc2V0dGluZ3MuaWQpLmxlbmd0aCA+IDApe1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0dGluZ3MuUkVGID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDApICsgMSk7XHJcblxyXG5cdFx0dmFyICRET00gPSB7XHJcblx0XHRcdGJvZHk6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKSxcclxuXHRcdFx0b3ZlcmxheTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RCb2R5OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RUZXh0czogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0Q2Fwc3VsZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdGljb246IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKSxcclxuXHRcdFx0Y292ZXI6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxyXG5cdFx0XHRidXR0b25zOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0d3JhcHBlcjogbnVsbFxyXG5cdFx0fTtcclxuXHJcblx0XHQkRE9NLnRvYXN0LnNldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnLCBzZXR0aW5ncy5SRUYpO1xyXG5cdFx0JERPTS50b2FzdC5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Qm9keSk7XHJcblx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0KTtcclxuXHJcblx0XHQvLyBDU1MgU2V0dGluZ3NcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmluZycpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctY2Fwc3VsZScpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Qm9keS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1ib2R5Jyk7XHJcblx0XHRcdCRET00udG9hc3RUZXh0cy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy10ZXh0cycpO1xyXG5cclxuXHRcdFx0aWYoSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPD0gTU9CSUxFV0lEVEgpe1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSlcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW5Nb2JpbGUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25JbilcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW4pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5jbGFzcyl7XHJcblx0XHRcdFx0dmFyIGNsYXNzZXMgPSBzZXR0aW5ncy5jbGFzcy5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdGZvckVhY2goY2xhc3NlcywgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKHZhbHVlKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuaWQpeyAkRE9NLnRvYXN0LmlkID0gc2V0dGluZ3MuaWQ7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7ICRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctcnRsJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmxheW91dCA+IDEpeyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1sYXlvdXQnK3NldHRpbmdzLmxheW91dCk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24peyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1iYWxsb29uJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLm1heFdpZHRoKXtcclxuXHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLm1heFdpZHRoKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5tYXhXaWR0aCA9IHNldHRpbmdzLm1heFdpZHRoKydweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUubWF4V2lkdGggPSBzZXR0aW5ncy5tYXhXaWR0aDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRoZW1lICE9PSAnJyB8fCBzZXR0aW5ncy50aGVtZSAhPT0gJ2xpZ2h0Jykge1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy10aGVtZS0nK3NldHRpbmdzLnRoZW1lKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuY29sb3IpIHsgLy8jLCByZ2IsIHJnYmEsIGhzbFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlmKCBpc0NvbG9yKHNldHRpbmdzLmNvbG9yKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuY29sb3I7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNvbG9yLScrc2V0dGluZ3MuY29sb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSB7XHJcblx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yO1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24pe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5ib3JkZXJDb2xvciA9IHNldHRpbmdzLmJhY2tncm91bmRDb2xvcjtcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBDb3ZlciBpbWFnZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmltYWdlKSB7XHJcblx0XHRcdFx0JERPTS5jb3Zlci5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1jb3ZlcicpO1xyXG5cdFx0XHRcdCRET00uY292ZXIuc3R5bGUud2lkdGggPSBzZXR0aW5ncy5pbWFnZVdpZHRoICsgJ3B4JztcclxuXHJcblx0XHRcdFx0aWYoaXNCYXNlNjQoc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSkpe1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSArICcpJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZSArICcpJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5tYXJnaW5SaWdodCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUubWFyZ2luTGVmdCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmFwcGVuZENoaWxkKCRET00uY292ZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEJ1dHRvbiBjbG9zZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmNsb3NlKXtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9uQ2xvc2UuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctY2xvc2UnKTtcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdHZhciBidXR0b24gPSBlLnRhcmdldDtcclxuXHRcdFx0XHRcdHRoYXQuaGlkZSgkRE9NLnRvYXN0LCBzZXR0aW5ncywgJ2J1dHRvbicpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5idXR0b25DbG9zZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ0xlZnQgPSAnMjBweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzIwcHgnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBQcm9ncmVzcyBCYXIgJiBUaW1lb3V0XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGltZW91dCkge1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wcm9ncmVzc0Jhcil7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXByb2dyZXNzYmFyJyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5wcm9ncmVzc0JhckNvbG9yO1xyXG5cdFx0XHRcdFx0JERPTS5wcm9ncmVzc0Jhci5hcHBlbmRDaGlsZCgkRE9NLnByb2dyZXNzQmFyRGl2KTtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5wcm9ncmVzc0Jhcik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wYXVzZU9uSG92ZXIgJiYgIXNldHRpbmdzLnJlc2V0T25Ib3Zlcil7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLXBhdXNlZCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5wcm9ncmVzcygkRE9NLnRvYXN0LCBzZXR0aW5ncykucGF1c2UoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jbGFzc0xpc3QucmVtb3ZlKFBMVUdJTl9OQU1FKyctcGF1c2VkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXN1bWUoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucmVzZXRPbkhvdmVyKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXNldCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5yZW1vdmUoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5zdGFydCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEljb25cclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5pY29uKSB7XHJcblx0XHRcdFx0JERPTS5pY29uLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBQTFVHSU5fTkFNRSArICctaWNvbiAnICsgc2V0dGluZ3MuaWNvbik7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MuaWNvblRleHQpe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNldHRpbmdzLmljb25UZXh0KSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzMzcHgnO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5wYWRkaW5nTGVmdCA9ICczM3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZihzZXR0aW5ncy5pY29uQ29sb3Ipe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLnN0eWxlLmNvbG9yID0gc2V0dGluZ3MuaWNvbkNvbG9yO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5hcHBlbmRDaGlsZCgkRE9NLmljb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRpdGxlXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cclxuXHRcdFx0XHQkRE9NLnN0cm9uZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0cm9uZycpO1xyXG5cdFx0XHRcdCRET00uc3Ryb25nLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXRpdGxlJyk7XHJcblx0XHRcdFx0JERPTS5zdHJvbmcuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ0VsZW0oc2V0dGluZ3MudGl0bGUpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5zdHJvbmcpO1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy50aXRsZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5jb2xvciA9IHNldHRpbmdzLnRpdGxlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlU2l6ZSkge1xyXG5cdFx0XHRcdFx0aWYoICFpc05hTihzZXR0aW5ncy50aXRsZVNpemUpICl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MudGl0bGVTaXplKydweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLnRpdGxlU2l6ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGVMaW5lSGVpZ2h0KSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblx0XHRcclxuXHRcdC8vIE1lc3NhZ2VcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHJcblx0XHRcdFx0JERPTS5wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG5cdFx0XHRcdCRET00ucC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1tZXNzYWdlJyk7XHJcblx0XHRcdFx0JERPTS5wLmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdFbGVtKHNldHRpbmdzLm1lc3NhZ2UpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5wKTtcclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnAuc3R5bGUuY29sb3IgPSBzZXR0aW5ncy5tZXNzYWdlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLm1lc3NhZ2VTaXplKSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MubWVzc2FnZVNpemUrJ3B4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLm1lc3NhZ2VTaXplO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCkge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCAmJiBzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5MZWZ0ID0gJzEwcHgnO1xyXG5cdFx0XHR9IGVsc2UgaWYoc2V0dGluZ3MubGF5b3V0ICE9PSAyICYmICFzZXR0aW5ncy5ydGwpIHtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxMHB4JztcdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JERPTS50b2FzdEJvZHkuYXBwZW5kQ2hpbGQoJERPTS50b2FzdFRleHRzKTtcclxuXHJcblx0XHQvLyBCdXR0b25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYnV0dG9ucy5sZW5ndGggPiAwKSB7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9ucy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zJyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlLmxlbmd0aCA+IDAgJiYgc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLm1hcmdpbkxlZnQgPSAnMTVweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnAuc3R5bGUubWFyZ2luTGVmdCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnMCc7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRmb3JFYWNoKHNldHRpbmdzLmJ1dHRvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdCRET00uYnV0dG9ucy5hcHBlbmRDaGlsZChjcmVhdGVGcmFnRWxlbSh2YWx1ZVswXSkpO1xyXG5cclxuXHRcdFx0XHRcdHZhciAkYnRucyA9ICRET00uYnV0dG9ucy5jaGlsZE5vZGVzO1xyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zLWNoaWxkJyk7XHJcblxyXG5cdFx0XHRcdFx0aWYodmFsdWVbMl0pe1xyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdCRidG5zW2luZGV4XS5mb2N1cygpO1xyXG5cdFx0XHRcdFx0XHR9LCAzMDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0dmFyIHRzID0gdmFsdWVbMV07XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cyh0aGF0LCAkRE9NLnRvYXN0KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdCRET00udG9hc3RCb2R5LmFwcGVuZENoaWxkKCRET00uYnV0dG9ucyk7XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRhcmdldFxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgSCA9ICRET00udG9hc3Qub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0XHRcdHZhciBzdHlsZSA9ICRET00udG9hc3QuY3VycmVudFN0eWxlIHx8IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCRET00udG9hc3QpO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Ub3AgPSBzdHlsZS5tYXJnaW5Ub3A7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBtYXJnaW5Ub3Auc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBwYXJzZUludChtYXJnaW5Ub3BbMF0pO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Cb3R0b20gPSBzdHlsZS5tYXJnaW5Cb3R0b207XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBtYXJnaW5Cb3R0b20uc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBwYXJzZUludChtYXJnaW5Cb3R0b21bMF0pO1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5zdHlsZS52aXNpYmlsaXR5ID0gJyc7XHJcblx0XHRcdFx0JERPTS50b2FzdENhcHN1bGUuc3R5bGUuaGVpZ2h0ID0gKEgrbWFyZ2luQm90dG9tK21hcmdpblRvcCkrJ3B4JztcclxuXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblx0XHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIDUwMCk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpbWVvdXQpIHtcclxuXHRcdFx0XHRcdHRoYXQucHJvZ3Jlc3MoJERPTS50b2FzdCwgc2V0dGluZ3MpLnN0YXJ0KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCAxMDApO1xyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBUYXJnZXRcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHR2YXIgcG9zaXRpb24gPSBzZXR0aW5ncy5wb3NpdGlvbjtcclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2V0dGluZ3MudGFyZ2V0KTtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctdGFyZ2V0Jyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldEZpcnN0KSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuaW5zZXJ0QmVmb3JlKCRET00udG9hc3RDYXBzdWxlLCAkRE9NLndyYXBwZXIuZmlyc3RDaGlsZCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Q2Fwc3VsZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0aWYoIFBPU0lUSU9OUy5pbmRleE9mKHNldHRpbmdzLnBvc2l0aW9uKSA9PSAtMSApe1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbJytQTFVHSU5fTkFNRSsnXSBJbmNvcnJlY3QgcG9zaXRpb24uXFxuSXQgY2FuIGJlIOKAuiAnICsgUE9TSVRJT05TKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKElTTU9CSUxFIHx8IHdpbmRvdy5pbm5lcldpZHRoIDw9IE1PQklMRVdJRFRIKXtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21MZWZ0JyB8fCBzZXR0aW5ncy5wb3NpdGlvbiA9PSAnYm90dG9tUmlnaHQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21DZW50ZXInKXtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb24gPSBQTFVHSU5fTkFNRSsnLXdyYXBwZXItYm90dG9tQ2VudGVyJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2UgaWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcgfHwgc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcENlbnRlcicpe1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbiA9IFBMVUdJTl9OQU1FKyctd3JhcHBlci10b3BDZW50ZXInO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLWNlbnRlcic7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLScrcG9zaXRpb247XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nICsgUExVR0lOX05BTUUgKyAnLXdyYXBwZXIuJytwb3NpdGlvbik7XHJcblxyXG5cdFx0XHRcdGlmKCEkRE9NLndyYXBwZXIpIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXdyYXBwZXInKTtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5jbGFzc0xpc3QuYWRkKHBvc2l0aW9uKTtcclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJERPTS53cmFwcGVyKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BDZW50ZXInIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcpe1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmluc2VydEJlZm9yZSgkRE9NLnRvYXN0Q2Fwc3VsZSwgJERPTS53cmFwcGVyLmZpcnN0Q2hpbGQpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuYXBwZW5kQ2hpbGQoJERPTS50b2FzdENhcHN1bGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkpIHtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuc3R5bGUuekluZGV4ID0gc2V0dGluZ3MuemluZGV4O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnNvbGUud2FybignWycrUExVR0lOX05BTUUrJ10gSW52YWxpZCB6SW5kZXguJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0Ly8gT3ZlcmxheVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5KSB7XHJcblxyXG5cdFx0XHRcdGlmKCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXkuZmFkZUluJykgIT09IG51bGwgKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXknKTtcclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJywgJERPTS5vdmVybGF5LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKSArICcsJyArIHNldHRpbmdzLlJFRik7XHJcblxyXG5cdFx0XHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkgJiYgc2V0dGluZ3MuemluZGV4ICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdCRET00ub3ZlcmxheS5zdHlsZS56SW5kZXggPSBzZXR0aW5ncy56aW5kZXgtMTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2ZhZGVJbicpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5vdmVybGF5Q29sb3I7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHNldHRpbmdzLlJFRik7XHJcblx0XHRcdFx0XHRpZighaXNOYU4oc2V0dGluZ3MuemluZGV4KSAmJiBzZXR0aW5ncy56aW5kZXggIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLnpJbmRleCA9IHNldHRpbmdzLnppbmRleC0xO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZENoaWxkKCRET00ub3ZlcmxheSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5Q2xvc2UpIHtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB7fSk7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmhpZGUoJERPTS50b2FzdCwgc2V0dGluZ3MsICdvdmVybGF5Jyk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywge30pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEluc2lkZSBhbmltYXRpb25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYW5pbWF0ZUluc2lkZSl7XHJcblx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctYW5pbWF0ZUluc2lkZScpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR2YXIgYW5pbWF0aW9uVGltZXMgPSBbMjAwLCAxMDAsIDMwMF07XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudHJhbnNpdGlvbkluID09ICdib3VuY2VJbkxlZnQnKXtcclxuXHRcdFx0XHRcdGFuaW1hdGlvblRpbWVzID0gWzQwMCwgMjAwLCA0MDBdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5jbGFzc0xpc3QuYWRkKCdzbGlkZUluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1swXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLmNsYXNzTGlzdC5hZGQoJ3NsaWRlSW4nKTtcclxuXHRcdFx0XHRcdH0sIGFuaW1hdGlvblRpbWVzWzFdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmljb24pIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5pY29uLmNsYXNzTGlzdC5hZGQoJ3JldmVhbEluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1syXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5idXR0b25zLmxlbmd0aCA+IDAgJiYgJERPTS5idXR0b25zKSB7XHJcblx0XHRcdFx0XHR2YXIgY291bnRlciA9IDE1MDtcclxuXHRcdFx0XHRcdGZvckVhY2goJERPTS5idXR0b25zLmNoaWxkTm9kZXMsIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcblxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZXZlYWxJbicpO1xyXG5cdFx0XHRcdFx0XHR9LCBjb3VudGVyKTtcclxuXHRcdFx0XHRcdFx0Y291bnRlciA9IGNvdW50ZXIgKyAxNTA7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0c2V0dGluZ3Mub25PcGVuaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJERPTS50b2FzdF0pO1xyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmluZycsIHtkZXRhaWw6IHNldHRpbmdzLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlfSk7XHJcblx0XHRcdGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG5cdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdGNvbnNvbGUud2FybihleCk7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLW9wZW5pbmcnKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmVkJyk7XHJcblxyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmVkJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0XHRkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuXHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c2V0dGluZ3Mub25PcGVuZWQuYXBwbHkobnVsbCwgW3NldHRpbmdzLCAkRE9NLnRvYXN0XSk7XHJcblx0XHR9LCAxMDAwKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy5kcmFnKXtcclxuXHJcblx0XHRcdGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgICAgICBkcmFnLnN0YXJ0TW92aW5nKHRoaXMsIHRoYXQsIHNldHRpbmdzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RhcnRNb3ZpbmcodGhpcywgdGhhdCwgc2V0dGluZ3MsIGUpO1xyXG5cdFx0XHQgICAgfSwgZmFsc2UpO1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmKHNldHRpbmdzLmNsb3NlT25Fc2NhcGUpIHtcclxuXHJcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgZnVuY3Rpb24gKGV2dCkge1xyXG5cdFx0XHRcdGV2dCA9IGV2dCB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0XHRcdFx0aWYoZXZ0LmtleUNvZGUgPT0gMjcpIHtcclxuXHRcdFx0XHQgICAgdGhhdC5oaWRlKCRET00udG9hc3QsIHNldHRpbmdzLCAnZXNjJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGF0LnRvYXN0ID0gJERPTS50b2FzdDtcdFx0XHJcblx0fTtcclxuXHRcclxuXHJcblx0cmV0dXJuICRpemlUb2FzdDtcclxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaXppdG9hc3QvZGlzdC9qcy9pemlUb2FzdC5qc1xuLy8gbW9kdWxlIGlkID0gNDU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///457\n");
+eval("var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"hello\" })\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-fed36922\", esExports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSG9tZS52dWU/MTY2NCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiaGVsbG9cIiB9KVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbnZhciBlc0V4cG9ydHMgPSB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9XG5leHBvcnQgZGVmYXVsdCBlc0V4cG9ydHNcbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtZmVkMzY5MjJcIiwgZXNFeHBvcnRzKVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1mZWQzNjkyMlwiLFwiaGFzU2NvcGVkXCI6dHJ1ZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9jb21wb25lbnRzL0hvbWUudnVlXG4vLyBtb2R1bGUgaWQgPSA0NDZcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///446\n");
/***/ })
diff --git a/Step/wwwroot/dist/6.build.js b/Step/wwwroot/dist/6.build.js
index a72a9825..7ccdf0c3 100644
--- a/Step/wwwroot/dist/6.build.js
+++ b/Step/wwwroot/dist/6.build.js
@@ -1,26 +1,9 @@
webpackJsonp([6],{
-/***/ 433:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_test_status_vue__ = __webpack_require__(437);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_test_status_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_test_status_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d0581166_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_test_status_vue__ = __webpack_require__(435);\nvar disposed = false\nvar normalizeComponent = __webpack_require__(23)\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_bustCache_test_status_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d0581166_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_bustCache_test_status_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\components\\\\test-status.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) { return key !== \"default\" && key.substr(0, 2) !== \"__\"})) { console.error(\"named exports are not supported in *.vue files.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-d0581166\", Component.options)\n } else {\n hotAPI.reload(\"data-v-d0581166\", Component.options)\n' + ' }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvdGVzdC1zdGF0dXMudnVlPzg3MmEiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRpc3Bvc2VkID0gZmFsc2VcbnZhciBub3JtYWxpemVDb21wb25lbnQgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9jb21wb25lbnQtbm9ybWFsaXplclwiKVxuLyogc2NyaXB0ICovXG5pbXBvcnQgX192dWVfc2NyaXB0X18gZnJvbSBcIiEhYmFiZWwtbG9hZGVyIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXNjcmlwdCZpbmRleD0wJmJ1c3RDYWNoZSEuL3Rlc3Qtc3RhdHVzLnZ1ZVwiXG4vKiB0ZW1wbGF0ZSAqL1xuaW1wb3J0IF9fdnVlX3RlbXBsYXRlX18gZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyL2luZGV4P3tcXFwiaWRcXFwiOlxcXCJkYXRhLXYtZDA1ODExNjZcXFwiLFxcXCJoYXNTY29wZWRcXFwiOmZhbHNlLFxcXCJidWJsZVxcXCI6e1xcXCJ0cmFuc2Zvcm1zXFxcIjp7fX19IS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAmYnVzdENhY2hlIS4vdGVzdC1zdGF0dXMudnVlXCJcbi8qIHRlbXBsYXRlIGZ1bmN0aW9uYWwgKi9cbnZhciBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18gPSBmYWxzZVxuLyogc3R5bGVzICovXG52YXIgX192dWVfc3R5bGVzX18gPSBudWxsXG4vKiBzY29wZUlkICovXG52YXIgX192dWVfc2NvcGVJZF9fID0gbnVsbFxuLyogbW9kdWxlSWRlbnRpZmllciAoc2VydmVyIG9ubHkpICovXG52YXIgX192dWVfbW9kdWxlX2lkZW50aWZpZXJfXyA9IG51bGxcbnZhciBDb21wb25lbnQgPSBub3JtYWxpemVDb21wb25lbnQoXG4gIF9fdnVlX3NjcmlwdF9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9fLFxuICBfX3Z1ZV90ZW1wbGF0ZV9mdW5jdGlvbmFsX18sXG4gIF9fdnVlX3N0eWxlc19fLFxuICBfX3Z1ZV9zY29wZUlkX18sXG4gIF9fdnVlX21vZHVsZV9pZGVudGlmaWVyX19cbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjXFxcXGNvbXBvbmVudHNcXFxcdGVzdC1zdGF0dXMudnVlXCJcbmlmIChDb21wb25lbnQuZXNNb2R1bGUgJiYgT2JqZWN0LmtleXMoQ29tcG9uZW50LmVzTW9kdWxlKS5zb21lKGZ1bmN0aW9uIChrZXkpIHsgIHJldHVybiBrZXkgIT09IFwiZGVmYXVsdFwiICYmIGtleS5zdWJzdHIoMCwgMikgIT09IFwiX19cIn0pKSB7ICBjb25zb2xlLmVycm9yKFwibmFtZWQgZXhwb3J0cyBhcmUgbm90IHN1cHBvcnRlZCBpbiAqLnZ1ZSBmaWxlcy5cIil9XG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7KGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvdEFQSSA9IHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIilcbiAgaG90QVBJLmluc3RhbGwocmVxdWlyZShcInZ1ZVwiKSwgZmFsc2UpXG4gIGlmICghaG90QVBJLmNvbXBhdGlibGUpIHJldHVyblxuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmICghbW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgaG90QVBJLmNyZWF0ZVJlY29yZChcImRhdGEtdi1kMDU4MTE2NlwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfSBlbHNlIHtcbiAgICBob3RBUEkucmVsb2FkKFwiZGF0YS12LWQwNTgxMTY2XCIsIENvbXBvbmVudC5vcHRpb25zKVxuJyArICcgIH1cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgZGlzcG9zZWQgPSB0cnVlXG4gIH0pXG59KSgpfVxuXG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvY29tcG9uZW50cy90ZXN0LXN0YXR1cy52dWVcbi8vIG1vZHVsZSBpZCA9IDQzM1xuLy8gbW9kdWxlIGNodW5rcyA9IDYiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///433\n");
-
-/***/ }),
-
-/***/ 435:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"tester\" }, [\n _c(\"h3\", [_vm._v(\"test per la barra degli allarmi\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.removeAllAlarms()\n }\n }\n },\n [_vm._v(\"Cancella tutti gli allarmi\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.addAlarm()\n }\n }\n },\n [_vm._v(\"Aggiungi un allarme\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.addWarning()\n }\n }\n },\n [_vm._v(\"Aggiungi un warning\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.addProcess()\n }\n }\n },\n [_vm._v(\"Aggiungi un processo in run\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.removeProcess()\n }\n }\n },\n [_vm._v(\"Rimuovi processi in run\")]\n )\n ]),\n _vm._v(\" \"),\n _c(\"hr\"),\n _vm._v(\" \"),\n _c(\"h3\", [_vm._v(\"test per la barra di stato macchina\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleAssi()\n }\n }\n },\n [_vm._v(\"Power On/Off assi\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleAria()\n }\n }\n },\n [_vm._v(\"Pressione aria\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleProtezioni()\n }\n }\n },\n [_vm._v(\"Apri/Chiudi protezioni\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleEmergenza()\n }\n }\n },\n [_vm._v(\"Attiva/Disattiva pulsanti emergenza\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleSettings()\n }\n }\n },\n [_vm._v(\"Attiva/Disattiva modalità settings\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleChiave()\n }\n }\n },\n [_vm._v(\"Inserisci/Rimuovi chiave per avviamento\")]\n )\n ]),\n _vm._v(\" \"),\n _c(\"hr\"),\n _vm._v(\" \"),\n _c(\"h3\", [_vm._v(\"test per le icone di taratura macchina\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleResetAxes()\n }\n }\n },\n [_vm._v(\"Taratura Assi\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleWaterJet1()\n }\n }\n },\n [_vm._v(\"Waterjet 1\")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n _vm.toggleWaterJet2()\n }\n }\n },\n [_vm._v(\"Waterjet 2\")]\n )\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-d0581166\", esExports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDM1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvdGVzdC1zdGF0dXMudnVlPzBjYTAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInRlc3RlclwiIH0sIFtcbiAgICBfYyhcImgzXCIsIFtfdm0uX3YoXCJ0ZXN0IHBlciBsYSBiYXJyYSBkZWdsaSBhbGxhcm1pXCIpXSksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLnJlbW92ZUFsbEFsYXJtcygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbX3ZtLl92KFwiQ2FuY2VsbGEgdHV0dGkgZ2xpIGFsbGFybWlcIildXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLmFkZEFsYXJtKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJBZ2dpdW5naSB1biBhbGxhcm1lXCIpXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgIF92bS5hZGRXYXJuaW5nKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJBZ2dpdW5naSB1biB3YXJuaW5nXCIpXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgIF92bS5hZGRQcm9jZXNzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJBZ2dpdW5naSB1biBwcm9jZXNzbyBpbiBydW5cIildXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLnJlbW92ZVByb2Nlc3MoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW192bS5fdihcIlJpbXVvdmkgcHJvY2Vzc2kgaW4gcnVuXCIpXVxuICAgICAgKVxuICAgIF0pLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXCJoclwiKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFwiaDNcIiwgW192bS5fdihcInRlc3QgcGVyIGxhIGJhcnJhIGRpIHN0YXRvIG1hY2NoaW5hXCIpXSksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLnRvZ2dsZUFzc2koKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW192bS5fdihcIlBvd2VyIE9uL09mZiBhc3NpXCIpXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgIF92bS50b2dnbGVBcmlhKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJQcmVzc2lvbmUgYXJpYVwiKV1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICBfdm0udG9nZ2xlUHJvdGV6aW9uaSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbX3ZtLl92KFwiQXByaS9DaGl1ZGkgcHJvdGV6aW9uaVwiKV1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICBfdm0udG9nZ2xlRW1lcmdlbnphKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJBdHRpdmEvRGlzYXR0aXZhIHB1bHNhbnRpIGVtZXJnZW56YVwiKV1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICBfdm0udG9nZ2xlU2V0dGluZ3MoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW192bS5fdihcIkF0dGl2YS9EaXNhdHRpdmEgbW9kYWxpdMOgIHNldHRpbmdzXCIpXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgIF92bS50b2dnbGVDaGlhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW192bS5fdihcIkluc2VyaXNjaS9SaW11b3ZpIGNoaWF2ZSBwZXIgYXZ2aWFtZW50b1wiKV1cbiAgICAgIClcbiAgICBdKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFwiaHJcIiksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcImgzXCIsIFtfdm0uX3YoXCJ0ZXN0IHBlciBsZSBpY29uZSBkaSB0YXJhdHVyYSBtYWNjaGluYVwiKV0pLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgIF92bS50b2dnbGVSZXNldEF4ZXMoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW192bS5fdihcIlRhcmF0dXJhIEFzc2lcIildXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgX3ZtLnRvZ2dsZVdhdGVySmV0MSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbX3ZtLl92KFwiV2F0ZXJqZXQgMVwiKV1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICBfdm0udG9nZ2xlV2F0ZXJKZXQyKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtfdm0uX3YoXCJXYXRlcmpldCAyXCIpXVxuICAgICAgKVxuICAgIF0pXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxudmFyIGVzRXhwb3J0cyA9IHsgcmVuZGVyOiByZW5kZXIsIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zIH1cbmV4cG9ydCBkZWZhdWx0IGVzRXhwb3J0c1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAobW9kdWxlLmhvdC5kYXRhKSB7XG4gICAgcmVxdWlyZShcInZ1ZS1ob3QtcmVsb2FkLWFwaVwiKSAgICAgIC5yZXJlbmRlcihcImRhdGEtdi1kMDU4MTE2NlwiLCBlc0V4cG9ydHMpXG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi90ZW1wbGF0ZS1jb21waWxlcj97XCJpZFwiOlwiZGF0YS12LWQwNTgxMTY2XCIsXCJoYXNTY29wZWRcIjpmYWxzZSxcImJ1YmxlXCI6e1widHJhbnNmb3Jtc1wiOnt9fX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wJmJ1c3RDYWNoZSEuL3NyYy9jb21wb25lbnRzL3Rlc3Qtc3RhdHVzLnZ1ZVxuLy8gbW9kdWxlIGlkID0gNDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gNiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///435\n");
-
-/***/ }),
-
-/***/ 437:
+/***/ 456:
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _store = __webpack_require__(143);\n\nexports.default = {\n methods: {\n toggleAssi: function toggleAssi() {\n _store.machineStatusActions.setPowerAlarm(this.$store, !this.$store.state.machineStatus.powerOnAlarm);\n },\n toggleAria: function toggleAria() {\n _store.machineStatusActions.setAirPressureAlarm(this.$store, !this.$store.state.machineStatus.airPressureAlarm);\n },\n toggleProtezioni: function toggleProtezioni() {\n _store.machineStatusActions.setProtectionsAlarm(this.$store, !this.$store.state.machineStatus.protectionsAlarm);\n },\n toggleEmergenza: function toggleEmergenza() {\n _store.machineStatusActions.setEmergencyAlarm(this.$store, !this.$store.state.machineStatus.emergencyAlarm);\n },\n toggleSettings: function toggleSettings() {\n _store.machineStatusActions.setSettingsModeAlarm(this.$store, !this.$store.state.machineStatus.settingsModeAlarm);\n },\n toggleChiave: function toggleChiave() {\n _store.machineStatusActions.setKeyReadyAlarm(this.$store, !this.$store.state.machineStatus.keyReadyAlarm);\n },\n toggleResetAxes: function toggleResetAxes() {\n _store.machineStatusActions.setResetAxesAlarm(this.$store, !this.$store.state.machineStatus.resetAxesAlarm);\n },\n toggleWaterJet1: function toggleWaterJet1() {\n _store.machineStatusActions.setWaterJet1Alarm(this.$store, !this.$store.state.machineStatus.waterJet1Alarm);\n },\n toggleWaterJet2: function toggleWaterJet2() {\n _store.machineStatusActions.setWaterJet2Alarm(this.$store, !this.$store.state.machineStatus.waterJet2Alarm);\n },\n addProcess: function addProcess() {\n _store.processModelActions.addProcess(this.$store, {});\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n////# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDM3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3Rlc3Qtc3RhdHVzLnZ1ZT9hMDExIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblxuICA8ZGl2IGNsYXNzPVwidGVzdGVyXCI+XG4gICAgPGgzPnRlc3QgcGVyIGxhIGJhcnJhIGRlZ2xpIGFsbGFybWk8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwicmVtb3ZlQWxsQWxhcm1zKClcIj5DYW5jZWxsYSB0dXR0aSBnbGkgYWxsYXJtaTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJhZGRBbGFybSgpXCI+QWdnaXVuZ2kgdW4gYWxsYXJtZTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJhZGRXYXJuaW5nKClcIj5BZ2dpdW5naSB1biB3YXJuaW5nPC9idXR0b24+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cImFkZFByb2Nlc3MoKVwiPkFnZ2l1bmdpIHVuIHByb2Nlc3NvIGluIHJ1bjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJyZW1vdmVQcm9jZXNzKClcIj5SaW11b3ZpIHByb2Nlc3NpIGluIHJ1bjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxocj5cbiAgICA8aDM+dGVzdCBwZXIgbGEgYmFycmEgZGkgc3RhdG8gbWFjY2hpbmE8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlQXNzaSgpXCI+UG93ZXIgT24vT2ZmIGFzc2k8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlQXJpYSgpXCI+UHJlc3Npb25lIGFyaWE8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlUHJvdGV6aW9uaSgpXCI+QXByaS9DaGl1ZGkgcHJvdGV6aW9uaTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVFbWVyZ2VuemEoKVwiPkF0dGl2YS9EaXNhdHRpdmEgcHVsc2FudGkgZW1lcmdlbnphPC9idXR0b24+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cInRvZ2dsZVNldHRpbmdzKClcIj5BdHRpdmEvRGlzYXR0aXZhIG1vZGFsaXTDoCBzZXR0aW5nczwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVDaGlhdmUoKVwiPkluc2VyaXNjaS9SaW11b3ZpIGNoaWF2ZSBwZXIgYXZ2aWFtZW50bzwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgICAgPGhyPlxuICAgIDxoMz50ZXN0IHBlciBsZSBpY29uZSBkaSB0YXJhdHVyYSBtYWNjaGluYTwvaDM+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVSZXNldEF4ZXMoKVwiPlRhcmF0dXJhIEFzc2k8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlV2F0ZXJKZXQxKClcIj5XYXRlcmpldCAxPC9idXR0b24+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cInRvZ2dsZVdhdGVySmV0MigpXCI+V2F0ZXJqZXQgMjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQge1xuICBtYWNoaW5lU3RhdHVzQWN0aW9ucyxcbiAgTWFjaGluZVN0YXR1c01vZGVsLFxuICBhbGFybXNNb2RlbEFjdGlvbnMsIHByb2Nlc3NNb2RlbEFjdGlvbnNcbn0gZnJvbSBcIi4uL3N0b3JlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZUFzc2koKSB7XG4gICAgICBtYWNoaW5lU3RhdHVzQWN0aW9ucy5zZXRQb3dlckFsYXJtKFxuICAgICAgICB0aGlzLiRzdG9yZSxcbiAgICAgICAgIXRoaXMuJHN0b3JlLnN0YXRlLm1hY2hpbmVTdGF0dXMucG93ZXJPbkFsYXJtXG4gICAgICApO1xuICAgIH0sXG4gICAgdG9nZ2xlQXJpYSgpIHtcbiAgICAgIG1hY2hpbmVTdGF0dXNBY3Rpb25zLnNldEFpclByZXNzdXJlQWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5haXJQcmVzc3VyZUFsYXJtXG4gICAgICApO1xuICAgIH0sXG4gICAgdG9nZ2xlUHJvdGV6aW9uaSgpIHtcbiAgICAgIG1hY2hpbmVTdGF0dXNBY3Rpb25zLnNldFByb3RlY3Rpb25zQWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5wcm90ZWN0aW9uc0FsYXJtXG4gICAgICApO1xuICAgIH0sXG4gICAgdG9nZ2xlRW1lcmdlbnphKCkge1xuICAgICAgbWFjaGluZVN0YXR1c0FjdGlvbnMuc2V0RW1lcmdlbmN5QWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5lbWVyZ2VuY3lBbGFybVxuICAgICAgKTtcbiAgICB9LFxuICAgIHRvZ2dsZVNldHRpbmdzKCkge1xuICAgICAgbWFjaGluZVN0YXR1c0FjdGlvbnMuc2V0U2V0dGluZ3NNb2RlQWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5zZXR0aW5nc01vZGVBbGFybVxuICAgICAgKTtcbiAgICB9LFxuICAgIHRvZ2dsZUNoaWF2ZSgpIHtcbiAgICAgIG1hY2hpbmVTdGF0dXNBY3Rpb25zLnNldEtleVJlYWR5QWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5rZXlSZWFkeUFsYXJtXG4gICAgICApO1xuICAgIH0sXG4gICAgdG9nZ2xlUmVzZXRBeGVzKCkge1xuICAgICAgbWFjaGluZVN0YXR1c0FjdGlvbnMuc2V0UmVzZXRBeGVzQWxhcm0oXG4gICAgICAgIHRoaXMuJHN0b3JlLFxuICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWFjaGluZVN0YXR1cy5yZXNldEF4ZXNBbGFybVxuICAgICAgKTtcbiAgICB9LFxuICAgIHRvZ2dsZVdhdGVySmV0MSgpIHtcbiAgICAgIG1hY2hpbmVTdGF0dXNBY3Rpb25zLnNldFdhdGVySmV0MUFsYXJtKFxuICAgICAgICB0aGlzLiRzdG9yZSxcbiAgICAgICAgIXRoaXMuJHN0b3JlLnN0YXRlLm1hY2hpbmVTdGF0dXMud2F0ZXJKZXQxQWxhcm1cbiAgICAgICk7XG4gICAgfSxcbiAgICB0b2dnbGVXYXRlckpldDIoKSB7XG4gICAgICBtYWNoaW5lU3RhdHVzQWN0aW9ucy5zZXRXYXRlckpldDJBbGFybShcbiAgICAgICAgdGhpcy4kc3RvcmUsXG4gICAgICAgICF0aGlzLiRzdG9yZS5zdGF0ZS5tYWNoaW5lU3RhdHVzLndhdGVySmV0MkFsYXJtXG4gICAgICApO1xuICAgIH0sXG4gICAgYWRkUHJvY2VzcygpIHtcbiAgICAgIHByb2Nlc3NNb2RlbEFjdGlvbnMuYWRkUHJvY2Vzcyh0aGlzLiRzdG9yZSwge30pO1xuXG4gICAgfVxuICB9XG59O1xuPC9zY3JpcHQ+XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB0ZXN0LXN0YXR1cy52dWU/MzkxNGIxYjAiXSwibWFwcGluZ3MiOiI7Ozs7OztBQWdDQTtBQUNBOzs7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUExREE7QUFEQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///437\n");
+eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n* iziToast | v1.2.0\r\n* http://izitoast.marcelodolce.com\r\n* by Marcelo Dolce.\r\n*/\r\n(function (root, factory) {\r\n\tif(true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory(root)),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t} else if(typeof exports === 'object') {\r\n\t\tmodule.exports = factory(root);\r\n\t} else {\r\n\t\troot.iziToast = factory(root);\r\n\t}\r\n})(typeof global !== 'undefined' ? global : window || this.window || this.global, function (root) {\r\n\r\n\t'use strict';\r\n\r\n\t//\r\n\t// Variables\r\n\t//\r\n\tvar $iziToast = {},\r\n\t\tPLUGIN_NAME = 'iziToast',\r\n\t\tBODY = document.querySelector('body'),\r\n\t\tISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false,\r\n\t\tISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\r\n\t\tISFIREFOX = typeof InstallTrigger !== 'undefined',\r\n\t\tACCEPTSTOUCH = 'ontouchstart' in document.documentElement,\r\n\t\tPOSITIONS = ['bottomRight','bottomLeft','bottomCenter','topRight','topLeft','topCenter','center'],\r\n\t\tTHEMES = {\r\n\t\t\tinfo: {\r\n\t\t\t\tcolor: 'blue',\r\n\t\t\t\ticon: 'ico-info'\r\n\t\t\t},\r\n\t\t\tsuccess: {\r\n\t\t\t\tcolor: 'green',\r\n\t\t\t\ticon: 'ico-success'\r\n\t\t\t},\r\n\t\t\twarning: {\r\n\t\t\t\tcolor: 'orange',\r\n\t\t\t\ticon: 'ico-warning'\r\n\t\t\t},\r\n\t\t\terror: {\r\n\t\t\t\tcolor: 'red',\r\n\t\t\t\ticon: 'ico-error'\r\n\t\t\t},\r\n\t\t\tquestion: {\r\n\t\t\t\tcolor: 'yellow',\r\n\t\t\t\ticon: 'ico-question'\r\n\t\t\t}\r\n\t\t},\r\n\t\tMOBILEWIDTH = 568,\r\n\t\tCONFIG = {};\r\n\r\n\r\n\t// Default settings\r\n\tvar defaults = {\r\n\t\tid: null, \r\n\t\tclass: '',\r\n\t\ttitle: '',\r\n\t\ttitleColor: '',\r\n\t\ttitleSize: '',\r\n\t\ttitleLineHeight: '',\r\n\t\tmessage: '',\r\n\t\tmessageColor: '',\r\n\t\tmessageSize: '',\r\n\t\tmessageLineHeight: '',\r\n\t\tbackgroundColor: '',\r\n\t\ttheme: 'light', // dark\r\n\t\tcolor: '', // blue, red, green, yellow\r\n\t\ticon: '',\r\n\t\ticonText: '',\r\n\t\ticonColor: '',\r\n\t\timage: '',\r\n\t\timageWidth: 50,\r\n\t\tmaxWidth: null,\r\n\t\tzindex: null,\r\n\t\tlayout: 1,\r\n\t\tballoon: false,\r\n\t\tclose: true,\r\n\t\tcloseOnEscape: false,\r\n\t\trtl: false,\r\n\t\tposition: 'bottomRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center\r\n\t\ttarget: '',\r\n\t\ttargetFirst: true,\r\n\t\ttoastOnce: false,\r\n\t\ttimeout: 5000,\r\n\t\tanimateInside: true,\r\n\t\tdrag: true,\r\n\t\tpauseOnHover: true,\r\n\t\tresetOnHover: false,\r\n\t\tprogressBar: true,\r\n\t\tprogressBarColor: '',\r\n\t\tprogressBarEasing: 'linear',\r\n\t\toverlay: false,\r\n\t\toverlayClose: false,\r\n\t\toverlayColor: 'rgba(0, 0, 0, 0.6)',\r\n\t\ttransitionIn: 'fadeInUp', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX\r\n\t\ttransitionOut: 'fadeOut', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX\r\n\t\ttransitionInMobile: 'fadeInUp',\r\n\t\ttransitionOutMobile: 'fadeOutDown',\r\n\t\tbuttons: {},\r\n\t\tonOpening: function () {},\r\n\t\tonOpened: function () {},\r\n\t\tonClosing: function () {},\r\n\t\tonClosed: function () {}\r\n\t};\r\n\r\n\t//\r\n\t// Methods\r\n\t//\r\n\r\n\r\n\t/**\r\n\t * Polyfill for remove() method\r\n\t */\r\n\tif(!('remove' in Element.prototype)) {\r\n\t Element.prototype.remove = function() {\r\n\t if(this.parentNode) {\r\n\t this.parentNode.removeChild(this);\r\n\t }\r\n\t };\r\n\t}\r\n\r\n\t/*\r\n * Polyfill for CustomEvent for IE >= 9\r\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\r\n */\r\n if(typeof window.CustomEvent !== 'function') {\r\n var CustomEventPolyfill = function (event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n };\r\n\r\n CustomEventPolyfill.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEventPolyfill;\r\n } \r\n\r\n\t/**\r\n\t * A simple forEach() implementation for Arrays, Objects and NodeLists\r\n\t * @private\r\n\t * @param {Array|Object|NodeList} collection Collection of items to iterate\r\n\t * @param {Function} callback Callback function for each iteration\r\n\t * @param {Array|Object|NodeList} scope Object/NodeList/Array that forEach is iterating over (aka `this`)\r\n\t */\r\n\tvar forEach = function (collection, callback, scope) {\r\n\t\tif(Object.prototype.toString.call(collection) === '[object Object]') {\r\n\t\t\tfor (var prop in collection) {\r\n\t\t\t\tif(Object.prototype.hasOwnProperty.call(collection, prop)) {\r\n\t\t\t\t\tcallback.call(scope, collection[prop], prop, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif(collection){\r\n\t\t\t\tfor (var i = 0, len = collection.length; i < len; i++) {\r\n\t\t\t\t\tcallback.call(scope, collection[i], i, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Merge defaults with user options\r\n\t * @private\r\n\t * @param {Object} defaults Default settings\r\n\t * @param {Object} options User options\r\n\t * @returns {Object} Merged values of defaults and options\r\n\t */\r\n\tvar extend = function (defaults, options) {\r\n\t\tvar extended = {};\r\n\t\tforEach(defaults, function (value, prop) {\r\n\t\t\textended[prop] = defaults[prop];\r\n\t\t});\r\n\t\tforEach(options, function (value, prop) {\r\n\t\t\textended[prop] = options[prop];\r\n\t\t});\r\n\t\treturn extended;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Create a fragment DOM elements\r\n\t * @private\r\n\t */\r\n\tvar createFragElem = function(htmlStr) {\r\n\t\tvar frag = document.createDocumentFragment(),\r\n\t\t\ttemp = document.createElement('div');\r\n\t\ttemp.innerHTML = htmlStr;\r\n\t\twhile (temp.firstChild) {\r\n\t\t\tfrag.appendChild(temp.firstChild);\r\n\t\t}\r\n\t\treturn frag;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a color\r\n\t * @private\r\n\t */\r\n\tvar isColor = function(color){\r\n\t\tif( color.substring(0,1) == '#' || color.substring(0,3) == 'rgb' || color.substring(0,3) == 'hsl' ){\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a Base64 string\r\n\t * @private\r\n\t */\r\n\tvar isBase64 = function(str) {\r\n\t try {\r\n\t return btoa(atob(str)) == str;\r\n\t } catch (err) {\r\n\t return false;\r\n\t }\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Drag method of toasts\r\n\t * @private\r\n\t */\r\n\tvar drag = function() {\r\n\t \r\n\t return {\r\n\t move: function(toast, instance, settings, xpos) {\r\n\r\n\t \tvar opacity,\r\n\t \t\topacityRange = 0.3,\r\n\t \t\tdistance = 180;\r\n\t \r\n\t if(xpos !== 0){\r\n\t \t\r\n\t \ttoast.classList.add(PLUGIN_NAME+'-dragged');\r\n\r\n\t \ttoast.style.transform = 'translateX('+xpos + 'px)';\r\n\r\n\t\t if(xpos > 0){\r\n\t\t \topacity = (distance-xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutRight', transitionOutMobile: 'fadeOutRight' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t } else {\r\n\t\t \topacity = (distance+xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutLeft', transitionOutMobile: 'fadeOutLeft' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t }\r\n\t\t\t\t\ttoast.style.opacity = opacity;\r\n\t\t\t\r\n\t\t\t\t\tif(opacity < opacityRange){\r\n\r\n\t\t\t\t\t\tif(ISCHROME || ISFIREFOX)\r\n\t\t\t\t\t\t\ttoast.style.left = xpos+'px';\r\n\r\n\t\t\t\t\t\ttoast.parentNode.style.opacity = opacityRange;\r\n\r\n\t\t this.stopMoving(toast, null);\r\n\t\t\t\t\t}\r\n\t }\r\n\r\n\t\t\t\t\r\n\t },\r\n\t startMoving: function(toast, instance, settings, e) {\r\n\r\n\t e = e || window.event;\r\n\t var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),\r\n\t toastLeft = toast.style.transform.replace('px)', '');\r\n\t toastLeft = toastLeft.replace('translateX(', '');\r\n\t var offsetX = posX - toastLeft;\r\n\r\n\t\t\t\ttoast.classList.remove(settings.transitionIn);\r\n\t\t\t\ttoast.classList.remove(settings.transitionInMobile);\r\n\t\t\t\ttoast.style.transition = '';\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.touches[0].clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t } else {\r\n\t document.onmousemove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t }\r\n\r\n\t },\r\n\t stopMoving: function(toast, e) {\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function() {};\r\n\t } else {\r\n\t \tdocument.onmousemove = function() {};\r\n\t }\r\n\r\n\t\t\t\ttoast.style.opacity = '';\r\n\t\t\t\ttoast.style.transform = '';\r\n\r\n\t if(toast.classList.contains(PLUGIN_NAME+'-dragged')){\r\n\t \t\r\n\t \ttoast.classList.remove(PLUGIN_NAME+'-dragged');\r\n\r\n\t\t\t\t\ttoast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\ttoast.style.transition = '';\r\n\t\t\t\t\t}, 400);\r\n\t }\r\n\r\n\t }\r\n\t };\r\n\r\n\t}();\r\n\r\n\r\n\t/**\r\n\t * Destroy the current initialization.\r\n\t * @public\r\n\t */\r\n\t$iziToast.destroy = function () {\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'-wrapper'), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\t// Remove event listeners\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opened', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opening', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closing', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closed', {}, false);\r\n\t\tdocument.removeEventListener('keyup', {}, false);\r\n\r\n\t\t// Reset variables\r\n\t\tCONFIG = {};\r\n\t};\r\n\r\n\t/**\r\n\t * Initialize Plugin\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.settings = function (options) {\r\n\r\n\t\t// Destroy any existing initializations\r\n\t\t$iziToast.destroy();\r\n\r\n\t\tCONFIG = options;\r\n\t\tdefaults = extend(defaults, options || {});\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Building themes functions.\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\tforEach(THEMES, function (theme, name) {\r\n\r\n\t\t$iziToast[name] = function (options) {\r\n\r\n\t\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(theme, settings || {});\r\n\r\n\t\t\tthis.show(settings);\r\n\t\t};\r\n\r\n\t});\r\n\r\n\r\n\t/**\r\n\t * Do the calculation to move the progress bar\r\n\t * @private\r\n\t */\r\n\t $iziToast.progress = function ($toast, options, callback) {\r\n\r\n\t\tvar that = this,\r\n\t\t\tsettings = extend(that.settings, options || {}),\r\n\t\t\t$elem = $toast.querySelector('.'+PLUGIN_NAME+'-progressbar div');\r\n\r\n\t return {\r\n\t start: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.timeout +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\t \tsettings.TIME.START = new Date().getTime();\r\n\t \tsettings.TIME.END = settings.TIME.START + settings.timeout;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}, settings.timeout);\r\n\t\t\t\t\r\n\t },\r\n\t pause: function() {\r\n\r\n\t\t\t\tsettings.TIME.REMAINING = settings.TIME.END - new Date().getTime();\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\tvar computedStyle = window.getComputedStyle($elem),\r\n\t\t\t\t\t\tpropertyWidth = computedStyle.getPropertyValue('width');\r\n\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = propertyWidth;\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t },\r\n\t resume: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.TIME.REMAINING +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\r\n\t \tsettings.TIME.END = new Date().getTime() + settings.TIME.REMAINING;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}, settings.TIME.REMAINING);\r\n\r\n\t },\r\n\t reset: function(){\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = '100%';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t }\r\n\t };\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Close the specific Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.hide = function ($toast, options, closedBy) {\r\n\r\n\t\tvar settings = extend(this.settings, options || {});\r\n\t\t\tclosedBy = closedBy || null;\r\n\r\n\t\tif(typeof $toast != 'object'){\r\n\t\t\t$toast = document.querySelector($toast);\r\n\t\t}\r\n\r\n\t\t$toast.classList.add(PLUGIN_NAME+'-closing');\r\n\r\n\t\tsettings.closedBy = closedBy;\r\n\t\tsettings.REF = $toast.getAttribute('data-iziToast-ref');\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tvar $overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\tif($overlay !== null){\r\n\t\t\t\tvar refs = $overlay.getAttribute('data-iziToast-ref');\t\t\r\n\t\t\t\t\trefs = refs.split(',');\r\n\t\t\t\tvar index = refs.indexOf(settings.REF);\r\n\r\n\t\t\t\tif(index !== -1){\r\n\t\t\t\t\trefs.splice(index, 1);\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$overlay.setAttribute('data-iziToast-ref', refs.join());\r\n\r\n\t\t\t\tif(refs.length === 0){\r\n\t\t\t\t\t$overlay.classList.remove('fadeIn');\r\n\t\t\t\t\t$overlay.classList.add('fadeOut');\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$overlay.remove();\r\n\t\t\t\t\t}, 700);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\tif(settings.transitionIn || settings.transitionInMobile){\r\n\t\t\t$toast.classList.remove(settings.transitionIn);\r\n\t\t\t$toast.classList.remove(settings.transitionInMobile);\r\n\t\t}\r\n\r\n\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\tif(settings.transitionOutMobile)\r\n\t\t\t\t$toast.classList.add(settings.transitionOutMobile);\r\n\t\t} else {\r\n\t\t\tif(settings.transitionOut)\r\n\t\t\t\t$toast.classList.add(settings.transitionOut);\r\n\t\t}\r\n\t\tvar H = $toast.parentNode.offsetHeight;\r\n\t\t\t\t$toast.parentNode.style.height = H+'px';\r\n\t\t\t\t$toast.style.pointerEvents = 'none';\r\n\t\t\r\n\t\tif(!ISMOBILE || window.innerWidth > MOBILEWIDTH){\r\n\t\t\t$toast.parentNode.style.transitionDelay = '0.2s';\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tsettings.closedBy = closedBy;\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closing', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t\r\n\t\t\t$toast.parentNode.style.height = '0px';\r\n\t\t\t$toast.parentNode.style.overflow = '';\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t\r\n\t\t\t\t$toast.parentNode.remove();\r\n\t\t\t\ttry {\r\n\t\t\t\t\tsettings.closedBy = closedBy;\r\n\t\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closed', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t\t} catch(ex){\r\n\t\t\t\t\tconsole.warn(ex);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof settings.onClosed !== 'undefined'){\r\n\t\t\t\t\tsettings.onClosed.apply(null, [settings, $toast, closedBy]);\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 1000);\r\n\t\t}, 200);\r\n\r\n\r\n\t\tif(typeof settings.onClosing !== 'undefined'){\r\n\t\t\tsettings.onClosing.apply(null, [settings, $toast, closedBy]);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Create and show the Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.show = function (options) {\r\n\r\n\t\tvar that = this;\r\n\r\n\t\t// Merge user options with defaults\r\n\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(defaults, settings);\r\n\r\n\t\t\tsettings.TIME = {};\r\n\r\n\t\tif(settings.toastOnce && settings.id && document.querySelectorAll('.'+PLUGIN_NAME+'#'+settings.id).length > 0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tsettings.REF = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);\r\n\r\n\t\tvar $DOM = {\r\n\t\t\tbody: document.querySelector('body'),\r\n\t\t\toverlay: document.createElement('div'),\r\n\t\t\ttoast: document.createElement('div'),\r\n\t\t\ttoastBody: document.createElement('div'),\r\n\t\t\ttoastTexts: document.createElement('div'),\r\n\t\t\ttoastCapsule: document.createElement('div'),\r\n\t\t\ticon: document.createElement('i'),\r\n\t\t\tcover: document.createElement('div'),\r\n\t\t\tbuttons: document.createElement('div'),\r\n\t\t\twrapper: null\r\n\t\t};\r\n\r\n\t\t$DOM.toast.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t$DOM.toast.appendChild($DOM.toastBody);\r\n\t\t$DOM.toastCapsule.appendChild($DOM.toast);\r\n\r\n\t\t// CSS Settings\r\n\t\t(function(){\r\n\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME);\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toastCapsule.classList.add(PLUGIN_NAME+'-capsule');\r\n\t\t\t$DOM.toastBody.classList.add(PLUGIN_NAME + '-body');\r\n\t\t\t$DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');\r\n\r\n\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\tif(settings.transitionInMobile)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionInMobile);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.transitionIn)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionIn);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.class){\r\n\t\t\t\tvar classes = settings.class.split(' ');\r\n\t\t\t\tforEach(classes, function (value, index) {\r\n\t\t\t\t\t$DOM.toast.classList.add(value);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.id){ $DOM.toast.id = settings.id; }\r\n\r\n\t\t\tif(settings.rtl){ $DOM.toast.classList.add(PLUGIN_NAME + '-rtl'); }\r\n\r\n\t\t\tif(settings.layout > 1){ $DOM.toast.classList.add(PLUGIN_NAME+'-layout'+settings.layout); }\r\n\r\n\t\t\tif(settings.balloon){ $DOM.toast.classList.add(PLUGIN_NAME+'-balloon'); }\r\n\r\n\t\t\tif(settings.maxWidth){\r\n\t\t\t\tif( !isNaN(settings.maxWidth) ){\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth+'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.theme !== '' || settings.theme !== 'light') {\r\n\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-theme-'+settings.theme);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.color) { //#, rgb, rgba, hsl\r\n\t\t\t\t\r\n\t\t\t\tif( isColor(settings.color) ){\r\n\t\t\t\t\t$DOM.toast.style.background = settings.color;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-color-'+settings.color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.backgroundColor) {\r\n\t\t\t\t$DOM.toast.style.background = settings.backgroundColor;\r\n\t\t\t\tif(settings.balloon){\r\n\t\t\t\t\t$DOM.toast.style.borderColor = settings.backgroundColor;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Cover image\r\n\t\t(function(){\r\n\t\t\tif(settings.image) {\r\n\t\t\t\t$DOM.cover.classList.add(PLUGIN_NAME + '-cover');\r\n\t\t\t\t$DOM.cover.style.width = settings.imageWidth + 'px';\r\n\r\n\t\t\t\tif(isBase64(settings.image.replace(/ /g,''))){\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g,'') + ')';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.marginRight = (settings.imageWidth + 10) + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.marginLeft = (settings.imageWidth + 10) + 'px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toast.appendChild($DOM.cover);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Button close\r\n\t\t(function(){\r\n\t\t\tif(settings.close){\r\n\t\t\t\t\r\n\t\t\t\t$DOM.buttonClose = document.createElement('button');\r\n\r\n\t\t\t\t$DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');\r\n\t\t\t\t$DOM.buttonClose.addEventListener('click', function (e) {\r\n\t\t\t\t\tvar button = e.target;\r\n\t\t\t\t\tthat.hide($DOM.toast, settings, 'button');\r\n\t\t\t\t});\r\n\t\t\t\t$DOM.toast.appendChild($DOM.buttonClose);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toast.style.paddingLeft = '20px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.paddingRight = '20px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Progress Bar & Timeout\r\n\t\t(function(){\r\n\t\t\tif(settings.timeout) {\r\n\r\n\t\t\t\tif(settings.progressBar){\r\n\t\t\t\t\t$DOM.progressBar = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBarDiv = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');\r\n\t\t\t\t\t$DOM.progressBarDiv.style.background = settings.progressBarColor;\r\n\t\t\t\t\t$DOM.progressBar.appendChild($DOM.progressBarDiv);\r\n\t\t\t\t\t$DOM.toast.appendChild($DOM.progressBar);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.pauseOnHover && !settings.resetOnHover){\r\n\t\t\t\t\t\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).pause();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).resume();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.resetOnHover){\r\n\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).reset();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Icon\r\n\t\t(function(){\r\n\t\t\tif(settings.icon) {\r\n\t\t\t\t$DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconText){\r\n\t\t\t\t\t$DOM.icon.appendChild(document.createTextNode(settings.iconText));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.paddingRight = '33px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.paddingLeft = '33px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconColor){\r\n\t\t\t\t\t$DOM.icon.style.color = settings.iconColor;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toastBody.appendChild($DOM.icon);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Title\r\n\t\t(function(){\r\n\t\t\tif(settings.title.length > 0) {\r\n\r\n\t\t\t\t$DOM.strong = document.createElement('strong');\r\n\t\t\t\t$DOM.strong.classList.add(PLUGIN_NAME + '-title');\r\n\t\t\t\t$DOM.strong.appendChild(createFragElem(settings.title));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.strong);\r\n\r\n\t\t\t\tif(settings.titleColor) {\r\n\t\t\t\t\t$DOM.strong.style.color = settings.titleColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleLineHeight) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\t\t\r\n\t\t// Message\r\n\t\t(function(){\r\n\t\t\tif(settings.message.length > 0) {\r\n\r\n\t\t\t\t$DOM.p = document.createElement('p');\r\n\t\t\t\t$DOM.p.classList.add(PLUGIN_NAME + '-message');\r\n\t\t\t\t$DOM.p.appendChild(createFragElem(settings.message));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.p);\r\n\r\n\t\t\t\tif(settings.messageColor) {\r\n\t\t\t\t\t$DOM.p.style.color = settings.messageColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageLineHeight) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tif(settings.title.length > 0 && settings.message.length > 0) {\r\n\t\t\tif(settings.rtl){\r\n\t\t\t\t$DOM.strong.style.marginLeft = '10px';\r\n\t\t\t} else if(settings.layout !== 2 && !settings.rtl) {\r\n\t\t\t\t$DOM.strong.style.marginRight = '10px';\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$DOM.toastBody.appendChild($DOM.toastTexts);\r\n\r\n\t\t// Buttons\r\n\t\t(function(){\r\n\t\t\tif(settings.buttons.length > 0) {\r\n\r\n\t\t\t\t$DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');\r\n\r\n\t\t\t\tif(settings.title.length > 0 && settings.message.length === 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.strong.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.p.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$DOM.p.style.marginBottom = '0';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tforEach(settings.buttons, function (value, index) {\r\n\t\t\t\t\t$DOM.buttons.appendChild(createFragElem(value[0]));\r\n\r\n\t\t\t\t\tvar $btns = $DOM.buttons.childNodes;\r\n\r\n\t\t\t\t\t$btns[index].classList.add(PLUGIN_NAME + '-buttons-child');\r\n\r\n\t\t\t\t\tif(value[2]){\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$btns[index].focus();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$btns[index].addEventListener('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tvar ts = value[1];\r\n\t\t\t\t\t\treturn ts(that, $DOM.toast);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t$DOM.toastBody.appendChild($DOM.buttons);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\t$DOM.toastCapsule.style.visibility = 'hidden';\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tvar H = $DOM.toast.offsetHeight;\r\n\t\t\t\tvar style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);\r\n\t\t\t\tvar marginTop = style.marginTop;\r\n\t\t\t\t\tmarginTop = marginTop.split('px');\r\n\t\t\t\t\tmarginTop = parseInt(marginTop[0]);\r\n\t\t\t\tvar marginBottom = style.marginBottom;\r\n\t\t\t\t\tmarginBottom = marginBottom.split('px');\r\n\t\t\t\t\tmarginBottom = parseInt(marginBottom[0]);\r\n\r\n\t\t\t\t$DOM.toastCapsule.style.visibility = '';\r\n\t\t\t\t$DOM.toastCapsule.style.height = (H+marginBottom+marginTop)+'px';\r\n\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$DOM.toastCapsule.style.height = 'auto';\r\n\t\t\t\t\tif(settings.target){\r\n\t\t\t\t\t\t$DOM.toastCapsule.style.overflow = 'visible';\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\tif(settings.timeout) {\r\n\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\tvar position = settings.position;\r\n\r\n\t\t\tif(settings.target){\r\n\r\n\t\t\t\t$DOM.wrapper = document.querySelector(settings.target);\r\n\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-target');\r\n\r\n\t\t\t\tif(settings.targetFirst) {\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif( POSITIONS.indexOf(settings.position) == -1 ){\r\n\t\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Incorrect position.\\nIt can be › ' + POSITIONS);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\t\tif(settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-bottomCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-topCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-center';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-'+position;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.'+position);\r\n\r\n\t\t\t\tif(!$DOM.wrapper) {\r\n\t\t\t\t\t$DOM.wrapper = document.createElement('div');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(position);\r\n\t\t\t\t\tdocument.body.appendChild($DOM.wrapper);\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight'){\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(settings.zindex)) {\r\n\t\t\t\t$DOM.wrapper.style.zIndex = settings.zindex;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Invalid zIndex.');\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.overlay) {\r\n\r\n\t\t\t\tif( document.querySelector('.'+PLUGIN_NAME+'-overlay.fadeIn') !== null ){\r\n\r\n\t\t\t\t\t$DOM.overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.REF);\r\n\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t$DOM.overlay.classList.add(PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.classList.add('fadeIn');\r\n\t\t\t\t\t$DOM.overlay.style.background = settings.overlayColor;\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.querySelector('body').appendChild($DOM.overlay);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.overlayClose) {\r\n\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t\t$DOM.overlay.addEventListener('click', function (e) {\r\n\t\t\t\t\t\tthat.hide($DOM.toast, settings, 'overlay');\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\t// Inside animations\r\n\t\t(function(){\r\n\t\t\tif(settings.animateInside){\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-animateInside');\r\n\t\t\t\r\n\t\t\t\tvar animationTimes = [200, 100, 300];\r\n\t\t\t\tif(settings.transitionIn == 'bounceInLeft'){\r\n\t\t\t\t\tanimationTimes = [400, 200, 400];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.title.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.strong.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[0]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.p.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[1]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.icon) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.icon.classList.add('revealIn');\r\n\t\t\t\t\t}, animationTimes[2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.buttons.length > 0 && $DOM.buttons) {\r\n\t\t\t\t\tvar counter = 150;\r\n\t\t\t\t\tforEach($DOM.buttons.childNodes, function(element, index) {\r\n\r\n\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\telement.classList.add('revealIn');\r\n\t\t\t\t\t\t}, counter);\r\n\t\t\t\t\t\tcounter = counter + 150;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tsettings.onOpening.apply(null, [settings, $DOM.toast]);\r\n\r\n\t\ttry {\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\r\n\t\t\t$DOM.toast.classList.remove(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opened');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opened', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t} catch(ex){\r\n\t\t\t\tconsole.warn(ex);\r\n\t\t\t}\r\n\r\n\t\t\tsettings.onOpened.apply(null, [settings, $DOM.toast]);\r\n\t\t}, 1000);\r\n\r\n\t\tif(settings.drag){\r\n\r\n\t\t\tif(ACCEPTSTOUCH) {\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchstart', function(e) {\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchend', function(e) {\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t} else {\r\n\r\n\t\t\t $DOM.toast.addEventListener('mousedown', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('mouseup', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(settings.closeOnEscape) {\r\n\r\n\t\t\tdocument.addEventListener('keyup', function (evt) {\r\n\t\t\t\tevt = evt || window.event;\r\n\t\t\t\tif(evt.keyCode == 27) {\r\n\t\t\t\t that.hide($DOM.toast, settings, 'esc');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthat.toast = $DOM.toast;\t\t\r\n\t};\r\n\t\r\n\r\n\treturn $iziToast;\r\n});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(53)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2l6aXRvYXN0L2Rpc3QvanMvaXppVG9hc3QuanM/NjMxNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4qIGl6aVRvYXN0IHwgdjEuMi4wXHJcbiogaHR0cDovL2l6aXRvYXN0Lm1hcmNlbG9kb2xjZS5jb21cclxuKiBieSBNYXJjZWxvIERvbGNlLlxyXG4qL1xyXG4oZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcclxuXHRpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuXHRcdGRlZmluZShbXSwgZmFjdG9yeShyb290KSk7XHJcblx0fSBlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xyXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJvb3QpO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyb290Lml6aVRvYXN0ID0gZmFjdG9yeShyb290KTtcclxuXHR9XHJcbn0pKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93IHx8IHRoaXMud2luZG93IHx8IHRoaXMuZ2xvYmFsLCBmdW5jdGlvbiAocm9vdCkge1xyXG5cclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdC8vXHJcblx0Ly8gVmFyaWFibGVzXHJcblx0Ly9cclxuXHR2YXIgJGl6aVRvYXN0ID0ge30sXHJcblx0XHRQTFVHSU5fTkFNRSA9ICdpemlUb2FzdCcsXHJcblx0XHRCT0RZID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLFxyXG5cdFx0SVNNT0JJTEUgPSAoL01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpID8gdHJ1ZSA6IGZhbHNlLFxyXG5cdFx0SVNDSFJPTUUgPSAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLFxyXG5cdFx0SVNGSVJFRk9YID0gdHlwZW9mIEluc3RhbGxUcmlnZ2VyICE9PSAndW5kZWZpbmVkJyxcclxuXHRcdEFDQ0VQVFNUT1VDSCA9ICdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcclxuXHRcdFBPU0lUSU9OUyA9IFsnYm90dG9tUmlnaHQnLCdib3R0b21MZWZ0JywnYm90dG9tQ2VudGVyJywndG9wUmlnaHQnLCd0b3BMZWZ0JywndG9wQ2VudGVyJywnY2VudGVyJ10sXHJcblx0XHRUSEVNRVMgPSB7XHJcblx0XHRcdGluZm86IHtcclxuXHRcdFx0XHRjb2xvcjogJ2JsdWUnLFxyXG5cdFx0XHRcdGljb246ICdpY28taW5mbydcclxuXHRcdFx0fSxcclxuXHRcdFx0c3VjY2Vzczoge1xyXG5cdFx0XHRcdGNvbG9yOiAnZ3JlZW4nLFxyXG5cdFx0XHRcdGljb246ICdpY28tc3VjY2VzcydcclxuXHRcdFx0fSxcclxuXHRcdFx0d2FybmluZzoge1xyXG5cdFx0XHRcdGNvbG9yOiAnb3JhbmdlJyxcclxuXHRcdFx0XHRpY29uOiAnaWNvLXdhcm5pbmcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiB7XHJcblx0XHRcdFx0Y29sb3I6ICdyZWQnLFxyXG5cdFx0XHRcdGljb246ICdpY28tZXJyb3InXHJcblx0XHRcdH0sXHJcblx0XHRcdHF1ZXN0aW9uOiB7XHJcblx0XHRcdFx0Y29sb3I6ICd5ZWxsb3cnLFxyXG5cdFx0XHRcdGljb246ICdpY28tcXVlc3Rpb24nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRNT0JJTEVXSURUSCA9IDU2OCxcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cclxuXHJcblx0Ly8gRGVmYXVsdCBzZXR0aW5nc1xyXG5cdHZhciBkZWZhdWx0cyA9IHtcclxuXHRcdGlkOiBudWxsLCBcclxuXHRcdGNsYXNzOiAnJyxcclxuXHRcdHRpdGxlOiAnJyxcclxuXHRcdHRpdGxlQ29sb3I6ICcnLFxyXG5cdFx0dGl0bGVTaXplOiAnJyxcclxuXHRcdHRpdGxlTGluZUhlaWdodDogJycsXHJcblx0XHRtZXNzYWdlOiAnJyxcclxuXHRcdG1lc3NhZ2VDb2xvcjogJycsXHJcblx0XHRtZXNzYWdlU2l6ZTogJycsXHJcblx0XHRtZXNzYWdlTGluZUhlaWdodDogJycsXHJcblx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcnLFxyXG5cdFx0dGhlbWU6ICdsaWdodCcsIC8vIGRhcmtcclxuXHRcdGNvbG9yOiAnJywgLy8gYmx1ZSwgcmVkLCBncmVlbiwgeWVsbG93XHJcblx0XHRpY29uOiAnJyxcclxuXHRcdGljb25UZXh0OiAnJyxcclxuXHRcdGljb25Db2xvcjogJycsXHJcblx0XHRpbWFnZTogJycsXHJcblx0XHRpbWFnZVdpZHRoOiA1MCxcclxuXHRcdG1heFdpZHRoOiBudWxsLFxyXG5cdFx0emluZGV4OiBudWxsLFxyXG5cdFx0bGF5b3V0OiAxLFxyXG5cdFx0YmFsbG9vbjogZmFsc2UsXHJcblx0XHRjbG9zZTogdHJ1ZSxcclxuXHRcdGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG5cdFx0cnRsOiBmYWxzZSxcclxuXHRcdHBvc2l0aW9uOiAnYm90dG9tUmlnaHQnLCAvLyBib3R0b21SaWdodCwgYm90dG9tTGVmdCwgdG9wUmlnaHQsIHRvcExlZnQsIHRvcENlbnRlciwgYm90dG9tQ2VudGVyLCBjZW50ZXJcclxuXHRcdHRhcmdldDogJycsXHJcblx0XHR0YXJnZXRGaXJzdDogdHJ1ZSxcclxuXHRcdHRvYXN0T25jZTogZmFsc2UsXHJcblx0XHR0aW1lb3V0OiA1MDAwLFxyXG5cdFx0YW5pbWF0ZUluc2lkZTogdHJ1ZSxcclxuXHRcdGRyYWc6IHRydWUsXHJcblx0XHRwYXVzZU9uSG92ZXI6IHRydWUsXHJcblx0XHRyZXNldE9uSG92ZXI6IGZhbHNlLFxyXG5cdFx0cHJvZ3Jlc3NCYXI6IHRydWUsXHJcblx0XHRwcm9ncmVzc0JhckNvbG9yOiAnJyxcclxuXHRcdHByb2dyZXNzQmFyRWFzaW5nOiAnbGluZWFyJyxcclxuXHRcdG92ZXJsYXk6IGZhbHNlLFxyXG5cdFx0b3ZlcmxheUNsb3NlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC42KScsXHJcblx0XHR0cmFuc2l0aW9uSW46ICdmYWRlSW5VcCcsIC8vIGJvdW5jZUluTGVmdCwgYm91bmNlSW5SaWdodCwgYm91bmNlSW5VcCwgYm91bmNlSW5Eb3duLCBmYWRlSW4sIGZhZGVJbkRvd24sIGZhZGVJblVwLCBmYWRlSW5MZWZ0LCBmYWRlSW5SaWdodCwgZmxpcEluWFxyXG5cdFx0dHJhbnNpdGlvbk91dDogJ2ZhZGVPdXQnLCAvLyBmYWRlT3V0LCBmYWRlT3V0VXAsIGZhZGVPdXREb3duLCBmYWRlT3V0TGVmdCwgZmFkZU91dFJpZ2h0LCBmbGlwT3V0WFxyXG5cdFx0dHJhbnNpdGlvbkluTW9iaWxlOiAnZmFkZUluVXAnLFxyXG5cdFx0dHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXREb3duJyxcclxuXHRcdGJ1dHRvbnM6IHt9LFxyXG5cdFx0b25PcGVuaW5nOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uT3BlbmVkOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uQ2xvc2luZzogZnVuY3Rpb24gKCkge30sXHJcblx0XHRvbkNsb3NlZDogZnVuY3Rpb24gKCkge31cclxuXHR9O1xyXG5cclxuXHQvL1xyXG5cdC8vIE1ldGhvZHNcclxuXHQvL1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogUG9seWZpbGwgZm9yIHJlbW92ZSgpIG1ldGhvZFxyXG5cdCAqL1xyXG5cdGlmKCEoJ3JlbW92ZScgaW4gRWxlbWVudC5wcm90b3R5cGUpKSB7XHJcblx0ICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdCAgICAgICAgaWYodGhpcy5wYXJlbnROb2RlKSB7XHJcblx0ICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpO1xyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cdH1cclxuXHJcblx0LypcclxuICAgICAqIFBvbHlmaWxsIGZvciBDdXN0b21FdmVudCBmb3IgSUUgPj0gOVxyXG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0N1c3RvbUV2ZW50L0N1c3RvbUV2ZW50I1BvbHlmaWxsXHJcbiAgICAgKi9cclxuICAgIGlmKHR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICB2YXIgQ3VzdG9tRXZlbnRQb2x5ZmlsbCA9IGZ1bmN0aW9uIChldmVudCwgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xyXG4gICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gZXZ0O1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIEN1c3RvbUV2ZW50UG9seWZpbGwucHJvdG90eXBlID0gd2luZG93LkV2ZW50LnByb3RvdHlwZTtcclxuXHJcbiAgICAgICAgd2luZG93LkN1c3RvbUV2ZW50ID0gQ3VzdG9tRXZlbnRQb2x5ZmlsbDtcclxuICAgIH0gXHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc2ltcGxlIGZvckVhY2goKSBpbXBsZW1lbnRhdGlvbiBmb3IgQXJyYXlzLCBPYmplY3RzIGFuZCBOb2RlTGlzdHNcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgaXRlbXMgdG8gaXRlcmF0ZVxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZXJhdGlvblxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBzY29wZSBPYmplY3QvTm9kZUxpc3QvQXJyYXkgdGhhdCBmb3JFYWNoIGlzIGl0ZXJhdGluZyBvdmVyIChha2EgYHRoaXNgKVxyXG5cdCAqL1xyXG5cdHZhciBmb3JFYWNoID0gZnVuY3Rpb24gKGNvbGxlY3Rpb24sIGNhbGxiYWNrLCBzY29wZSkge1xyXG5cdFx0aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGNvbGxlY3Rpb24pID09PSAnW29iamVjdCBPYmplY3RdJykge1xyXG5cdFx0XHRmb3IgKHZhciBwcm9wIGluIGNvbGxlY3Rpb24pIHtcclxuXHRcdFx0XHRpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29sbGVjdGlvbiwgcHJvcCkpIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25bcHJvcF0sIHByb3AsIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYoY29sbGVjdGlvbil7XHJcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25baV0sIGksIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1lcmdlIGRlZmF1bHRzIHdpdGggdXNlciBvcHRpb25zXHJcblx0ICogQHByaXZhdGVcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdHMgRGVmYXVsdCBzZXR0aW5nc1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgb3B0aW9uc1xyXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9IE1lcmdlZCB2YWx1ZXMgb2YgZGVmYXVsdHMgYW5kIG9wdGlvbnNcclxuXHQgKi9cclxuXHR2YXIgZXh0ZW5kID0gZnVuY3Rpb24gKGRlZmF1bHRzLCBvcHRpb25zKSB7XHJcblx0XHR2YXIgZXh0ZW5kZWQgPSB7fTtcclxuXHRcdGZvckVhY2goZGVmYXVsdHMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IGRlZmF1bHRzW3Byb3BdO1xyXG5cdFx0fSk7XHJcblx0XHRmb3JFYWNoKG9wdGlvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IG9wdGlvbnNbcHJvcF07XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiBleHRlbmRlZDtcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlIGEgZnJhZ21lbnQgRE9NIGVsZW1lbnRzXHJcblx0ICogQHByaXZhdGVcclxuXHQgKi9cclxuXHR2YXIgY3JlYXRlRnJhZ0VsZW0gPSBmdW5jdGlvbihodG1sU3RyKSB7XHJcblx0XHR2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxcclxuXHRcdFx0dGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0dGVtcC5pbm5lckhUTUwgPSBodG1sU3RyO1xyXG5cdFx0d2hpbGUgKHRlbXAuZmlyc3RDaGlsZCkge1xyXG5cdFx0XHRmcmFnLmFwcGVuZENoaWxkKHRlbXAuZmlyc3RDaGlsZCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZnJhZztcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgaXMgYSBjb2xvclxyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGlzQ29sb3IgPSBmdW5jdGlvbihjb2xvcil7XHJcblx0XHRpZiggY29sb3Iuc3Vic3RyaW5nKDAsMSkgPT0gJyMnIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdyZ2InIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdoc2wnICl7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBpZiBpcyBhIEJhc2U2NCBzdHJpbmdcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdHZhciBpc0Jhc2U2NCA9IGZ1bmN0aW9uKHN0cikge1xyXG5cdCAgICB0cnkge1xyXG5cdCAgICAgICAgcmV0dXJuIGJ0b2EoYXRvYihzdHIpKSA9PSBzdHI7XHJcblx0ICAgIH0gY2F0Y2ggKGVycikge1xyXG5cdCAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cdCAgICB9XHJcblx0fTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERyYWcgbWV0aG9kIG9mIHRvYXN0c1xyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGRyYWcgPSBmdW5jdGlvbigpIHtcclxuXHQgICAgXHJcblx0ICAgIHJldHVybiB7XHJcblx0ICAgICAgICBtb3ZlOiBmdW5jdGlvbih0b2FzdCwgaW5zdGFuY2UsIHNldHRpbmdzLCB4cG9zKSB7XHJcblxyXG5cdCAgICAgICAgXHR2YXIgb3BhY2l0eSxcclxuXHQgICAgICAgIFx0XHRvcGFjaXR5UmFuZ2UgPSAwLjMsXHJcblx0ICAgICAgICBcdFx0ZGlzdGFuY2UgPSAxODA7XHJcblx0ICAgICAgICAgICAgXHJcblx0ICAgICAgICAgICAgaWYoeHBvcyAhPT0gMCl7XHJcblx0ICAgICAgICAgICAgXHRcclxuXHQgICAgICAgICAgICBcdHRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1kcmFnZ2VkJyk7XHJcblxyXG5cdCAgICAgICAgICAgIFx0dG9hc3Quc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoJyt4cG9zICsgJ3B4KSc7XHJcblxyXG5cdFx0ICAgICAgICAgICAgaWYoeHBvcyA+IDApe1xyXG5cdFx0ICAgICAgICAgICAgXHRvcGFjaXR5ID0gKGRpc3RhbmNlLXhwb3MpIC8gZGlzdGFuY2U7XHJcblx0XHQgICAgICAgICAgICBcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cdFx0XHRcdFx0XHRcdGluc3RhbmNlLmhpZGUodG9hc3QsIGV4dGVuZChzZXR0aW5ncywgeyB0cmFuc2l0aW9uT3V0OiAnZmFkZU91dFJpZ2h0JywgdHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXRSaWdodCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH0gZWxzZSB7XHJcblx0XHQgICAgICAgICAgICBcdG9wYWNpdHkgPSAoZGlzdGFuY2UreHBvcykgLyBkaXN0YW5jZTtcclxuXHRcdCAgICAgICAgICAgIFx0aWYob3BhY2l0eSA8IG9wYWNpdHlSYW5nZSl7XHJcblx0XHRcdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSh0b2FzdCwgZXh0ZW5kKHNldHRpbmdzLCB7IHRyYW5zaXRpb25PdXQ6ICdmYWRlT3V0TGVmdCcsIHRyYW5zaXRpb25PdXRNb2JpbGU6ICdmYWRlT3V0TGVmdCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG5cdFx0XHRcclxuXHRcdFx0XHRcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cclxuXHRcdFx0XHRcdFx0aWYoSVNDSFJPTUUgfHwgSVNGSVJFRk9YKVxyXG5cdFx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLmxlZnQgPSB4cG9zKydweCc7XHJcblxyXG5cdFx0XHRcdFx0XHR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5UmFuZ2U7XHJcblxyXG5cdFx0ICAgICAgICAgICAgICAgIHRoaXMuc3RvcE1vdmluZyh0b2FzdCwgbnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHRcdFx0XHRcclxuXHQgICAgICAgIH0sXHJcblx0ICAgICAgICBzdGFydE1vdmluZzogZnVuY3Rpb24odG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZSkge1xyXG5cclxuXHQgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgdmFyIHBvc1ggPSAoKEFDQ0VQVFNUT1VDSCkgPyBlLnRvdWNoZXNbMF0uY2xpZW50WCA6IGUuY2xpZW50WCksXHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKCdweCknLCAnJyk7XHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0TGVmdC5yZXBsYWNlKCd0cmFuc2xhdGVYKCcsICcnKTtcclxuXHQgICAgICAgICAgICB2YXIgb2Zmc2V0WCA9IHBvc1ggLSB0b2FzdExlZnQ7XHJcblxyXG5cdFx0XHRcdHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0XHR0b2FzdC5jbGFzc0xpc3QucmVtb3ZlKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSk7XHJcblx0XHRcdFx0dG9hc3Quc3R5bGUudHJhbnNpdGlvbiA9ICcnO1xyXG5cclxuXHQgICAgICAgICAgICBpZihBQ0NFUFRTVE9VQ0gpIHtcclxuXHQgICAgICAgICAgICAgICAgZG9jdW1lbnQub250b3VjaG1vdmUgPSBmdW5jdGlvbihlKSB7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgcG9zWCA9IGUudG91Y2hlc1swXS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9IGVsc2Uge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IGZ1bmN0aW9uKGUpIHtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBwb3NYID0gZS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHN0b3BNb3Zpbmc6IGZ1bmN0aW9uKHRvYXN0LCBlKSB7XHJcblxyXG5cdCAgICAgICAgICAgIGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbnRvdWNobW92ZSA9IGZ1bmN0aW9uKCkge307XHJcblx0ICAgICAgICAgICAgfSBlbHNlIHtcclxuXHQgICAgICAgICAgICBcdGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oKSB7fTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSAnJztcclxuXHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2Zvcm0gPSAnJztcclxuXHJcblx0ICAgICAgICAgICAgaWYodG9hc3QuY2xhc3NMaXN0LmNvbnRhaW5zKFBMVUdJTl9OQU1FKyctZHJhZ2dlZCcpKXtcclxuXHQgICAgICAgICAgICBcdFxyXG5cdCAgICAgICAgICAgIFx0dG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLWRyYWdnZWQnKTtcclxuXHJcblx0XHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSAwLjRzIGVhc2UsIG9wYWNpdHkgMC40cyBlYXNlJztcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLnRyYW5zaXRpb24gPSAnJztcclxuXHRcdFx0XHRcdH0sIDQwMCk7XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHQgICAgICAgIH1cclxuXHQgICAgfTtcclxuXHJcblx0fSgpO1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveSB0aGUgY3VycmVudCBpbml0aWFsaXphdGlvbi5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0JGl6aVRvYXN0LmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XHJcblxyXG5cdFx0Zm9yRWFjaChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnLXdyYXBwZXInKSwgZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHtcclxuXHRcdFx0ZWxlbWVudC5yZW1vdmUoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGZvckVhY2goZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLicrUExVR0lOX05BTUUpLCBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG5cdFx0XHRlbGVtZW50LnJlbW92ZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihQTFVHSU5fTkFNRSsnLW9wZW5lZCcsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctb3BlbmluZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2luZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2VkJywge30sIGZhbHNlKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywge30sIGZhbHNlKTtcclxuXHJcblx0XHQvLyBSZXNldCB2YXJpYWJsZXNcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluaXRpYWxpemUgUGx1Z2luXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3Quc2V0dGluZ3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG5cclxuXHRcdC8vIERlc3Ryb3kgYW55IGV4aXN0aW5nIGluaXRpYWxpemF0aW9uc1xyXG5cdFx0JGl6aVRvYXN0LmRlc3Ryb3koKTtcclxuXHJcblx0XHRDT05GSUcgPSBvcHRpb25zO1xyXG5cdFx0ZGVmYXVsdHMgPSBleHRlbmQoZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pO1xyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBCdWlsZGluZyB0aGVtZXMgZnVuY3Rpb25zLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBVc2VyIHNldHRpbmdzXHJcblx0ICovXHJcblx0Zm9yRWFjaChUSEVNRVMsIGZ1bmN0aW9uICh0aGVtZSwgbmFtZSkge1xyXG5cclxuXHRcdCRpemlUb2FzdFtuYW1lXSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcblxyXG5cdFx0XHR2YXIgc2V0dGluZ3MgPSBleHRlbmQoQ09ORklHLCBvcHRpb25zIHx8IHt9KTtcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhlbWUsIHNldHRpbmdzIHx8IHt9KTtcclxuXHJcblx0XHRcdHRoaXMuc2hvdyhzZXR0aW5ncyk7XHJcblx0XHR9O1xyXG5cclxuXHR9KTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERvIHRoZSBjYWxjdWxhdGlvbiB0byBtb3ZlIHRoZSBwcm9ncmVzcyBiYXJcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdCAkaXppVG9hc3QucHJvZ3Jlc3MgPSBmdW5jdGlvbiAoJHRvYXN0LCBvcHRpb25zLCBjYWxsYmFjaykge1xyXG5cclxuXHRcdHZhciB0aGF0ID0gdGhpcyxcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhhdC5zZXR0aW5ncywgb3B0aW9ucyB8fCB7fSksXHJcblx0XHRcdCRlbGVtID0gJHRvYXN0LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctcHJvZ3Jlc3NiYXIgZGl2Jyk7XHJcblxyXG5cdCAgICByZXR1cm4ge1xyXG5cdCAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuXHQgICAgICAgIFx0aWYoJGVsZW0gIT09IG51bGwpe1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUudHJhbnNpdGlvbiA9ICd3aWR0aCAnKyBzZXR0aW5ncy50aW1lb3V0ICsnbXMgJytzZXR0aW5ncy5wcm9ncmVzc0JhckVhc2luZztcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLndpZHRoID0gJzAlJztcclxuXHRcdFx0XHR9XHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuU1RBUlQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHQgICAgICAgIFx0c2V0dGluZ3MuVElNRS5FTkQgPSBzZXR0aW5ncy5USU1FLlNUQVJUICsgc2V0dGluZ3MudGltZW91dDtcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdH0sIHNldHRpbmdzLnRpbWVvdXQpO1xyXG5cdFx0XHRcdFxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHBhdXNlOiBmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0c2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgPSBzZXR0aW5ncy5USU1FLkVORCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoJGVsZW0pLFxyXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVdpZHRoID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpO1xyXG5cclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9IHByb3BlcnR5V2lkdGg7XHRcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1x0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fSwgMTApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICB9LFxyXG5cdCAgICAgICAgcmVzdW1lOiBmdW5jdGlvbigpIHtcclxuXHJcblx0ICAgICAgICBcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnd2lkdGggJysgc2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgKydtcyAnK3NldHRpbmdzLnByb2dyZXNzQmFyRWFzaW5nO1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUud2lkdGggPSAnMCUnO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuRU5EID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBzZXR0aW5ncy5USU1FLlJFTUFJTklORztcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHR9LCBzZXR0aW5ncy5USU1FLlJFTUFJTklORyk7XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRjYWxsYmFjay5hcHBseSh0aGF0KTtcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH0sIDEwKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2xvc2UgdGhlIHNwZWNpZmljIFRvYXN0XHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3QuaGlkZSA9IGZ1bmN0aW9uICgkdG9hc3QsIG9wdGlvbnMsIGNsb3NlZEJ5KSB7XHJcblxyXG5cdFx0dmFyIHNldHRpbmdzID0gZXh0ZW5kKHRoaXMuc2V0dGluZ3MsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRjbG9zZWRCeSA9IGNsb3NlZEJ5IHx8IG51bGw7XHJcblxyXG5cdFx0aWYodHlwZW9mICR0b2FzdCAhPSAnb2JqZWN0Jyl7XHJcblx0XHRcdCR0b2FzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJHRvYXN0KTtcclxuXHRcdH1cclxuXHJcblx0XHQkdG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNsb3NpbmcnKTtcclxuXHJcblx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0c2V0dGluZ3MuUkVGID0gJHRvYXN0LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKTtcclxuXHJcblx0XHQvLyBPdmVybGF5XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHJcblx0XHRcdHZhciAkb3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRpZigkb3ZlcmxheSAhPT0gbnVsbCl7XHJcblx0XHRcdFx0dmFyIHJlZnMgPSAkb3ZlcmxheS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJyk7XHRcdFxyXG5cdFx0XHRcdFx0cmVmcyA9IHJlZnMuc3BsaXQoJywnKTtcclxuXHRcdFx0XHR2YXIgaW5kZXggPSByZWZzLmluZGV4T2Yoc2V0dGluZ3MuUkVGKTtcclxuXHJcblx0XHRcdFx0aWYoaW5kZXggIT09IC0xKXtcclxuXHRcdFx0XHRcdHJlZnMuc3BsaWNlKGluZGV4LCAxKTtcdFx0XHRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JG92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHJlZnMuam9pbigpKTtcclxuXHJcblx0XHRcdFx0aWYocmVmcy5sZW5ndGggPT09IDApe1xyXG5cdFx0XHRcdFx0JG92ZXJsYXkuY2xhc3NMaXN0LnJlbW92ZSgnZmFkZUluJyk7XHJcblx0XHRcdFx0XHQkb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdmYWRlT3V0Jyk7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHQkb3ZlcmxheS5yZW1vdmUoKTtcclxuXHRcdFx0XHRcdH0sIDcwMCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uSW4gfHwgc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKXtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZihJU01PQklMRSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA8PSBNT0JJTEVXSURUSCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25PdXRNb2JpbGUpXHJcblx0XHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5hZGQoc2V0dGluZ3MudHJhbnNpdGlvbk91dE1vYmlsZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uT3V0KVxyXG5cdFx0XHRcdCR0b2FzdC5jbGFzc0xpc3QuYWRkKHNldHRpbmdzLnRyYW5zaXRpb25PdXQpO1xyXG5cdFx0fVxyXG5cdFx0dmFyIEggPSAkdG9hc3QucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQ7XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gSCsncHgnO1xyXG5cdFx0XHRcdCR0b2FzdC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG5cdFx0XHJcblx0XHRpZighSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPiBNT0JJTEVXSURUSCl7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLnRyYW5zaXRpb25EZWxheSA9ICcwLjJzJztcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zaW5nJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHR9IGNhdGNoKGV4KXtcclxuXHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdH1cclxuXHJcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcclxuXHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93ID0gJyc7XHJcblxyXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUucmVtb3ZlKCk7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdHNldHRpbmdzLmNsb3NlZEJ5ID0gY2xvc2VkQnk7XHJcblx0XHRcdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zZWQnLCB7ZGV0YWlsOiBzZXR0aW5ncywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZX0pO1xyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oZXgpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIHNldHRpbmdzLm9uQ2xvc2VkICE9PSAndW5kZWZpbmVkJyl7XHJcblx0XHRcdFx0XHRzZXR0aW5ncy5vbkNsb3NlZC5hcHBseShudWxsLCBbc2V0dGluZ3MsICR0b2FzdCwgY2xvc2VkQnldKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LCAxMDAwKTtcclxuXHRcdH0sIDIwMCk7XHJcblxyXG5cclxuXHRcdGlmKHR5cGVvZiBzZXR0aW5ncy5vbkNsb3NpbmcgIT09ICd1bmRlZmluZWQnKXtcclxuXHRcdFx0c2V0dGluZ3Mub25DbG9zaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJHRvYXN0LCBjbG9zZWRCeV0pO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZSBhbmQgc2hvdyB0aGUgVG9hc3RcclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVXNlciBzZXR0aW5nc1xyXG5cdCAqL1xyXG5cdCRpemlUb2FzdC5zaG93ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuXHJcblx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0Ly8gTWVyZ2UgdXNlciBvcHRpb25zIHdpdGggZGVmYXVsdHNcclxuXHRcdHZhciBzZXR0aW5ncyA9IGV4dGVuZChDT05GSUcsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRzZXR0aW5ncyA9IGV4dGVuZChkZWZhdWx0cywgc2V0dGluZ3MpO1xyXG5cclxuXHRcdFx0c2V0dGluZ3MuVElNRSA9IHt9O1xyXG5cclxuXHRcdGlmKHNldHRpbmdzLnRvYXN0T25jZSAmJiBzZXR0aW5ncy5pZCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnIycrc2V0dGluZ3MuaWQpLmxlbmd0aCA+IDApe1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0dGluZ3MuUkVGID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDApICsgMSk7XHJcblxyXG5cdFx0dmFyICRET00gPSB7XHJcblx0XHRcdGJvZHk6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKSxcclxuXHRcdFx0b3ZlcmxheTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RCb2R5OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RUZXh0czogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0Q2Fwc3VsZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdGljb246IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKSxcclxuXHRcdFx0Y292ZXI6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxyXG5cdFx0XHRidXR0b25zOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0d3JhcHBlcjogbnVsbFxyXG5cdFx0fTtcclxuXHJcblx0XHQkRE9NLnRvYXN0LnNldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnLCBzZXR0aW5ncy5SRUYpO1xyXG5cdFx0JERPTS50b2FzdC5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Qm9keSk7XHJcblx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0KTtcclxuXHJcblx0XHQvLyBDU1MgU2V0dGluZ3NcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmluZycpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctY2Fwc3VsZScpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Qm9keS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1ib2R5Jyk7XHJcblx0XHRcdCRET00udG9hc3RUZXh0cy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy10ZXh0cycpO1xyXG5cclxuXHRcdFx0aWYoSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPD0gTU9CSUxFV0lEVEgpe1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSlcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW5Nb2JpbGUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25JbilcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW4pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5jbGFzcyl7XHJcblx0XHRcdFx0dmFyIGNsYXNzZXMgPSBzZXR0aW5ncy5jbGFzcy5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdGZvckVhY2goY2xhc3NlcywgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKHZhbHVlKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuaWQpeyAkRE9NLnRvYXN0LmlkID0gc2V0dGluZ3MuaWQ7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7ICRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctcnRsJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmxheW91dCA+IDEpeyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1sYXlvdXQnK3NldHRpbmdzLmxheW91dCk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24peyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1iYWxsb29uJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLm1heFdpZHRoKXtcclxuXHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLm1heFdpZHRoKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5tYXhXaWR0aCA9IHNldHRpbmdzLm1heFdpZHRoKydweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUubWF4V2lkdGggPSBzZXR0aW5ncy5tYXhXaWR0aDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRoZW1lICE9PSAnJyB8fCBzZXR0aW5ncy50aGVtZSAhPT0gJ2xpZ2h0Jykge1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy10aGVtZS0nK3NldHRpbmdzLnRoZW1lKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuY29sb3IpIHsgLy8jLCByZ2IsIHJnYmEsIGhzbFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlmKCBpc0NvbG9yKHNldHRpbmdzLmNvbG9yKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuY29sb3I7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNvbG9yLScrc2V0dGluZ3MuY29sb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSB7XHJcblx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yO1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24pe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5ib3JkZXJDb2xvciA9IHNldHRpbmdzLmJhY2tncm91bmRDb2xvcjtcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBDb3ZlciBpbWFnZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmltYWdlKSB7XHJcblx0XHRcdFx0JERPTS5jb3Zlci5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1jb3ZlcicpO1xyXG5cdFx0XHRcdCRET00uY292ZXIuc3R5bGUud2lkdGggPSBzZXR0aW5ncy5pbWFnZVdpZHRoICsgJ3B4JztcclxuXHJcblx0XHRcdFx0aWYoaXNCYXNlNjQoc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSkpe1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSArICcpJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZSArICcpJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5tYXJnaW5SaWdodCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUubWFyZ2luTGVmdCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmFwcGVuZENoaWxkKCRET00uY292ZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEJ1dHRvbiBjbG9zZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmNsb3NlKXtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9uQ2xvc2UuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctY2xvc2UnKTtcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdHZhciBidXR0b24gPSBlLnRhcmdldDtcclxuXHRcdFx0XHRcdHRoYXQuaGlkZSgkRE9NLnRvYXN0LCBzZXR0aW5ncywgJ2J1dHRvbicpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5idXR0b25DbG9zZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ0xlZnQgPSAnMjBweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzIwcHgnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBQcm9ncmVzcyBCYXIgJiBUaW1lb3V0XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGltZW91dCkge1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wcm9ncmVzc0Jhcil7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXByb2dyZXNzYmFyJyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5wcm9ncmVzc0JhckNvbG9yO1xyXG5cdFx0XHRcdFx0JERPTS5wcm9ncmVzc0Jhci5hcHBlbmRDaGlsZCgkRE9NLnByb2dyZXNzQmFyRGl2KTtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5wcm9ncmVzc0Jhcik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wYXVzZU9uSG92ZXIgJiYgIXNldHRpbmdzLnJlc2V0T25Ib3Zlcil7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLXBhdXNlZCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5wcm9ncmVzcygkRE9NLnRvYXN0LCBzZXR0aW5ncykucGF1c2UoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jbGFzc0xpc3QucmVtb3ZlKFBMVUdJTl9OQU1FKyctcGF1c2VkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXN1bWUoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucmVzZXRPbkhvdmVyKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXNldCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5yZW1vdmUoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5zdGFydCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEljb25cclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5pY29uKSB7XHJcblx0XHRcdFx0JERPTS5pY29uLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBQTFVHSU5fTkFNRSArICctaWNvbiAnICsgc2V0dGluZ3MuaWNvbik7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MuaWNvblRleHQpe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNldHRpbmdzLmljb25UZXh0KSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzMzcHgnO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5wYWRkaW5nTGVmdCA9ICczM3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZihzZXR0aW5ncy5pY29uQ29sb3Ipe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLnN0eWxlLmNvbG9yID0gc2V0dGluZ3MuaWNvbkNvbG9yO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5hcHBlbmRDaGlsZCgkRE9NLmljb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRpdGxlXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cclxuXHRcdFx0XHQkRE9NLnN0cm9uZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0cm9uZycpO1xyXG5cdFx0XHRcdCRET00uc3Ryb25nLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXRpdGxlJyk7XHJcblx0XHRcdFx0JERPTS5zdHJvbmcuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ0VsZW0oc2V0dGluZ3MudGl0bGUpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5zdHJvbmcpO1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy50aXRsZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5jb2xvciA9IHNldHRpbmdzLnRpdGxlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlU2l6ZSkge1xyXG5cdFx0XHRcdFx0aWYoICFpc05hTihzZXR0aW5ncy50aXRsZVNpemUpICl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MudGl0bGVTaXplKydweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLnRpdGxlU2l6ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGVMaW5lSGVpZ2h0KSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblx0XHRcclxuXHRcdC8vIE1lc3NhZ2VcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHJcblx0XHRcdFx0JERPTS5wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG5cdFx0XHRcdCRET00ucC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1tZXNzYWdlJyk7XHJcblx0XHRcdFx0JERPTS5wLmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdFbGVtKHNldHRpbmdzLm1lc3NhZ2UpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5wKTtcclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnAuc3R5bGUuY29sb3IgPSBzZXR0aW5ncy5tZXNzYWdlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLm1lc3NhZ2VTaXplKSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MubWVzc2FnZVNpemUrJ3B4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLm1lc3NhZ2VTaXplO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCkge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCAmJiBzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5MZWZ0ID0gJzEwcHgnO1xyXG5cdFx0XHR9IGVsc2UgaWYoc2V0dGluZ3MubGF5b3V0ICE9PSAyICYmICFzZXR0aW5ncy5ydGwpIHtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxMHB4JztcdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JERPTS50b2FzdEJvZHkuYXBwZW5kQ2hpbGQoJERPTS50b2FzdFRleHRzKTtcclxuXHJcblx0XHQvLyBCdXR0b25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYnV0dG9ucy5sZW5ndGggPiAwKSB7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9ucy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zJyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlLmxlbmd0aCA+IDAgJiYgc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLm1hcmdpbkxlZnQgPSAnMTVweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnAuc3R5bGUubWFyZ2luTGVmdCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnMCc7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRmb3JFYWNoKHNldHRpbmdzLmJ1dHRvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdCRET00uYnV0dG9ucy5hcHBlbmRDaGlsZChjcmVhdGVGcmFnRWxlbSh2YWx1ZVswXSkpO1xyXG5cclxuXHRcdFx0XHRcdHZhciAkYnRucyA9ICRET00uYnV0dG9ucy5jaGlsZE5vZGVzO1xyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zLWNoaWxkJyk7XHJcblxyXG5cdFx0XHRcdFx0aWYodmFsdWVbMl0pe1xyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdCRidG5zW2luZGV4XS5mb2N1cygpO1xyXG5cdFx0XHRcdFx0XHR9LCAzMDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0dmFyIHRzID0gdmFsdWVbMV07XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cyh0aGF0LCAkRE9NLnRvYXN0KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdCRET00udG9hc3RCb2R5LmFwcGVuZENoaWxkKCRET00uYnV0dG9ucyk7XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRhcmdldFxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgSCA9ICRET00udG9hc3Qub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0XHRcdHZhciBzdHlsZSA9ICRET00udG9hc3QuY3VycmVudFN0eWxlIHx8IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCRET00udG9hc3QpO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Ub3AgPSBzdHlsZS5tYXJnaW5Ub3A7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBtYXJnaW5Ub3Auc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBwYXJzZUludChtYXJnaW5Ub3BbMF0pO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Cb3R0b20gPSBzdHlsZS5tYXJnaW5Cb3R0b207XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBtYXJnaW5Cb3R0b20uc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBwYXJzZUludChtYXJnaW5Cb3R0b21bMF0pO1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5zdHlsZS52aXNpYmlsaXR5ID0gJyc7XHJcblx0XHRcdFx0JERPTS50b2FzdENhcHN1bGUuc3R5bGUuaGVpZ2h0ID0gKEgrbWFyZ2luQm90dG9tK21hcmdpblRvcCkrJ3B4JztcclxuXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblx0XHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIDUwMCk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpbWVvdXQpIHtcclxuXHRcdFx0XHRcdHRoYXQucHJvZ3Jlc3MoJERPTS50b2FzdCwgc2V0dGluZ3MpLnN0YXJ0KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCAxMDApO1xyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBUYXJnZXRcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHR2YXIgcG9zaXRpb24gPSBzZXR0aW5ncy5wb3NpdGlvbjtcclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2V0dGluZ3MudGFyZ2V0KTtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctdGFyZ2V0Jyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldEZpcnN0KSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuaW5zZXJ0QmVmb3JlKCRET00udG9hc3RDYXBzdWxlLCAkRE9NLndyYXBwZXIuZmlyc3RDaGlsZCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Q2Fwc3VsZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0aWYoIFBPU0lUSU9OUy5pbmRleE9mKHNldHRpbmdzLnBvc2l0aW9uKSA9PSAtMSApe1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbJytQTFVHSU5fTkFNRSsnXSBJbmNvcnJlY3QgcG9zaXRpb24uXFxuSXQgY2FuIGJlIOKAuiAnICsgUE9TSVRJT05TKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKElTTU9CSUxFIHx8IHdpbmRvdy5pbm5lcldpZHRoIDw9IE1PQklMRVdJRFRIKXtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21MZWZ0JyB8fCBzZXR0aW5ncy5wb3NpdGlvbiA9PSAnYm90dG9tUmlnaHQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21DZW50ZXInKXtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb24gPSBQTFVHSU5fTkFNRSsnLXdyYXBwZXItYm90dG9tQ2VudGVyJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2UgaWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcgfHwgc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcENlbnRlcicpe1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbiA9IFBMVUdJTl9OQU1FKyctd3JhcHBlci10b3BDZW50ZXInO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLWNlbnRlcic7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLScrcG9zaXRpb247XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nICsgUExVR0lOX05BTUUgKyAnLXdyYXBwZXIuJytwb3NpdGlvbik7XHJcblxyXG5cdFx0XHRcdGlmKCEkRE9NLndyYXBwZXIpIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXdyYXBwZXInKTtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5jbGFzc0xpc3QuYWRkKHBvc2l0aW9uKTtcclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJERPTS53cmFwcGVyKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BDZW50ZXInIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcpe1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmluc2VydEJlZm9yZSgkRE9NLnRvYXN0Q2Fwc3VsZSwgJERPTS53cmFwcGVyLmZpcnN0Q2hpbGQpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuYXBwZW5kQ2hpbGQoJERPTS50b2FzdENhcHN1bGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkpIHtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuc3R5bGUuekluZGV4ID0gc2V0dGluZ3MuemluZGV4O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnNvbGUud2FybignWycrUExVR0lOX05BTUUrJ10gSW52YWxpZCB6SW5kZXguJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0Ly8gT3ZlcmxheVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5KSB7XHJcblxyXG5cdFx0XHRcdGlmKCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXkuZmFkZUluJykgIT09IG51bGwgKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXknKTtcclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJywgJERPTS5vdmVybGF5LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKSArICcsJyArIHNldHRpbmdzLlJFRik7XHJcblxyXG5cdFx0XHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkgJiYgc2V0dGluZ3MuemluZGV4ICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdCRET00ub3ZlcmxheS5zdHlsZS56SW5kZXggPSBzZXR0aW5ncy56aW5kZXgtMTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2ZhZGVJbicpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5vdmVybGF5Q29sb3I7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHNldHRpbmdzLlJFRik7XHJcblx0XHRcdFx0XHRpZighaXNOYU4oc2V0dGluZ3MuemluZGV4KSAmJiBzZXR0aW5ncy56aW5kZXggIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLnpJbmRleCA9IHNldHRpbmdzLnppbmRleC0xO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZENoaWxkKCRET00ub3ZlcmxheSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5Q2xvc2UpIHtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB7fSk7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmhpZGUoJERPTS50b2FzdCwgc2V0dGluZ3MsICdvdmVybGF5Jyk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywge30pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEluc2lkZSBhbmltYXRpb25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYW5pbWF0ZUluc2lkZSl7XHJcblx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctYW5pbWF0ZUluc2lkZScpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR2YXIgYW5pbWF0aW9uVGltZXMgPSBbMjAwLCAxMDAsIDMwMF07XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudHJhbnNpdGlvbkluID09ICdib3VuY2VJbkxlZnQnKXtcclxuXHRcdFx0XHRcdGFuaW1hdGlvblRpbWVzID0gWzQwMCwgMjAwLCA0MDBdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5jbGFzc0xpc3QuYWRkKCdzbGlkZUluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1swXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLmNsYXNzTGlzdC5hZGQoJ3NsaWRlSW4nKTtcclxuXHRcdFx0XHRcdH0sIGFuaW1hdGlvblRpbWVzWzFdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmljb24pIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5pY29uLmNsYXNzTGlzdC5hZGQoJ3JldmVhbEluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1syXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5idXR0b25zLmxlbmd0aCA+IDAgJiYgJERPTS5idXR0b25zKSB7XHJcblx0XHRcdFx0XHR2YXIgY291bnRlciA9IDE1MDtcclxuXHRcdFx0XHRcdGZvckVhY2goJERPTS5idXR0b25zLmNoaWxkTm9kZXMsIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcblxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZXZlYWxJbicpO1xyXG5cdFx0XHRcdFx0XHR9LCBjb3VudGVyKTtcclxuXHRcdFx0XHRcdFx0Y291bnRlciA9IGNvdW50ZXIgKyAxNTA7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0c2V0dGluZ3Mub25PcGVuaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJERPTS50b2FzdF0pO1xyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmluZycsIHtkZXRhaWw6IHNldHRpbmdzLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlfSk7XHJcblx0XHRcdGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG5cdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdGNvbnNvbGUud2FybihleCk7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLW9wZW5pbmcnKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmVkJyk7XHJcblxyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmVkJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0XHRkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuXHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c2V0dGluZ3Mub25PcGVuZWQuYXBwbHkobnVsbCwgW3NldHRpbmdzLCAkRE9NLnRvYXN0XSk7XHJcblx0XHR9LCAxMDAwKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy5kcmFnKXtcclxuXHJcblx0XHRcdGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgICAgICBkcmFnLnN0YXJ0TW92aW5nKHRoaXMsIHRoYXQsIHNldHRpbmdzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RhcnRNb3ZpbmcodGhpcywgdGhhdCwgc2V0dGluZ3MsIGUpO1xyXG5cdFx0XHQgICAgfSwgZmFsc2UpO1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmKHNldHRpbmdzLmNsb3NlT25Fc2NhcGUpIHtcclxuXHJcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgZnVuY3Rpb24gKGV2dCkge1xyXG5cdFx0XHRcdGV2dCA9IGV2dCB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0XHRcdFx0aWYoZXZ0LmtleUNvZGUgPT0gMjcpIHtcclxuXHRcdFx0XHQgICAgdGhhdC5oaWRlKCRET00udG9hc3QsIHNldHRpbmdzLCAnZXNjJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGF0LnRvYXN0ID0gJERPTS50b2FzdDtcdFx0XHJcblx0fTtcclxuXHRcclxuXHJcblx0cmV0dXJuICRpemlUb2FzdDtcclxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaXppdG9hc3QvZGlzdC9qcy9pemlUb2FzdC5qc1xuLy8gbW9kdWxlIGlkID0gNDU2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///456\n");
/***/ })
diff --git a/Step/wwwroot/dist/build.js b/Step/wwwroot/dist/build.js
index 87ce2fc2..d44ad5d9 100644
--- a/Step/wwwroot/dist/build.js
+++ b/Step/wwwroot/dist/build.js
@@ -514,7 +514,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TestHeader = exports.TestEmpty = exports.TestLoader = exports.Home = exports.alarmList = exports.AxesCalibration = exports.MachineInfoDialog = exports.UserInfoDialog = exports.Login = exports.Footer = exports.Header = exports.LocalizationService = exports.LoginService = undefined;\n\nvar _loginService = __webpack_require__(152);\n\nvar _localizationService = __webpack_require__(149);\n\nvar _appHeader = __webpack_require__(383);\n\nvar _appHeader2 = _interopRequireDefault(_appHeader);\n\nvar _appFooter = __webpack_require__(406);\n\nvar _appFooter2 = _interopRequireDefault(_appFooter);\n\nvar _login = __webpack_require__(409);\n\nvar _login2 = _interopRequireDefault(_login);\n\nvar _alarmsList = __webpack_require__(415);\n\nvar _alarmsList2 = _interopRequireDefault(_alarmsList);\n\nvar _userInfoDialog = __webpack_require__(422);\n\nvar _userInfoDialog2 = _interopRequireDefault(_userInfoDialog);\n\nvar _machineInfoDialog = __webpack_require__(427);\n\nvar _machineInfoDialog2 = _interopRequireDefault(_machineInfoDialog);\n\nvar _axesCalibrationDialog = __webpack_require__(430);\n\nvar _axesCalibrationDialog2 = _interopRequireDefault(_axesCalibrationDialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.LoginService = _loginService.LoginService;\nexports.LocalizationService = _localizationService.LocalizationService;\nexports.Header = _appHeader2.default;\nexports.Footer = _appFooter2.default;\nexports.Login = _login2.default;\nexports.UserInfoDialog = _userInfoDialog2.default;\nexports.MachineInfoDialog = _machineInfoDialog2.default;\nexports.AxesCalibration = _axesCalibrationDialog2.default;\nexports.alarmList = _alarmsList2.default;\n\n// Page and modules\n// GLobal services\n\nvar Home = exports.Home = function Home() {\n return __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, 438));\n};\n\n// Test pages\nvar TestLoader = exports.TestLoader = function TestLoader() {\n return __webpack_require__.e/* import() */(3).then(__webpack_require__.bind(null, 439));\n};\nvar TestEmpty = exports.TestEmpty = function TestEmpty() {\n return __webpack_require__.e/* import() */(4).then(__webpack_require__.bind(null, 440));\n};\n\nvar TestHeader = exports.TestHeader = function TestHeader() {\n return __webpack_require__.e/* import() */(2).then(__webpack_require__.bind(null, 441));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2FwcC5tb2R1bGVzLmpzPzdhZjkiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gR0xvYmFsIHNlcnZpY2VzXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9sb2dpblNlcnZpY2VcIjtcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb25TZXJ2aWNlXCI7XG5cblxuXG5cbi8vIFBhZ2UgYW5kIG1vZHVsZXNcbmltcG9ydCBIZWFkZXIgZnJvbSBcIi4vbW9kdWxlcy9hcHAtaGVhZGVyLnZ1ZVwiO1xuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi9tb2R1bGVzL2FwcC1mb290ZXIudnVlXCI7XG5pbXBvcnQgTG9naW4gZnJvbSBcIi4vbW9kdWxlcy9sb2dpbi52dWVcIjtcbmltcG9ydCBhbGFybUxpc3QgZnJvbSBcIi4vbW9kdWxlcy9hbGFybXMtbGlzdC52dWVcIjtcbmltcG9ydCBVc2VySW5mb0RpYWxvZyBmcm9tIFwiLi9tb2R1bGVzL3VzZXItaW5mby1kaWFsb2cudnVlXCI7XG5pbXBvcnQgTWFjaGluZUluZm9EaWFsb2cgZnJvbSBcIi4vbW9kdWxlcy9tYWNoaW5lLWluZm8tZGlhbG9nLnZ1ZVwiO1xuaW1wb3J0IEF4ZXNDYWxpYnJhdGlvbiBmcm9tIFwiLi9tb2R1bGVzL2F4ZXMtY2FsaWJyYXRpb24tZGlhbG9nLnZ1ZVwiO1xuXG5leHBvcnQge1xuICAgIExvZ2luU2VydmljZSxcbiAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIEhlYWRlcixcbiAgICBGb290ZXIsXG4gICAgTG9naW4sXG4gICAgVXNlckluZm9EaWFsb2csXG4gICAgTWFjaGluZUluZm9EaWFsb2csXG4gICAgQXhlc0NhbGlicmF0aW9uLFxuICAgIGFsYXJtTGlzdFxufVxuXG5leHBvcnQgY29uc3QgSG9tZSA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vY29tcG9uZW50cy9Ib21lLnZ1ZVwiKTtcblxuLy8gVGVzdCBwYWdlc1xuZXhwb3J0IGNvbnN0IFRlc3RMb2FkZXIgPSAoKSA9PlxuICAgIGltcG9ydCAoXCIuL2NvbXBvbmVudHMvdGVzdC1sb2FkZXIudnVlXCIpO1xuZXhwb3J0IGNvbnN0IFRlc3RFbXB0eSA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vY29tcG9uZW50cy90ZXN0LWVtcHR5LnZ1ZVwiKTtcblxuZXhwb3J0IGNvbnN0IFRlc3RIZWFkZXIgPSAoKSA9PlxuICAgIGltcG9ydCAoXCIuL2NvbXBvbmVudHMvdGVzdC1zdGF0dXMudnVlXCIpO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvYXBwLm1vZHVsZXMuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuQkE7QUFQQTtBQUNBO0FBMkJBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TestHeader = exports.TestEmpty = exports.TestLoader = exports.Home = exports.alarmList = exports.AxesCalibration = exports.MachineInfoDialog = exports.UserInfoDialog = exports.Login = exports.Footer = exports.Header = exports.LocalizationService = exports.LoginService = undefined;\n\nvar _loginService = __webpack_require__(152);\n\nvar _localizationService = __webpack_require__(149);\n\nvar _appHeader = __webpack_require__(383);\n\nvar _appHeader2 = _interopRequireDefault(_appHeader);\n\nvar _appFooter = __webpack_require__(406);\n\nvar _appFooter2 = _interopRequireDefault(_appFooter);\n\nvar _login = __webpack_require__(409);\n\nvar _login2 = _interopRequireDefault(_login);\n\nvar _alarmsList = __webpack_require__(415);\n\nvar _alarmsList2 = _interopRequireDefault(_alarmsList);\n\nvar _userInfoDialog = __webpack_require__(422);\n\nvar _userInfoDialog2 = _interopRequireDefault(_userInfoDialog);\n\nvar _machineInfoDialog = __webpack_require__(427);\n\nvar _machineInfoDialog2 = _interopRequireDefault(_machineInfoDialog);\n\nvar _axesCalibrationDialog = __webpack_require__(430);\n\nvar _axesCalibrationDialog2 = _interopRequireDefault(_axesCalibrationDialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.LoginService = _loginService.LoginService;\nexports.LocalizationService = _localizationService.LocalizationService;\nexports.Header = _appHeader2.default;\nexports.Footer = _appFooter2.default;\nexports.Login = _login2.default;\nexports.UserInfoDialog = _userInfoDialog2.default;\nexports.MachineInfoDialog = _machineInfoDialog2.default;\nexports.AxesCalibration = _axesCalibrationDialog2.default;\nexports.alarmList = _alarmsList2.default;\n\n// Page and modules\n// GLobal services\n\nvar Home = exports.Home = function Home() {\n return __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, 438));\n};\n\n// Test pages\nvar TestLoader = exports.TestLoader = function TestLoader() {\n return __webpack_require__.e/* import() */(3).then(__webpack_require__.bind(null, 439));\n};\nvar TestEmpty = exports.TestEmpty = function TestEmpty() {\n return __webpack_require__.e/* import() */(4).then(__webpack_require__.bind(null, 440));\n};\n\nvar TestHeader = exports.TestHeader = function TestHeader() {\n return __webpack_require__.e/* import() */(2).then(__webpack_require__.bind(null, 441));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2FwcC5tb2R1bGVzLmpzPzdhZjkiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gR0xvYmFsIHNlcnZpY2VzXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9sb2dpblNlcnZpY2VcIjtcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb25TZXJ2aWNlXCI7XG5cblxuXG5cbi8vIFBhZ2UgYW5kIG1vZHVsZXNcbmltcG9ydCBIZWFkZXIgZnJvbSBcIi4vbW9kdWxlcy9hcHAtaGVhZGVyLnZ1ZVwiO1xuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi9tb2R1bGVzL2FwcC1mb290ZXIudnVlXCI7XG5pbXBvcnQgTG9naW4gZnJvbSBcIi4vbW9kdWxlcy9sb2dpbi52dWVcIjtcbmltcG9ydCBhbGFybUxpc3QgZnJvbSBcIi4vbW9kdWxlcy9hbGFybXMtbGlzdC52dWVcIjtcbmltcG9ydCBVc2VySW5mb0RpYWxvZyBmcm9tIFwiLi9tb2R1bGVzL3VzZXItaW5mby1kaWFsb2cudnVlXCI7XG5pbXBvcnQgTWFjaGluZUluZm9EaWFsb2cgZnJvbSBcIi4vbW9kdWxlcy9tYWNoaW5lLWluZm8tZGlhbG9nLnZ1ZVwiO1xuaW1wb3J0IEF4ZXNDYWxpYnJhdGlvbiBmcm9tIFwiLi9tb2R1bGVzL2F4ZXMtY2FsaWJyYXRpb24tZGlhbG9nLnZ1ZVwiO1xuXG5leHBvcnQge1xuICAgIExvZ2luU2VydmljZSxcbiAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIEhlYWRlcixcbiAgICBGb290ZXIsXG4gICAgTG9naW4sXG4gICAgVXNlckluZm9EaWFsb2csXG4gICAgTWFjaGluZUluZm9EaWFsb2csXG4gICAgQXhlc0NhbGlicmF0aW9uLFxuICAgIGFsYXJtTGlzdFxufVxuXG5leHBvcnQgY29uc3QgSG9tZSA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vY29tcG9uZW50cy9Ib21lLnZ1ZVwiKTtcblxuLy8gVGVzdCBwYWdlc1xuZXhwb3J0IGNvbnN0IFRlc3RMb2FkZXIgPSAoKSA9PlxuICAgIGltcG9ydCAoXCIuL2NvbXBvbmVudHMvdGVzdC1sb2FkZXIudnVlXCIpO1xuZXhwb3J0IGNvbnN0IFRlc3RFbXB0eSA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vY29tcG9uZW50cy90ZXN0LWVtcHR5LnZ1ZVwiKTtcblxuZXhwb3J0IGNvbnN0IFRlc3RIZWFkZXIgPSAoKSA9PlxuICAgIGltcG9ydCAoXCIuL2NvbXBvbmVudHMvdGVzdC1zdGF0dXMudnVlXCIpO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvYXBwLm1vZHVsZXMuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuQkE7QUFQQTtBQUNBO0FBMkJBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59\n");
/***/ }),
/* 60 */
@@ -1014,7 +1014,7 @@ eval("// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports =
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DataResponse = exports.AuthToken = exports.baseRestService = exports.sharedInterceptors = exports.interceptorsConfig = undefined;\nexports.to = to;\n\nvar _axios = __webpack_require__(362);\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _factoryService = __webpack_require__(57);\n\nvar _factoryService2 = _interopRequireDefault(_factoryService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __extends = undefined && undefined.__extends || function () {\n var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = undefined && undefined.__generator || function (thisArg, body) {\n var _ = { label: 0, sent: function sent() {\n if (t[0] & 1) throw t[1];return t[1];\n }, trys: [], ops: [] },\n f,\n y,\n t,\n g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0:case 1:\n t = op;break;\n case 4:\n _.label++;return { value: op[1], done: false };\n case 5:\n _.label++;y = op[1];op = [0];continue;\n case 7:\n op = _.ops.pop();_.trys.pop();continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];t = op;break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];_.ops.push(op);break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];y = 0;\n } finally {\n f = t = 0;\n }\n }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar interceptorsConfig = /** @class */function () {\n function interceptorsConfig() {\n this.requestInterceptors = [];\n this.responseInterceptors = [];\n }\n return interceptorsConfig;\n}();\nexports.interceptorsConfig = interceptorsConfig;\n\nvar sharedInterceptors = /** @class */function (_super) {\n __extends(sharedInterceptors, _super);\n function sharedInterceptors() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n sharedInterceptors.prototype.addRequestInterceptor = function (item) {\n this.requestInterceptors.push(item);\n if (this.onRequestInterceptorChanged) this.onRequestInterceptorChanged(item);\n };\n sharedInterceptors.prototype.addresponseInterceptor = function (item) {\n this.responseInterceptors.push(item);\n if (this.onResponseInterceptorChanged) this.onResponseInterceptorChanged(item);\n };\n return sharedInterceptors;\n}(interceptorsConfig);\nexports.sharedInterceptors = sharedInterceptors;\n\n_factoryService2.default.Register(sharedInterceptors);\nfunction to(promise) {\n return promise.then(function (data) {\n return data;\n }).catch(function (err) {\n return err.response;\n });\n}\nvar baseRestService = /** @class */function () {\n function baseRestService() {\n var _this = this;\n this.allwaysSendAuthenticationToken = false;\n this.saveToSessionStorage = false;\n this.baseUrl = \"\";\n this.http = _axios2.default.create();\n this._interceptors = _factoryService2.default.Get(sharedInterceptors);\n // Initialize preregistered interceptors\n for (var i in this._interceptors.requestInterceptors) {\n this.http.interceptors.request.use(this._interceptors.requestInterceptors[i]);\n }for (var i in this._interceptors.responseInterceptors) {\n this.http.interceptors.response.use(this._interceptors.responseInterceptors[i]);\n }this._interceptors.onRequestInterceptorChanged = function (i) {\n return _this.http.interceptors.request.use(i);\n };\n this._interceptors.onResponseInterceptorChanged = function (i) {\n return _this.http.interceptors.response.use(i);\n };\n }\n Object.defineProperty(baseRestService.prototype, \"interceptors\", {\n set: function set(value) {\n for (var i in value.requestInterceptors) {\n this.http.interceptors.request.use(value.requestInterceptors[i]);\n }for (var i in value.responseInterceptors) {\n this.http.interceptors.response.use(value.responseInterceptors[i]);\n }\n },\n enumerable: true,\n configurable: true\n });\n baseRestService.prototype.get = function (uri, sendAuthenticationToken, params) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n if (params === void 0) {\n params = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.get(this.baseUrl + uri, {\n headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, false),\n params: params\n }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n ;\n baseRestService.prototype.Get = function (uri, sendAuthenticationToken, params) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n if (params === void 0) {\n params = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.get(uri, sendAuthenticationToken, params)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.post = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.post(this.baseUrl + uri, data, { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, true) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n ;\n baseRestService.prototype.Post = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.post(uri, data, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.put = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.put(this.baseUrl + uri, JSON.stringify(data), { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, true) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n baseRestService.prototype.Put = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.put(uri, data, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.delete = function (uri, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.delete(this.baseUrl + uri, { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, false) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n baseRestService.prototype.Delete = function (uri, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.delete(uri, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.prepareHeaders = function (auth, json) {\n if (auth === void 0) {\n auth = false;\n }\n if (json === void 0) {\n json = false;\n }\n var headers = {};\n if (auth) {\n var authData = JSON.parse((this.saveToSessionStorage ? window.sessionStorage.getItem(\"authorizationData\") : window.localStorage.getItem(\"authorizationData\")) || null);\n if (authData) {\n headers[\"Authorization\"] = 'Bearer ' + authData.access_token;\n // headers.append('Authorization', 'Bearer ' + authData.access_token);\n }\n }\n // if (json) headers.append('Content-Type', 'application/json');\n if (json) headers['Content-Type'] = 'application/json';\n if (this.OnHeadersPreparing) this.OnHeadersPreparing(headers);\n return headers;\n };\n baseRestService.prototype.getAuthenticationToken = function () {\n var wstore = window.sessionStorage;\n var sstore = window.localStorage;\n return JSON.parse(wstore.getItem(\"authorizationData\") || sstore.getItem(\"authorizationData\") || null);\n };\n baseRestService.prototype.setAuthenticationToken = function (data) {\n var storage = this.saveToSessionStorage ? window.sessionStorage : window.localStorage;\n storage.setItem(\"authorizationData\", JSON.stringify(data));\n };\n baseRestService.prototype.deleteAuthenticationToken = function () {\n window.sessionStorage.setItem(\"authorizationData\", null);\n window.localStorage.setItem(\"authorizationData\", null);\n };\n return baseRestService;\n}();\nexports.baseRestService = baseRestService;\n\nvar AuthToken = /** @class */function () {\n function AuthToken() {}\n return AuthToken;\n}();\nexports.AuthToken = AuthToken;\n\nvar DataResponse = /** @class */function () {\n function DataResponse() {}\n return DataResponse;\n}();\nexports.DataResponse = DataResponse;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTM4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL19iYXNlL2Jhc2VSZXN0U2VydmljZS50cz9hMThhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBeGlvcywgeyBBeGlvc0luc3RhbmNlLCBBeGlvc1Byb21pc2UsIEF4aW9zUmVzcG9uc2UsIEF4aW9zQmFzaWNDcmVkZW50aWFscywgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgRmFjdG9yeSBmcm9tIFwiLi9mYWN0b3J5U2VydmljZVwiO1xuXG5pbnRlcmZhY2UgSW50ZXJjZXB0b3JSZXF1ZXN0RGVsZWdhdGUgeyAoY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcpOiBBeGlvc1JlcXVlc3RDb25maWc7IH1cbmludGVyZmFjZSBJbnRlcmNlcHRvclJlc3BvbnNlRGVsZWdhdGUgeyAoY29uZmlnOiBBeGlvc1Jlc3BvbnNlKTogQXhpb3NSZXNwb25zZTsgfVxuaW50ZXJmYWNlIFJlcXVlc3RJbnRlcmNlcHRvckNoYW5nZWREZWxlZ2F0ZSB7IChpdGVtOiBJbnRlcmNlcHRvclJlcXVlc3REZWxlZ2F0ZSk6IHZvaWQ7IH1cbmludGVyZmFjZSBSZXNwb25zZUludGVyY2VwdG9yQ2hhbmdlZERlbGVnYXRlIHsgKGl0ZW06IEludGVyY2VwdG9yUmVzcG9uc2VEZWxlZ2F0ZSk6IHZvaWQ7IH1cblxuZXhwb3J0IGNsYXNzIGludGVyY2VwdG9yc0NvbmZpZyB7XG4gIHJlcXVlc3RJbnRlcmNlcHRvcnM6IEludGVyY2VwdG9yUmVxdWVzdERlbGVnYXRlW10gPSBbXTtcbiAgcmVzcG9uc2VJbnRlcmNlcHRvcnM6IEludGVyY2VwdG9yUmVzcG9uc2VEZWxlZ2F0ZVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBzaGFyZWRJbnRlcmNlcHRvcnMgZXh0ZW5kcyBpbnRlcmNlcHRvcnNDb25maWcge1xuXG5cbiAgYWRkUmVxdWVzdEludGVyY2VwdG9yKGl0ZW06IEludGVyY2VwdG9yUmVxdWVzdERlbGVnYXRlKSB7XG4gICAgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2goaXRlbSk7XG5cbiAgICBpZiAodGhpcy5vblJlcXVlc3RJbnRlcmNlcHRvckNoYW5nZWQpIHRoaXMub25SZXF1ZXN0SW50ZXJjZXB0b3JDaGFuZ2VkKGl0ZW0pO1xuICB9XG5cbiAgYWRkcmVzcG9uc2VJbnRlcmNlcHRvcihpdGVtOiBJbnRlcmNlcHRvclJlc3BvbnNlRGVsZWdhdGUpIHtcbiAgICB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLnB1c2goaXRlbSk7XG5cbiAgICBpZiAodGhpcy5vblJlc3BvbnNlSW50ZXJjZXB0b3JDaGFuZ2VkKSB0aGlzLm9uUmVzcG9uc2VJbnRlcmNlcHRvckNoYW5nZWQoaXRlbSk7XG4gIH1cblxuICBvblJlcXVlc3RJbnRlcmNlcHRvckNoYW5nZWQ6IFJlcXVlc3RJbnRlcmNlcHRvckNoYW5nZWREZWxlZ2F0ZTtcbiAgb25SZXNwb25zZUludGVyY2VwdG9yQ2hhbmdlZDogUmVzcG9uc2VJbnRlcmNlcHRvckNoYW5nZWREZWxlZ2F0ZTtcbn1cbkZhY3RvcnkuUmVnaXN0ZXIoc2hhcmVkSW50ZXJjZXB0b3JzKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvKHByb21pc2UpIHtcbiAgcmV0dXJuIHByb21pc2UudGhlbihkYXRhID0+IGRhdGEpXG4gICAgLmNhdGNoKGVyciA9PiBlcnIucmVzcG9uc2UpO1xufVxuXG5leHBvcnQgY2xhc3MgYmFzZVJlc3RTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgYWxsd2F5c1NlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzYXZlVG9TZXNzaW9uU3RvcmFnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pbnRlcmNlcHRvcnM6IHNoYXJlZEludGVyY2VwdG9ycztcblxuICBzZXQgaW50ZXJjZXB0b3JzKHZhbHVlOiBpbnRlcmNlcHRvcnNDb25maWcpIHtcbiAgICBmb3IgKGxldCBpIGluIHZhbHVlLnJlcXVlc3RJbnRlcmNlcHRvcnMpXG4gICAgICB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKHZhbHVlLnJlcXVlc3RJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgZm9yIChsZXQgaSBpbiB2YWx1ZS5yZXNwb25zZUludGVyY2VwdG9ycylcbiAgICAgIHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKHZhbHVlLnJlc3BvbnNlSW50ZXJjZXB0b3JzW2ldKTtcbiAgfVxuXG4gIGJhc2VVcmw6IHN0cmluZyA9IFwiXCI7XG4gIE9uRXJyb3I6IE9uRXJyb3JEZWxlZ2F0ZTtcbiAgT25IZWFkZXJzUHJlcGFyaW5nOiBPbkhlYWRlcnNQcmVwYXJpbmdEZWxlZ2F0ZTtcblxuICBwcm90ZWN0ZWQgaHR0cDogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuaHR0cCA9IEF4aW9zLmNyZWF0ZSgpO1xuICAgIHRoaXMuX2ludGVyY2VwdG9ycyA9IEZhY3RvcnkuR2V0KHNoYXJlZEludGVyY2VwdG9ycyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHByZXJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gICAgZm9yIChsZXQgaSBpbiB0aGlzLl9pbnRlcmNlcHRvcnMucmVxdWVzdEludGVyY2VwdG9ycylcbiAgICAgIHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UodGhpcy5faW50ZXJjZXB0b3JzLnJlcXVlc3RJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgZm9yIChsZXQgaSBpbiB0aGlzLl9pbnRlcmNlcHRvcnMucmVzcG9uc2VJbnRlcmNlcHRvcnMpXG4gICAgICB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZSh0aGlzLl9pbnRlcmNlcHRvcnMucmVzcG9uc2VJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgdGhpcy5faW50ZXJjZXB0b3JzLm9uUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZCA9IChpKSA9PiB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKGkpO1xuICAgIHRoaXMuX2ludGVyY2VwdG9ycy5vblJlc3BvbnNlSW50ZXJjZXB0b3JDaGFuZ2VkID0gKGkpID0+IHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKGkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldCh1cmk6IHN0cmluZywgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSwgcGFyYW1zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8QXhpb3NSZXNwb25zZT4ge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRvKHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJpLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKHRoaXMuYWxsd2F5c1NlbmRBdXRoZW50aWNhdGlvblRva2VuIHx8IHNlbmRBdXRoZW50aWNhdGlvblRva2VuLCBmYWxzZSksXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9IGFzIEF4aW9zUmVxdWVzdENvbmZpZykpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwICYmIHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGFzeW5jIEdldDxUUmVzdWx0Pih1cmk6IHN0cmluZywgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSwgcGFyYW1zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8VFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldCh1cmksIHNlbmRBdXRoZW50aWNhdGlvblRva2VuLCBwYXJhbXMpO1xuICAgIGlmIChyZXN1bHQuc3RhdHVzID09IDIwMClcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YSBhcyBUUmVzdWx0O1xuICAgIGVsc2UgaWYgKHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3VsdCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcG9zdCh1cmk6IHN0cmluZywgZGF0YTogYW55LCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbjogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxBeGlvc1Jlc3BvbnNlPiB7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0byh0aGlzLmh0dHAucG9zdCh0aGlzLmJhc2VVcmwgKyB1cmksIGRhdGEsXG4gICAgICB7IGhlYWRlcnM6IHRoaXMucHJlcGFyZUhlYWRlcnModGhpcy5hbGx3YXlzU2VuZEF1dGhlbnRpY2F0aW9uVG9rZW4gfHwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW4sIHRydWUpIH0pKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCAmJiB0aGlzLk9uRXJyb3IpIHRoaXMuT25FcnJvcihyZXNwb25zZSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIH07XG5cbiAgcHJvdGVjdGVkIGFzeW5jIFBvc3Q8VFJlc3VsdD4odXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvc3QodXJpLCBkYXRhLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8QXhpb3NSZXNwb25zZT4ge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRvKHRoaXMuaHR0cC5wdXQodGhpcy5iYXNlVXJsICsgdXJpLCBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyh0aGlzLmFsbHdheXNTZW5kQXV0aGVudGljYXRpb25Ub2tlbiB8fCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbiwgdHJ1ZSkgfSkpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwICYmIHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgUHV0PFRSZXN1bHQ+KHVyaTogc3RyaW5nLCBkYXRhOiBhbnksIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5wdXQodXJpLCBkYXRhLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGUodXJpOiBzdHJpbmcsIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPEF4aW9zUmVzcG9uc2U+IHtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0byh0aGlzLmh0dHAuZGVsZXRlKHRoaXMuYmFzZVVybCArIHVyaSxcbiAgICAgIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyh0aGlzLmFsbHdheXNTZW5kQXV0aGVudGljYXRpb25Ub2tlbiB8fCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbiwgZmFsc2UpIH0pKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCAmJiB0aGlzLk9uRXJyb3IpIHRoaXMuT25FcnJvcihyZXNwb25zZSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBEZWxldGU8VFJlc3VsdD4odXJpOiBzdHJpbmcsIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5kZWxldGUodXJpLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUhlYWRlcnMoYXV0aDogYm9vbGVhbiA9IGZhbHNlLCBqc29uOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xuXG4gICAgbGV0IGhlYWRlcnMgPSB7fVxuICAgIGlmIChhdXRoKSB7XG5cbiAgICAgIGxldCBhdXRoRGF0YSA9IEpTT04ucGFyc2UoKHRoaXMuc2F2ZVRvU2Vzc2lvblN0b3JhZ2UgPyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImF1dGhvcml6YXRpb25EYXRhXCIpIDogd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aG9yaXphdGlvbkRhdGFcIikpIHx8IG51bGwpIGFzIEF1dGhUb2tlbjtcbiAgICAgIGlmIChhdXRoRGF0YSkge1xuICAgICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9ICdCZWFyZXIgJyArIGF1dGhEYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgLy8gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiAoanNvbikgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgaWYgKGpzb24pIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gICdhcHBsaWNhdGlvbi9qc29uJztcblxuXG4gICAgaWYgKHRoaXMuT25IZWFkZXJzUHJlcGFyaW5nKSB0aGlzLk9uSGVhZGVyc1ByZXBhcmluZyhoZWFkZXJzKTtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBdXRoZW50aWNhdGlvblRva2VuKCk6IEF1dGhUb2tlbiB7XG4gICAgbGV0IHdzdG9yZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZTtcbiAgICBsZXQgc3N0b3JlID0gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh3c3RvcmUuZ2V0SXRlbShcImF1dGhvcml6YXRpb25EYXRhXCIpIHx8IHNzdG9yZS5nZXRJdGVtKFwiYXV0aG9yaXphdGlvbkRhdGFcIikgfHwgbnVsbCkgYXMgQXV0aFRva2VuXG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0QXV0aGVudGljYXRpb25Ub2tlbihkYXRhOiBBdXRoVG9rZW4pIHtcbiAgICBsZXQgc3RvcmFnZTogYW55ID0gdGhpcy5zYXZlVG9TZXNzaW9uU3RvcmFnZSA/IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSA6IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gICAgc3RvcmFnZS5zZXRJdGVtKFwiYXV0aG9yaXphdGlvbkRhdGFcIiwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlbGV0ZUF1dGhlbnRpY2F0aW9uVG9rZW4oKSB7XG4gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJhdXRob3JpemF0aW9uRGF0YVwiLCBudWxsKTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhdXRob3JpemF0aW9uRGF0YVwiLCBudWxsKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uRXJyb3JEZWxlZ2F0ZSB7IChkYXRhOiBEYXRhUmVzcG9uc2UpOiB2b2lkOyB9XG5pbnRlcmZhY2UgT25IZWFkZXJzUHJlcGFyaW5nRGVsZWdhdGUgeyAoaGVhZGVyczogYW55KTogdm9pZDsgfVxuXG5leHBvcnQgY2xhc3MgQXV0aFRva2VuIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgdXNlck5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFSZXNwb25zZSB7XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIGRhdGE6IGFueTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9fYmFzZS9iYXNlUmVzdFNlcnZpY2UudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSEE7OztBQUtBO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBZEE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBakJBOzs7QUFrQkE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBb0JBO0FBQUE7QUFsQkE7QUFDQTtBQVdBO0FBUUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQTVCQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUVBOztBQUFBOztBQXdCQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7Ozs7OztBQUNBO0FBRUE7QUFDQTtBQUZBOztBQURBO0FBS0E7QUFDQTs7OztBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBQ0E7QUFHQTs7OztBQUNBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7O0FBRUE7O0FBQUE7QUFFQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUVBO0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBQ0E7QUFHQTs7OztBQUNBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7O0FBQ0E7O0FBQUE7QUFFQTtBQUNBOzs7O0FBQ0E7QUFFQTtBQUFBO0FBQUE7Ozs7Ozs7QUFDQTs7QUFBQTtBQUNBO0FBR0E7Ozs7QUFDQTtBQUVBO0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBRUE7QUFDQTs7OztBQUNBO0FBQ0E7QUFBQTtBQUFBOzs7Ozs7O0FBQ0E7O0FBQUE7QUFDQTtBQUdBOzs7O0FBQ0E7QUFFQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0SUE7OztBQTJJQTtBQUFBO0FBSUE7QUFKQTs7O0FBTUE7QUFBQTtBQUlBO0FBSkE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///138\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DataResponse = exports.AuthToken = exports.baseRestService = exports.sharedInterceptors = exports.interceptorsConfig = undefined;\nexports.to = to;\n\nvar _axios = __webpack_require__(362);\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _factoryService = __webpack_require__(57);\n\nvar _factoryService2 = _interopRequireDefault(_factoryService);\n\nvar _izitoast = __webpack_require__(456);\n\nvar iziToast = _interopRequireWildcard(_izitoast);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __extends = undefined && undefined.__extends || function () {\n var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = undefined && undefined.__generator || function (thisArg, body) {\n var _ = { label: 0, sent: function sent() {\n if (t[0] & 1) throw t[1];return t[1];\n }, trys: [], ops: [] },\n f,\n y,\n t,\n g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0:case 1:\n t = op;break;\n case 4:\n _.label++;return { value: op[1], done: false };\n case 5:\n _.label++;y = op[1];op = [0];continue;\n case 7:\n op = _.ops.pop();_.trys.pop();continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];t = op;break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];_.ops.push(op);break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];y = 0;\n } finally {\n f = t = 0;\n }\n }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar interceptorsConfig = /** @class */function () {\n function interceptorsConfig() {\n this.requestInterceptors = [];\n this.responseInterceptors = [];\n }\n return interceptorsConfig;\n}();\nexports.interceptorsConfig = interceptorsConfig;\n\nvar sharedInterceptors = /** @class */function (_super) {\n __extends(sharedInterceptors, _super);\n function sharedInterceptors() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n sharedInterceptors.prototype.addRequestInterceptor = function (item) {\n this.requestInterceptors.push(item);\n if (this.onRequestInterceptorChanged) this.onRequestInterceptorChanged(item);\n };\n sharedInterceptors.prototype.addresponseInterceptor = function (item) {\n this.responseInterceptors.push(item);\n if (this.onResponseInterceptorChanged) this.onResponseInterceptorChanged(item);\n };\n return sharedInterceptors;\n}(interceptorsConfig);\nexports.sharedInterceptors = sharedInterceptors;\n\n_factoryService2.default.Register(sharedInterceptors);\nfunction to(promise) {\n return promise.then(function (data) {\n return data;\n }).catch(function (err) {\n return err.response;\n });\n}\nvar baseRestService = /** @class */function () {\n function baseRestService() {\n var _this = this;\n this.errorsToShow = [404, 500];\n this.allwaysSendAuthenticationToken = false;\n this.saveToSessionStorage = false;\n this.baseUrl = \"\";\n this.http = _axios2.default.create();\n this._interceptors = _factoryService2.default.Get(sharedInterceptors);\n // Initialize preregistered interceptors\n for (var i in this._interceptors.requestInterceptors) {\n this.http.interceptors.request.use(this._interceptors.requestInterceptors[i]);\n }for (var i in this._interceptors.responseInterceptors) {\n this.http.interceptors.response.use(this._interceptors.responseInterceptors[i]);\n }this._interceptors.onRequestInterceptorChanged = function (i) {\n return _this.http.interceptors.request.use(i);\n };\n this._interceptors.onResponseInterceptorChanged = function (i) {\n return _this.http.interceptors.response.use(i);\n };\n // toast exception interceptors\n this.http.interceptors.response.use(null, function (r) {\n if (!r.status) r = r.response;\n if (r.status >= 500 || _this.errorsToShow.indexOf(r.status) >= 0) {\n iziToast.error({\n title: r.config.url,\n message: r.statusText,\n theme: \"dark\",\n timeout: false\n });\n }\n console.log(r);\n return r;\n });\n }\n Object.defineProperty(baseRestService.prototype, \"interceptors\", {\n set: function set(value) {\n for (var i in value.requestInterceptors) {\n this.http.interceptors.request.use(value.requestInterceptors[i]);\n }for (var i in value.responseInterceptors) {\n this.http.interceptors.response.use(value.responseInterceptors[i]);\n }\n },\n enumerable: true,\n configurable: true\n });\n baseRestService.prototype.get = function (uri, sendAuthenticationToken, params) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n if (params === void 0) {\n params = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.get(this.baseUrl + uri, {\n headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, false),\n params: params\n }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n ;\n baseRestService.prototype.Get = function (uri, sendAuthenticationToken, params) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n if (params === void 0) {\n params = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.get(uri, sendAuthenticationToken, params)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.post = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.post(this.baseUrl + uri, data, { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, true) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n ;\n baseRestService.prototype.Post = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.post(uri, data, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.put = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.put(this.baseUrl + uri, JSON.stringify(data), { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, true) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n baseRestService.prototype.Put = function (uri, data, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.put(uri, data, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.delete = function (uri, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, to(this.http.delete(this.baseUrl + uri, { headers: this.prepareHeaders(this.allwaysSendAuthenticationToken || sendAuthenticationToken, false) }))];\n case 1:\n response = _a.sent();\n if (response.status != 200 && this.OnError) this.OnError(response);\n return [2 /*return*/, response];\n }\n });\n });\n };\n baseRestService.prototype.Delete = function (uri, sendAuthenticationToken) {\n if (sendAuthenticationToken === void 0) {\n sendAuthenticationToken = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.delete(uri, sendAuthenticationToken)];\n case 1:\n result = _a.sent();\n if (result.status == 200) return [2 /*return*/, result.data];else if (this.OnError) this.OnError(result);\n return [2 /*return*/, null];\n }\n });\n });\n };\n baseRestService.prototype.prepareHeaders = function (auth, json) {\n if (auth === void 0) {\n auth = false;\n }\n if (json === void 0) {\n json = false;\n }\n var headers = {};\n if (auth) {\n var authData = JSON.parse((this.saveToSessionStorage ? window.sessionStorage.getItem(\"authorizationData\") : window.localStorage.getItem(\"authorizationData\")) || null);\n if (authData) {\n headers[\"Authorization\"] = 'Bearer ' + authData.access_token;\n // headers.append('Authorization', 'Bearer ' + authData.access_token);\n }\n }\n // if (json) headers.append('Content-Type', 'application/json');\n if (json) headers['Content-Type'] = 'application/json';\n if (this.OnHeadersPreparing) this.OnHeadersPreparing(headers);\n return headers;\n };\n baseRestService.prototype.getAuthenticationToken = function () {\n var wstore = window.sessionStorage;\n var sstore = window.localStorage;\n return JSON.parse(wstore.getItem(\"authorizationData\") || sstore.getItem(\"authorizationData\") || null);\n };\n baseRestService.prototype.setAuthenticationToken = function (data) {\n var storage = this.saveToSessionStorage ? window.sessionStorage : window.localStorage;\n storage.setItem(\"authorizationData\", JSON.stringify(data));\n };\n baseRestService.prototype.deleteAuthenticationToken = function () {\n window.sessionStorage.setItem(\"authorizationData\", null);\n window.localStorage.setItem(\"authorizationData\", null);\n };\n return baseRestService;\n}();\nexports.baseRestService = baseRestService;\n\nvar AuthToken = /** @class */function () {\n function AuthToken() {}\n return AuthToken;\n}();\nexports.AuthToken = AuthToken;\n\nvar DataResponse = /** @class */function () {\n function DataResponse() {}\n return DataResponse;\n}();\nexports.DataResponse = DataResponse;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTM4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL19iYXNlL2Jhc2VSZXN0U2VydmljZS50cz9hMThhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBeGlvcywgeyBBeGlvc0luc3RhbmNlLCBBeGlvc1Byb21pc2UsIEF4aW9zUmVzcG9uc2UsIEF4aW9zQmFzaWNDcmVkZW50aWFscywgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgRmFjdG9yeSBmcm9tIFwiLi9mYWN0b3J5U2VydmljZVwiO1xuaW1wb3J0ICogYXMgaXppVG9hc3QgZnJvbSBcIml6aXRvYXN0XCI7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuL21lc3NhZ2VTZXJ2aWNlXCI7XG5cbmludGVyZmFjZSBJbnRlcmNlcHRvclJlcXVlc3REZWxlZ2F0ZSB7IChjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyk6IEF4aW9zUmVxdWVzdENvbmZpZzsgfVxuaW50ZXJmYWNlIEludGVyY2VwdG9yUmVzcG9uc2VEZWxlZ2F0ZSB7IChjb25maWc6IEF4aW9zUmVzcG9uc2UpOiBBeGlvc1Jlc3BvbnNlOyB9XG5pbnRlcmZhY2UgUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZERlbGVnYXRlIHsgKGl0ZW06IEludGVyY2VwdG9yUmVxdWVzdERlbGVnYXRlKTogdm9pZDsgfVxuaW50ZXJmYWNlIFJlc3BvbnNlSW50ZXJjZXB0b3JDaGFuZ2VkRGVsZWdhdGUgeyAoaXRlbTogSW50ZXJjZXB0b3JSZXNwb25zZURlbGVnYXRlKTogdm9pZDsgfVxuXG5leHBvcnQgY2xhc3MgaW50ZXJjZXB0b3JzQ29uZmlnIHtcbiAgcmVxdWVzdEludGVyY2VwdG9yczogSW50ZXJjZXB0b3JSZXF1ZXN0RGVsZWdhdGVbXSA9IFtdO1xuICByZXNwb25zZUludGVyY2VwdG9yczogSW50ZXJjZXB0b3JSZXNwb25zZURlbGVnYXRlW10gPSBbXTtcbn1cblxuZXhwb3J0IGNsYXNzIHNoYXJlZEludGVyY2VwdG9ycyBleHRlbmRzIGludGVyY2VwdG9yc0NvbmZpZyB7XG5cblxuICBhZGRSZXF1ZXN0SW50ZXJjZXB0b3IoaXRlbTogSW50ZXJjZXB0b3JSZXF1ZXN0RGVsZWdhdGUpIHtcbiAgICB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChpdGVtKTtcblxuICAgIGlmICh0aGlzLm9uUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZCkgdGhpcy5vblJlcXVlc3RJbnRlcmNlcHRvckNoYW5nZWQoaXRlbSk7XG4gIH1cblxuICBhZGRyZXNwb25zZUludGVyY2VwdG9yKGl0ZW06IEludGVyY2VwdG9yUmVzcG9uc2VEZWxlZ2F0ZSkge1xuICAgIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMucHVzaChpdGVtKTtcblxuICAgIGlmICh0aGlzLm9uUmVzcG9uc2VJbnRlcmNlcHRvckNoYW5nZWQpIHRoaXMub25SZXNwb25zZUludGVyY2VwdG9yQ2hhbmdlZChpdGVtKTtcbiAgfVxuXG4gIG9uUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZDogUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZERlbGVnYXRlO1xuICBvblJlc3BvbnNlSW50ZXJjZXB0b3JDaGFuZ2VkOiBSZXNwb25zZUludGVyY2VwdG9yQ2hhbmdlZERlbGVnYXRlO1xufVxuRmFjdG9yeS5SZWdpc3RlcihzaGFyZWRJbnRlcmNlcHRvcnMpO1xuXG5leHBvcnQgZnVuY3Rpb24gdG8ocHJvbWlzZSkge1xuICByZXR1cm4gcHJvbWlzZS50aGVuKGRhdGEgPT4gZGF0YSlcbiAgICAuY2F0Y2goZXJyID0+IGVyci5yZXNwb25zZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBiYXNlUmVzdFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBlcnJvcnNUb1Nob3c6IG51bWJlcltdID0gWzQwNCwgNTAwXTtcblxuICBwcm90ZWN0ZWQgYWxsd2F5c1NlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzYXZlVG9TZXNzaW9uU3RvcmFnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pbnRlcmNlcHRvcnM6IHNoYXJlZEludGVyY2VwdG9ycztcblxuICBzZXQgaW50ZXJjZXB0b3JzKHZhbHVlOiBpbnRlcmNlcHRvcnNDb25maWcpIHtcbiAgICBmb3IgKGxldCBpIGluIHZhbHVlLnJlcXVlc3RJbnRlcmNlcHRvcnMpXG4gICAgICB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKHZhbHVlLnJlcXVlc3RJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgZm9yIChsZXQgaSBpbiB2YWx1ZS5yZXNwb25zZUludGVyY2VwdG9ycylcbiAgICAgIHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKHZhbHVlLnJlc3BvbnNlSW50ZXJjZXB0b3JzW2ldKTtcbiAgfVxuXG4gIGJhc2VVcmw6IHN0cmluZyA9IFwiXCI7XG4gIE9uRXJyb3I6IE9uRXJyb3JEZWxlZ2F0ZTtcbiAgT25IZWFkZXJzUHJlcGFyaW5nOiBPbkhlYWRlcnNQcmVwYXJpbmdEZWxlZ2F0ZTtcblxuICBwcm90ZWN0ZWQgaHR0cDogQXhpb3NJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuaHR0cCA9IEF4aW9zLmNyZWF0ZSgpO1xuICAgIHRoaXMuX2ludGVyY2VwdG9ycyA9IEZhY3RvcnkuR2V0KHNoYXJlZEludGVyY2VwdG9ycyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHByZXJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gICAgZm9yIChsZXQgaSBpbiB0aGlzLl9pbnRlcmNlcHRvcnMucmVxdWVzdEludGVyY2VwdG9ycylcbiAgICAgIHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UodGhpcy5faW50ZXJjZXB0b3JzLnJlcXVlc3RJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgZm9yIChsZXQgaSBpbiB0aGlzLl9pbnRlcmNlcHRvcnMucmVzcG9uc2VJbnRlcmNlcHRvcnMpXG4gICAgICB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZSh0aGlzLl9pbnRlcmNlcHRvcnMucmVzcG9uc2VJbnRlcmNlcHRvcnNbaV0pO1xuXG4gICAgdGhpcy5faW50ZXJjZXB0b3JzLm9uUmVxdWVzdEludGVyY2VwdG9yQ2hhbmdlZCA9IChpKSA9PiB0aGlzLmh0dHAuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKGkpO1xuICAgIHRoaXMuX2ludGVyY2VwdG9ycy5vblJlc3BvbnNlSW50ZXJjZXB0b3JDaGFuZ2VkID0gKGkpID0+IHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKGkpO1xuXG4gICAgLy8gdG9hc3QgZXhjZXB0aW9uIGludGVyY2VwdG9yc1xuICAgIHRoaXMuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKG51bGwsIHIgPT4ge1xuICAgICAgaWYoIXIuc3RhdHVzKVxuICAgICAgICByID0gci5yZXNwb25zZTtcblxuICAgICAgaWYgKHIuc3RhdHVzID49IDUwMCB8fCB0aGlzLmVycm9yc1RvU2hvdy5pbmRleE9mKHIuc3RhdHVzKT49MCkge1xuICAgICAgICAoaXppVG9hc3QgYXMgYW55KS5lcnJvcih7XG4gICAgICAgICAgdGl0bGU6IHIuY29uZmlnLnVybCxcbiAgICAgICAgICBtZXNzYWdlOiByLnN0YXR1c1RleHQsXG4gICAgICAgICAgdGhlbWU6XCJkYXJrXCIsXG4gICAgICAgICAgdGltZW91dDogZmFsc2VcbiAgICAgICAgfSlcblxuICAgICAgfVxuICAgICAgY29uc29sZS5sb2cocik7XG4gICAgICByZXR1cm4gcjtcbiAgICB9KVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldCh1cmk6IHN0cmluZywgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSwgcGFyYW1zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8QXhpb3NSZXNwb25zZT4ge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRvKHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJpLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKHRoaXMuYWxsd2F5c1NlbmRBdXRoZW50aWNhdGlvblRva2VuIHx8IHNlbmRBdXRoZW50aWNhdGlvblRva2VuLCBmYWxzZSksXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9IGFzIEF4aW9zUmVxdWVzdENvbmZpZykpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwICYmIHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGFzeW5jIEdldDxUUmVzdWx0Pih1cmk6IHN0cmluZywgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSwgcGFyYW1zOiBvYmplY3QgPSB7fSk6IFByb21pc2U8VFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldCh1cmksIHNlbmRBdXRoZW50aWNhdGlvblRva2VuLCBwYXJhbXMpO1xuICAgIGlmIChyZXN1bHQuc3RhdHVzID09IDIwMClcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YSBhcyBUUmVzdWx0O1xuICAgIGVsc2UgaWYgKHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3VsdCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcG9zdCh1cmk6IHN0cmluZywgZGF0YTogYW55LCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbjogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxBeGlvc1Jlc3BvbnNlPiB7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0byh0aGlzLmh0dHAucG9zdCh0aGlzLmJhc2VVcmwgKyB1cmksIGRhdGEsXG4gICAgICB7IGhlYWRlcnM6IHRoaXMucHJlcGFyZUhlYWRlcnModGhpcy5hbGx3YXlzU2VuZEF1dGhlbnRpY2F0aW9uVG9rZW4gfHwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW4sIHRydWUpIH0pKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCAmJiB0aGlzLk9uRXJyb3IpIHRoaXMuT25FcnJvcihyZXNwb25zZSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIH07XG5cbiAgcHJvdGVjdGVkIGFzeW5jIFBvc3Q8VFJlc3VsdD4odXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvc3QodXJpLCBkYXRhLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgc2VuZEF1dGhlbnRpY2F0aW9uVG9rZW46IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8QXhpb3NSZXNwb25zZT4ge1xuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRvKHRoaXMuaHR0cC5wdXQodGhpcy5iYXNlVXJsICsgdXJpLCBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyh0aGlzLmFsbHdheXNTZW5kQXV0aGVudGljYXRpb25Ub2tlbiB8fCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbiwgdHJ1ZSkgfSkpO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwICYmIHRoaXMuT25FcnJvcikgdGhpcy5PbkVycm9yKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgUHV0PFRSZXN1bHQ+KHVyaTogc3RyaW5nLCBkYXRhOiBhbnksIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5wdXQodXJpLCBkYXRhLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGUodXJpOiBzdHJpbmcsIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPEF4aW9zUmVzcG9uc2U+IHtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0byh0aGlzLmh0dHAuZGVsZXRlKHRoaXMuYmFzZVVybCArIHVyaSxcbiAgICAgIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyh0aGlzLmFsbHdheXNTZW5kQXV0aGVudGljYXRpb25Ub2tlbiB8fCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbiwgZmFsc2UpIH0pKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCAmJiB0aGlzLk9uRXJyb3IpIHRoaXMuT25FcnJvcihyZXNwb25zZSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBEZWxldGU8VFJlc3VsdD4odXJpOiBzdHJpbmcsIHNlbmRBdXRoZW50aWNhdGlvblRva2VuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5kZWxldGUodXJpLCBzZW5kQXV0aGVudGljYXRpb25Ub2tlbik7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhIGFzIFRSZXN1bHQ7XG4gICAgZWxzZSBpZiAodGhpcy5PbkVycm9yKSB0aGlzLk9uRXJyb3IocmVzdWx0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUhlYWRlcnMoYXV0aDogYm9vbGVhbiA9IGZhbHNlLCBqc29uOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xuXG4gICAgbGV0IGhlYWRlcnMgPSB7fVxuICAgIGlmIChhdXRoKSB7XG5cbiAgICAgIGxldCBhdXRoRGF0YSA9IEpTT04ucGFyc2UoKHRoaXMuc2F2ZVRvU2Vzc2lvblN0b3JhZ2UgPyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImF1dGhvcml6YXRpb25EYXRhXCIpIDogd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXV0aG9yaXphdGlvbkRhdGFcIikpIHx8IG51bGwpIGFzIEF1dGhUb2tlbjtcbiAgICAgIGlmIChhdXRoRGF0YSkge1xuICAgICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9ICdCZWFyZXIgJyArIGF1dGhEYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgLy8gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiAoanNvbikgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgaWYgKGpzb24pIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuXG5cbiAgICBpZiAodGhpcy5PbkhlYWRlcnNQcmVwYXJpbmcpIHRoaXMuT25IZWFkZXJzUHJlcGFyaW5nKGhlYWRlcnMpO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEF1dGhlbnRpY2F0aW9uVG9rZW4oKTogQXV0aFRva2VuIHtcbiAgICBsZXQgd3N0b3JlID0gd2luZG93LnNlc3Npb25TdG9yYWdlO1xuICAgIGxldCBzc3RvcmUgPSB3aW5kb3cubG9jYWxTdG9yYWdlO1xuICAgIHJldHVybiBKU09OLnBhcnNlKHdzdG9yZS5nZXRJdGVtKFwiYXV0aG9yaXphdGlvbkRhdGFcIikgfHwgc3N0b3JlLmdldEl0ZW0oXCJhdXRob3JpemF0aW9uRGF0YVwiKSB8fCBudWxsKSBhcyBBdXRoVG9rZW5cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBdXRoZW50aWNhdGlvblRva2VuKGRhdGE6IEF1dGhUb2tlbikge1xuICAgIGxldCBzdG9yYWdlOiBhbnkgPSB0aGlzLnNhdmVUb1Nlc3Npb25TdG9yYWdlID8gd2luZG93LnNlc3Npb25TdG9yYWdlIDogd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgICBzdG9yYWdlLnNldEl0ZW0oXCJhdXRob3JpemF0aW9uRGF0YVwiLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVsZXRlQXV0aGVudGljYXRpb25Ub2tlbigpIHtcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImF1dGhvcml6YXRpb25EYXRhXCIsIG51bGwpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImF1dGhvcml6YXRpb25EYXRhXCIsIG51bGwpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25FcnJvckRlbGVnYXRlIHsgKGRhdGE6IERhdGFSZXNwb25zZSk6IHZvaWQ7IH1cbmludGVyZmFjZSBPbkhlYWRlcnNQcmVwYXJpbmdEZWxlZ2F0ZSB7IChoZWFkZXJzOiBhbnkpOiB2b2lkOyB9XG5cbmV4cG9ydCBjbGFzcyBBdXRoVG9rZW4ge1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICB1c2VyTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YVJlc3BvbnNlIHtcbiAgc3RhdHVzOiBudW1iZXI7XG4gIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgZGF0YTogYW55O1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL19iYXNlL2Jhc2VSZXN0U2VydmljZS50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBO0FBREE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSEE7OztBQUtBO0FBQUE7QUFBQTtBQWlCQTtBQUFBO0FBZEE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBakJBOzs7QUFrQkE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBc0JBO0FBQUE7QUFwQkE7QUFFQTtBQUNBO0FBV0E7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTlDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUVBOztBQUFBOztBQTBDQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7Ozs7OztBQUNBO0FBRUE7QUFDQTtBQUZBOztBQURBO0FBS0E7QUFDQTs7OztBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBQ0E7QUFHQTs7OztBQUNBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7O0FBRUE7O0FBQUE7QUFFQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUVBO0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBQ0E7QUFHQTs7OztBQUNBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7O0FBQ0E7O0FBQUE7QUFFQTtBQUNBOzs7O0FBQ0E7QUFFQTtBQUFBO0FBQUE7Ozs7Ozs7QUFDQTs7QUFBQTtBQUNBO0FBR0E7Ozs7QUFDQTtBQUVBO0FBQUE7QUFBQTs7Ozs7OztBQUNBOztBQUFBO0FBRUE7QUFDQTs7OztBQUNBO0FBQ0E7QUFBQTtBQUFBOzs7Ozs7O0FBQ0E7O0FBQUE7QUFDQTtBQUdBOzs7O0FBQ0E7QUFFQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExSkE7OztBQStKQTtBQUFBO0FBSUE7QUFKQTs7O0FBTUE7QUFBQTtBQUlBO0FBSkE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///138\n");
/***/ }),
/* 139 */
@@ -2404,7 +2404,7 @@ eval("module.exports = function (regExp, replace) {\n var replacer = replace ==
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nvar _vue = __webpack_require__(10);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _vueRouter = __webpack_require__(359);\n\nvar _vueRouter2 = _interopRequireDefault(_vueRouter);\n\nvar _veeValidate = __webpack_require__(360);\n\nvar _veeValidate2 = _interopRequireDefault(_veeValidate);\n\n__webpack_require__(361);\n\n__webpack_require__(59);\n\nvar _appRoutes = __webpack_require__(435);\n\nvar _store = __webpack_require__(36);\n\n__webpack_require__(436);\n\n__webpack_require__(437);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n return __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, 442));\n};\n\n_vue2.default.use(_vueRouter2.default);\n_vue2.default.use(_veeValidate2.default); // forms validation for vuejs\n// Vue.use(VueGesture);\n\nvar router = new _vueRouter2.default({ linkActiveClass: \"inpath\", linkExactActiveClass: \"active\" });\nrouter.addRoutes(_appRoutes.routes);\n\n// manipulate the title page\nrouter.beforeEach(function (to, from, next) {\n if (to.meta && to.meta.title) {\n window.document.title = to.meta.title;\n }\n next();\n});\n\nvar v = new _vue2.default({\n router: router,\n store: _store.store,\n el: \"app\",\n render: function render(h) {\n return h(App);\n }\n});\n\n// Global filters\n\n\n// polyfills !!\n\nif (!String.prototype.format) {\n String.prototype.format = function () {\n var args = arguments;\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != 'undefined' ? args[number] : match;\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzU2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9tYWluLmpzPzFjOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgVnVlUm91dGVyIGZyb20gXCJ2dWUtcm91dGVyXCI7XG5pbXBvcnQgVmVlVmFsaWRhdGUgZnJvbSBcInZlZS12YWxpZGF0ZVwiO1xuaW1wb3J0IFwiLi9fYmFzZS9nZXN0dXJlc1wiO1xuXG5pbXBvcnQgXCIuL2FwcC5tb2R1bGVzXCI7XG5cbmNvbnN0IEFwcCA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vQXBwLnZ1ZVwiKTtcblxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSBcIi4vYXBwLnJvdXRlcy5qc1wiO1xuXG5cblZ1ZS51c2UoVnVlUm91dGVyKTtcblZ1ZS51c2UoVmVlVmFsaWRhdGUpOyAvLyBmb3JtcyB2YWxpZGF0aW9uIGZvciB2dWVqc1xuLy8gVnVlLnVzZShWdWVHZXN0dXJlKTtcblxubGV0IHJvdXRlciA9IG5ldyBWdWVSb3V0ZXIoeyBsaW5rQWN0aXZlQ2xhc3M6IFwiaW5wYXRoXCIsIGxpbmtFeGFjdEFjdGl2ZUNsYXNzOiBcImFjdGl2ZVwiIH0pO1xucm91dGVyLmFkZFJvdXRlcyhyb3V0ZXMpO1xuXG4vLyBtYW5pcHVsYXRlIHRoZSB0aXRsZSBwYWdlXG5yb3V0ZXIuYmVmb3JlRWFjaCgodG8sIGZyb20sIG5leHQpID0+IHtcbiAgICBpZiAodG8ubWV0YSAmJiB0by5tZXRhLnRpdGxlKSB7XG4gICAgICAgIHdpbmRvdy5kb2N1bWVudC50aXRsZSA9IHRvLm1ldGEudGl0bGU7XG4gICAgfVxuICAgIG5leHQoKTtcbn0pO1xuXG5cblxuXG5pbXBvcnQgeyBzdG9yZSB9IGZyb20gXCIuL3N0b3JlXCI7XG5cblxubGV0IHYgPSBuZXcgVnVlKHtcbiAgICByb3V0ZXI6IHJvdXRlcixcbiAgICBzdG9yZSxcbiAgICBlbDogXCJhcHBcIixcbiAgICByZW5kZXI6IChoKSA9PiBoKEFwcCksXG59KTtcblxuXG4vLyBHbG9iYWwgZmlsdGVyc1xuaW1wb3J0IFwiLi9maWx0ZXJzL3NlYXJjaEZpbHRlclwiO1xuaW1wb3J0IFwiLi9maWx0ZXJzL2xvY2FsaXplRmlsdGVyXCI7XG5cblxuLy8gcG9seWZpbGxzICEhXG5cbmlmICghU3RyaW5nLnByb3RvdHlwZS5mb3JtYXQpIHtcbiAgICBTdHJpbmcucHJvdG90eXBlLmZvcm1hdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwbGFjZSgveyhcXGQrKX0vZywgZnVuY3Rpb24obWF0Y2gsIG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBhcmdzW251bWJlcl0gIT0gJ3VuZGVmaW5lZCcgP1xuICAgICAgICAgICAgICAgIGFyZ3NbbnVtYmVyXSA6XG4gICAgICAgICAgICAgICAgbWF0Y2g7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9tYWluLmpzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQW9CQTtBQUNBO0FBV0E7QUFDQTtBQUFBO0FBQ0E7OztBQXRDQTtBQUFBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBSkE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///356\n");
+eval("\n\nvar _vue = __webpack_require__(10);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _vueRouter = __webpack_require__(359);\n\nvar _vueRouter2 = _interopRequireDefault(_vueRouter);\n\nvar _veeValidate = __webpack_require__(360);\n\nvar _veeValidate2 = _interopRequireDefault(_veeValidate);\n\n__webpack_require__(361);\n\n__webpack_require__(59);\n\nvar _appRoutes = __webpack_require__(435);\n\nvar _store = __webpack_require__(36);\n\n__webpack_require__(436);\n\n__webpack_require__(437);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n return __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, 442));\n};\n\n_vue2.default.use(_vueRouter2.default);\n_vue2.default.use(_veeValidate2.default); // forms validation for vuejs\n// Vue.use(VueGesture);\n\nvar router = new _vueRouter2.default({ linkActiveClass: \"inpath\", linkExactActiveClass: \"active\" });\nrouter.addRoutes(_appRoutes.routes);\n\n// manipulate the title page\nrouter.beforeEach(function (to, from, next) {\n if (to.meta && to.meta.title) {\n window.document.title = to.meta.title;\n }\n next();\n});\n\nvar v = new _vue2.default({\n router: router,\n store: _store.store,\n el: \"app\",\n render: function render(h) {\n return h(App);\n }\n});\n\n// Global filters\n\n\n// polyfills !!\n\nif (!String.prototype.format) {\n String.prototype.format = function () {\n var args = arguments;\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != 'undefined' ? args[number] : match;\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzU2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9tYWluLmpzPzFjOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgVnVlUm91dGVyIGZyb20gXCJ2dWUtcm91dGVyXCI7XG5pbXBvcnQgVmVlVmFsaWRhdGUgZnJvbSBcInZlZS12YWxpZGF0ZVwiO1xuaW1wb3J0IFwiLi9fYmFzZS9nZXN0dXJlc1wiO1xuXG5pbXBvcnQgXCIuL2FwcC5tb2R1bGVzXCI7XG5cbmNvbnN0IEFwcCA9ICgpID0+XG4gICAgaW1wb3J0IChcIi4vQXBwLnZ1ZVwiKTtcblxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSBcIi4vYXBwLnJvdXRlcy5qc1wiO1xuXG5cblZ1ZS51c2UoVnVlUm91dGVyKTtcblZ1ZS51c2UoVmVlVmFsaWRhdGUpOyAvLyBmb3JtcyB2YWxpZGF0aW9uIGZvciB2dWVqc1xuLy8gVnVlLnVzZShWdWVHZXN0dXJlKTtcblxubGV0IHJvdXRlciA9IG5ldyBWdWVSb3V0ZXIoeyBsaW5rQWN0aXZlQ2xhc3M6IFwiaW5wYXRoXCIsIGxpbmtFeGFjdEFjdGl2ZUNsYXNzOiBcImFjdGl2ZVwiIH0pO1xucm91dGVyLmFkZFJvdXRlcyhyb3V0ZXMpO1xuXG4vLyBtYW5pcHVsYXRlIHRoZSB0aXRsZSBwYWdlXG5yb3V0ZXIuYmVmb3JlRWFjaCgodG8sIGZyb20sIG5leHQpID0+IHtcbiAgICBpZiAodG8ubWV0YSAmJiB0by5tZXRhLnRpdGxlKSB7XG4gICAgICAgIHdpbmRvdy5kb2N1bWVudC50aXRsZSA9IHRvLm1ldGEudGl0bGU7XG4gICAgfVxuICAgIG5leHQoKTtcbn0pO1xuXG5cblxuXG5pbXBvcnQgeyBzdG9yZSB9IGZyb20gXCIuL3N0b3JlXCI7XG5cblxubGV0IHYgPSBuZXcgVnVlKHtcbiAgICByb3V0ZXI6IHJvdXRlcixcbiAgICBzdG9yZSxcbiAgICBlbDogXCJhcHBcIixcbiAgICByZW5kZXI6IChoKSA9PiBoKEFwcCksXG59KTtcblxuXG4vLyBHbG9iYWwgZmlsdGVyc1xuaW1wb3J0IFwiLi9maWx0ZXJzL3NlYXJjaEZpbHRlclwiO1xuaW1wb3J0IFwiLi9maWx0ZXJzL2xvY2FsaXplRmlsdGVyXCI7XG5cblxuLy8gcG9seWZpbGxzICEhXG5cbmlmICghU3RyaW5nLnByb3RvdHlwZS5mb3JtYXQpIHtcbiAgICBTdHJpbmcucHJvdG90eXBlLmZvcm1hdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwbGFjZSgveyhcXGQrKX0vZywgZnVuY3Rpb24obWF0Y2gsIG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBhcmdzW251bWJlcl0gIT0gJ3VuZGVmaW5lZCcgP1xuICAgICAgICAgICAgICAgIGFyZ3NbbnVtYmVyXSA6XG4gICAgICAgICAgICAgICAgbWF0Y2g7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9tYWluLmpzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQW9CQTtBQUNBO0FBV0E7QUFDQTtBQUFBO0FBQ0E7OztBQXRDQTtBQUFBO0FBQUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBSkE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///356\n");
/***/ }),
/* 357 */
@@ -2795,7 +2795,7 @@ eval("/**\n * Translates the list format produced by css-loader into something\n
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_class_component__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_class_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_class_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_components__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_components___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__base_components__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_src_base__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_src_base___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_src_base__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_src_app_modules__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_src_app_modules___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_src_app_modules__);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\n\r\n\r\n\r\n\r\n\r\nvar Login = /** @class */ (function (_super) {\r\n __extends(Login, _super);\r\n function Login() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.user = { password: null, username: null };\r\n _this.hasError = false;\r\n return _this;\r\n }\r\n Login.prototype.doLogin = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var service;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n service = __WEBPACK_IMPORTED_MODULE_3_src_base__[\"Factory\"].Get(__WEBPACK_IMPORTED_MODULE_4_src_app_modules__[\"LoginService\"]);\r\n return [4 /*yield*/, service.doLogin(this.user)];\r\n case 1:\r\n if (_a.sent()) {\r\n __WEBPACK_IMPORTED_MODULE_2__base_components__[\"ModalHelper\"].HideModal();\r\n }\r\n this.hasError = !service.isAuthenticated;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Login = __decorate([\r\n __WEBPACK_IMPORTED_MODULE_1_vue_class_component___default()({ name: \"login\", components: { modal: __WEBPACK_IMPORTED_MODULE_2__base_components__[\"Modal\"] } })\r\n ], Login);\r\n return Login;\r\n}(__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"]));\r\n/* harmony default export */ __webpack_exports__[\"a\"] = (Login);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL21vZHVsZXMvbG9naW4udHM/M2EwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInZ1ZS1jbGFzcy1jb21wb25lbnRcIjtcbmltcG9ydCB7IE1vZGFsLCBNb2RhbEhlbHBlciB9IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50c1wiXG5cbmltcG9ydCB7IEZhY3RvcnksIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInNyYy9fYmFzZVwiO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSBcInNyYy9hcHAubW9kdWxlc1wiO1xuXG5cbkBDb21wb25lbnQoeyBuYW1lOiBcImxvZ2luXCIsIGNvbXBvbmVudHM6IHsgbW9kYWw6IE1vZGFsIH0gfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2luIGV4dGVuZHMgVnVlIHtcblxuICBwdWJsaWMgdXNlcjogc2VydmVyLmxvZ2luVmlld01vZGVsID0geyBwYXNzd29yZDogbnVsbCwgdXNlcm5hbWU6IG51bGwgfTtcbiAgcHVibGljIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgYXN5bmMgZG9Mb2dpbigpIHtcbiAgICB2YXIgc2VydmljZSA9IEZhY3RvcnkuR2V0KExvZ2luU2VydmljZSk7XG4gICAgaWYoYXdhaXQgc2VydmljZS5kb0xvZ2luKHRoaXMudXNlcikpe1xuICAgICAgTW9kYWxIZWxwZXIuSGlkZU1vZGFsKCk7XG4gICAgfVxuXG4gICAgdGhpcy5oYXNFcnJvciA9ICFzZXJ2aWNlLmlzQXV0aGVudGljYXRlZDtcbiAgfVxufVxuXG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9tb2R1bGVzL2xvZ2luLnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFBQTtBQURBO0FBQUE7QUFHQTtBQUNBOztBQVVBO0FBUkE7Ozs7OztBQUNBO0FBQ0E7O0FBQUE7QUFDQTtBQUNBO0FBRUE7Ozs7O0FBQ0E7QUFaQTtBQURBO0FBQ0E7QUFhQTtBQUFBO0FBYkE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///413\n");
+eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_class_component__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_class_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_class_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_components__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_components___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__base_components__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_src_base__ = __webpack_require__(48);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_src_base___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_src_base__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_src_app_modules__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_src_app_modules___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_src_app_modules__);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\n\r\n\r\n\r\n\r\n\r\nvar Login = /** @class */ (function (_super) {\r\n __extends(Login, _super);\r\n function Login() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.user = { password: null, username: null };\r\n _this.hasError = false;\r\n return _this;\r\n }\r\n Login.prototype.doLogin = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var service;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n service = __WEBPACK_IMPORTED_MODULE_3_src_base__[\"Factory\"].Get(__WEBPACK_IMPORTED_MODULE_4_src_app_modules__[\"LoginService\"]);\r\n __WEBPACK_IMPORTED_MODULE_3_src_base__[\"Factory\"].Get(__WEBPACK_IMPORTED_MODULE_3_src_base__[\"MessageService\"]).publishToChannel(\"show-loading\");\r\n return [4 /*yield*/, service.doLogin(this.user)];\r\n case 1:\r\n if (_a.sent()) {\r\n __WEBPACK_IMPORTED_MODULE_2__base_components__[\"ModalHelper\"].HideModal();\r\n }\r\n __WEBPACK_IMPORTED_MODULE_3_src_base__[\"Factory\"].Get(__WEBPACK_IMPORTED_MODULE_3_src_base__[\"MessageService\"]).publishToChannel(\"hide-loading\");\r\n this.hasError = !service.isAuthenticated;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Login = __decorate([\r\n __WEBPACK_IMPORTED_MODULE_1_vue_class_component___default()({ name: \"login\", components: { modal: __WEBPACK_IMPORTED_MODULE_2__base_components__[\"Modal\"] } })\r\n ], Login);\r\n return Login;\r\n}(__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"]));\r\n/* harmony default export */ __webpack_exports__[\"a\"] = (Login);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL21vZHVsZXMvbG9naW4udHM/M2EwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInZ1ZS1jbGFzcy1jb21wb25lbnRcIjtcbmltcG9ydCB7IE1vZGFsLCBNb2RhbEhlbHBlciB9IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50c1wiXG5cbmltcG9ydCB7IEZhY3RvcnksIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInNyYy9fYmFzZVwiO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSBcInNyYy9hcHAubW9kdWxlc1wiO1xuXG5cbkBDb21wb25lbnQoeyBuYW1lOiBcImxvZ2luXCIsIGNvbXBvbmVudHM6IHsgbW9kYWw6IE1vZGFsIH0gfSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2luIGV4dGVuZHMgVnVlIHtcblxuICBwdWJsaWMgdXNlcjogc2VydmVyLmxvZ2luVmlld01vZGVsID0geyBwYXNzd29yZDogbnVsbCwgdXNlcm5hbWU6IG51bGwgfTtcbiAgcHVibGljIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgYXN5bmMgZG9Mb2dpbigpIHtcbiAgICB2YXIgc2VydmljZSA9IEZhY3RvcnkuR2V0KExvZ2luU2VydmljZSk7XG5cbiAgICBGYWN0b3J5LkdldChNZXNzYWdlU2VydmljZSkucHVibGlzaFRvQ2hhbm5lbChcInNob3ctbG9hZGluZ1wiKTtcblxuICAgIGlmIChhd2FpdCBzZXJ2aWNlLmRvTG9naW4odGhpcy51c2VyKSkge1xuICAgICAgTW9kYWxIZWxwZXIuSGlkZU1vZGFsKCk7XG4gICAgfVxuXG4gICAgRmFjdG9yeS5HZXQoTWVzc2FnZVNlcnZpY2UpLnB1Ymxpc2hUb0NoYW5uZWwoXCJoaWRlLWxvYWRpbmdcIik7XG4gICAgdGhpcy5oYXNFcnJvciA9ICFzZXJ2aWNlLmlzQXV0aGVudGljYXRlZDtcbiAgfVxufVxuXG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9tb2R1bGVzL2xvZ2luLnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFBQTtBQURBO0FBQUE7QUFHQTtBQUNBOztBQWNBO0FBWkE7Ozs7OztBQUNBO0FBRUE7QUFFQTs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7OztBQUNBO0FBaEJBO0FBREE7QUFDQTtBQWlCQTtBQUFBO0FBakJBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///413\n");
/***/ }),
/* 414 */
@@ -2961,5 +2961,29 @@ eval("\n\nvar _vue = __webpack_require__(10);\n\nvar _vue2 = _interopRequireDefa
"use strict";
eval("\n\nvar _vue = __webpack_require__(10);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _store = __webpack_require__(36);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.filter(\"localize\", function (key, defaultValue) {\n var labels = _store.store.state.localization.labels;\n var value = labels[key];\n if (!value) {\n console.debug(\"missing localization key:\", key);\n }\n return value || defaultValue;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDM3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2ZpbHRlcnMvbG9jYWxpemVGaWx0ZXIudHM/MzlkYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcblxuaW1wb3J0IHsgc3RvcmUsIExvY2FsaXphdGlvbk1vZGVsLCBBcHBNb2RlbCB9IGZyb20gXCJzcmMvc3RvcmVcIjtcblxuVnVlLmZpbHRlcihcImxvY2FsaXplXCIsIGZ1bmN0aW9uIChrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIGxldCBsYWJlbHMgPSAoc3RvcmUuc3RhdGUgYXMgQXBwTW9kZWwpLmxvY2FsaXphdGlvbi5sYWJlbHM7XG4gIGxldCB2YWx1ZSA9IGxhYmVsc1trZXldO1xuXG4gIGlmICghdmFsdWUpIHtcbiAgICBjb25zb2xlLmRlYnVnKFwibWlzc2luZyBsb2NhbGl6YXRpb24ga2V5OlwiLCBrZXkpO1xuICB9XG4gIHJldHVybiB2YWx1ZSB8fCBkZWZhdWx0VmFsdWU7XG59KTtcblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2ZpbHRlcnMvbG9jYWxpemVGaWx0ZXIudHMiXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTs7O0FBQ0E7QUFDQTs7O0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///437\n");
+/***/ }),
+/* 438 */,
+/* 439 */,
+/* 440 */,
+/* 441 */,
+/* 442 */,
+/* 443 */,
+/* 444 */,
+/* 445 */,
+/* 446 */,
+/* 447 */,
+/* 448 */,
+/* 449 */,
+/* 450 */,
+/* 451 */,
+/* 452 */,
+/* 453 */,
+/* 454 */,
+/* 455 */,
+/* 456 */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n* iziToast | v1.2.0\r\n* http://izitoast.marcelodolce.com\r\n* by Marcelo Dolce.\r\n*/\r\n(function (root, factory) {\r\n\tif(true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory(root)),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t} else if(typeof exports === 'object') {\r\n\t\tmodule.exports = factory(root);\r\n\t} else {\r\n\t\troot.iziToast = factory(root);\r\n\t}\r\n})(typeof global !== 'undefined' ? global : window || this.window || this.global, function (root) {\r\n\r\n\t'use strict';\r\n\r\n\t//\r\n\t// Variables\r\n\t//\r\n\tvar $iziToast = {},\r\n\t\tPLUGIN_NAME = 'iziToast',\r\n\t\tBODY = document.querySelector('body'),\r\n\t\tISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false,\r\n\t\tISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\r\n\t\tISFIREFOX = typeof InstallTrigger !== 'undefined',\r\n\t\tACCEPTSTOUCH = 'ontouchstart' in document.documentElement,\r\n\t\tPOSITIONS = ['bottomRight','bottomLeft','bottomCenter','topRight','topLeft','topCenter','center'],\r\n\t\tTHEMES = {\r\n\t\t\tinfo: {\r\n\t\t\t\tcolor: 'blue',\r\n\t\t\t\ticon: 'ico-info'\r\n\t\t\t},\r\n\t\t\tsuccess: {\r\n\t\t\t\tcolor: 'green',\r\n\t\t\t\ticon: 'ico-success'\r\n\t\t\t},\r\n\t\t\twarning: {\r\n\t\t\t\tcolor: 'orange',\r\n\t\t\t\ticon: 'ico-warning'\r\n\t\t\t},\r\n\t\t\terror: {\r\n\t\t\t\tcolor: 'red',\r\n\t\t\t\ticon: 'ico-error'\r\n\t\t\t},\r\n\t\t\tquestion: {\r\n\t\t\t\tcolor: 'yellow',\r\n\t\t\t\ticon: 'ico-question'\r\n\t\t\t}\r\n\t\t},\r\n\t\tMOBILEWIDTH = 568,\r\n\t\tCONFIG = {};\r\n\r\n\r\n\t// Default settings\r\n\tvar defaults = {\r\n\t\tid: null, \r\n\t\tclass: '',\r\n\t\ttitle: '',\r\n\t\ttitleColor: '',\r\n\t\ttitleSize: '',\r\n\t\ttitleLineHeight: '',\r\n\t\tmessage: '',\r\n\t\tmessageColor: '',\r\n\t\tmessageSize: '',\r\n\t\tmessageLineHeight: '',\r\n\t\tbackgroundColor: '',\r\n\t\ttheme: 'light', // dark\r\n\t\tcolor: '', // blue, red, green, yellow\r\n\t\ticon: '',\r\n\t\ticonText: '',\r\n\t\ticonColor: '',\r\n\t\timage: '',\r\n\t\timageWidth: 50,\r\n\t\tmaxWidth: null,\r\n\t\tzindex: null,\r\n\t\tlayout: 1,\r\n\t\tballoon: false,\r\n\t\tclose: true,\r\n\t\tcloseOnEscape: false,\r\n\t\trtl: false,\r\n\t\tposition: 'bottomRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center\r\n\t\ttarget: '',\r\n\t\ttargetFirst: true,\r\n\t\ttoastOnce: false,\r\n\t\ttimeout: 5000,\r\n\t\tanimateInside: true,\r\n\t\tdrag: true,\r\n\t\tpauseOnHover: true,\r\n\t\tresetOnHover: false,\r\n\t\tprogressBar: true,\r\n\t\tprogressBarColor: '',\r\n\t\tprogressBarEasing: 'linear',\r\n\t\toverlay: false,\r\n\t\toverlayClose: false,\r\n\t\toverlayColor: 'rgba(0, 0, 0, 0.6)',\r\n\t\ttransitionIn: 'fadeInUp', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX\r\n\t\ttransitionOut: 'fadeOut', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX\r\n\t\ttransitionInMobile: 'fadeInUp',\r\n\t\ttransitionOutMobile: 'fadeOutDown',\r\n\t\tbuttons: {},\r\n\t\tonOpening: function () {},\r\n\t\tonOpened: function () {},\r\n\t\tonClosing: function () {},\r\n\t\tonClosed: function () {}\r\n\t};\r\n\r\n\t//\r\n\t// Methods\r\n\t//\r\n\r\n\r\n\t/**\r\n\t * Polyfill for remove() method\r\n\t */\r\n\tif(!('remove' in Element.prototype)) {\r\n\t Element.prototype.remove = function() {\r\n\t if(this.parentNode) {\r\n\t this.parentNode.removeChild(this);\r\n\t }\r\n\t };\r\n\t}\r\n\r\n\t/*\r\n * Polyfill for CustomEvent for IE >= 9\r\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\r\n */\r\n if(typeof window.CustomEvent !== 'function') {\r\n var CustomEventPolyfill = function (event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n };\r\n\r\n CustomEventPolyfill.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEventPolyfill;\r\n } \r\n\r\n\t/**\r\n\t * A simple forEach() implementation for Arrays, Objects and NodeLists\r\n\t * @private\r\n\t * @param {Array|Object|NodeList} collection Collection of items to iterate\r\n\t * @param {Function} callback Callback function for each iteration\r\n\t * @param {Array|Object|NodeList} scope Object/NodeList/Array that forEach is iterating over (aka `this`)\r\n\t */\r\n\tvar forEach = function (collection, callback, scope) {\r\n\t\tif(Object.prototype.toString.call(collection) === '[object Object]') {\r\n\t\t\tfor (var prop in collection) {\r\n\t\t\t\tif(Object.prototype.hasOwnProperty.call(collection, prop)) {\r\n\t\t\t\t\tcallback.call(scope, collection[prop], prop, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif(collection){\r\n\t\t\t\tfor (var i = 0, len = collection.length; i < len; i++) {\r\n\t\t\t\t\tcallback.call(scope, collection[i], i, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Merge defaults with user options\r\n\t * @private\r\n\t * @param {Object} defaults Default settings\r\n\t * @param {Object} options User options\r\n\t * @returns {Object} Merged values of defaults and options\r\n\t */\r\n\tvar extend = function (defaults, options) {\r\n\t\tvar extended = {};\r\n\t\tforEach(defaults, function (value, prop) {\r\n\t\t\textended[prop] = defaults[prop];\r\n\t\t});\r\n\t\tforEach(options, function (value, prop) {\r\n\t\t\textended[prop] = options[prop];\r\n\t\t});\r\n\t\treturn extended;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Create a fragment DOM elements\r\n\t * @private\r\n\t */\r\n\tvar createFragElem = function(htmlStr) {\r\n\t\tvar frag = document.createDocumentFragment(),\r\n\t\t\ttemp = document.createElement('div');\r\n\t\ttemp.innerHTML = htmlStr;\r\n\t\twhile (temp.firstChild) {\r\n\t\t\tfrag.appendChild(temp.firstChild);\r\n\t\t}\r\n\t\treturn frag;\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a color\r\n\t * @private\r\n\t */\r\n\tvar isColor = function(color){\r\n\t\tif( color.substring(0,1) == '#' || color.substring(0,3) == 'rgb' || color.substring(0,3) == 'hsl' ){\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Check if is a Base64 string\r\n\t * @private\r\n\t */\r\n\tvar isBase64 = function(str) {\r\n\t try {\r\n\t return btoa(atob(str)) == str;\r\n\t } catch (err) {\r\n\t return false;\r\n\t }\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Drag method of toasts\r\n\t * @private\r\n\t */\r\n\tvar drag = function() {\r\n\t \r\n\t return {\r\n\t move: function(toast, instance, settings, xpos) {\r\n\r\n\t \tvar opacity,\r\n\t \t\topacityRange = 0.3,\r\n\t \t\tdistance = 180;\r\n\t \r\n\t if(xpos !== 0){\r\n\t \t\r\n\t \ttoast.classList.add(PLUGIN_NAME+'-dragged');\r\n\r\n\t \ttoast.style.transform = 'translateX('+xpos + 'px)';\r\n\r\n\t\t if(xpos > 0){\r\n\t\t \topacity = (distance-xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutRight', transitionOutMobile: 'fadeOutRight' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t } else {\r\n\t\t \topacity = (distance+xpos) / distance;\r\n\t\t \tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(toast, extend(settings, { transitionOut: 'fadeOutLeft', transitionOutMobile: 'fadeOutLeft' }), 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t }\r\n\t\t\t\t\ttoast.style.opacity = opacity;\r\n\t\t\t\r\n\t\t\t\t\tif(opacity < opacityRange){\r\n\r\n\t\t\t\t\t\tif(ISCHROME || ISFIREFOX)\r\n\t\t\t\t\t\t\ttoast.style.left = xpos+'px';\r\n\r\n\t\t\t\t\t\ttoast.parentNode.style.opacity = opacityRange;\r\n\r\n\t\t this.stopMoving(toast, null);\r\n\t\t\t\t\t}\r\n\t }\r\n\r\n\t\t\t\t\r\n\t },\r\n\t startMoving: function(toast, instance, settings, e) {\r\n\r\n\t e = e || window.event;\r\n\t var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),\r\n\t toastLeft = toast.style.transform.replace('px)', '');\r\n\t toastLeft = toastLeft.replace('translateX(', '');\r\n\t var offsetX = posX - toastLeft;\r\n\r\n\t\t\t\ttoast.classList.remove(settings.transitionIn);\r\n\t\t\t\ttoast.classList.remove(settings.transitionInMobile);\r\n\t\t\t\ttoast.style.transition = '';\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.touches[0].clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t } else {\r\n\t document.onmousemove = function(e) {\r\n\t e.preventDefault();\r\n\t e = e || window.event;\r\n\t var posX = e.clientX,\r\n\t finalX = posX - offsetX;\r\n drag.move(toast, instance, settings, finalX);\r\n\t };\r\n\t }\r\n\r\n\t },\r\n\t stopMoving: function(toast, e) {\r\n\r\n\t if(ACCEPTSTOUCH) {\r\n\t document.ontouchmove = function() {};\r\n\t } else {\r\n\t \tdocument.onmousemove = function() {};\r\n\t }\r\n\r\n\t\t\t\ttoast.style.opacity = '';\r\n\t\t\t\ttoast.style.transform = '';\r\n\r\n\t if(toast.classList.contains(PLUGIN_NAME+'-dragged')){\r\n\t \t\r\n\t \ttoast.classList.remove(PLUGIN_NAME+'-dragged');\r\n\r\n\t\t\t\t\ttoast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\ttoast.style.transition = '';\r\n\t\t\t\t\t}, 400);\r\n\t }\r\n\r\n\t }\r\n\t };\r\n\r\n\t}();\r\n\r\n\r\n\t/**\r\n\t * Destroy the current initialization.\r\n\t * @public\r\n\t */\r\n\t$iziToast.destroy = function () {\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'-wrapper'), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\t// Remove event listeners\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opened', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opening', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closing', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closed', {}, false);\r\n\t\tdocument.removeEventListener('keyup', {}, false);\r\n\r\n\t\t// Reset variables\r\n\t\tCONFIG = {};\r\n\t};\r\n\r\n\t/**\r\n\t * Initialize Plugin\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.settings = function (options) {\r\n\r\n\t\t// Destroy any existing initializations\r\n\t\t$iziToast.destroy();\r\n\r\n\t\tCONFIG = options;\r\n\t\tdefaults = extend(defaults, options || {});\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Building themes functions.\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\tforEach(THEMES, function (theme, name) {\r\n\r\n\t\t$iziToast[name] = function (options) {\r\n\r\n\t\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(theme, settings || {});\r\n\r\n\t\t\tthis.show(settings);\r\n\t\t};\r\n\r\n\t});\r\n\r\n\r\n\t/**\r\n\t * Do the calculation to move the progress bar\r\n\t * @private\r\n\t */\r\n\t $iziToast.progress = function ($toast, options, callback) {\r\n\r\n\t\tvar that = this,\r\n\t\t\tsettings = extend(that.settings, options || {}),\r\n\t\t\t$elem = $toast.querySelector('.'+PLUGIN_NAME+'-progressbar div');\r\n\r\n\t return {\r\n\t start: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.timeout +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\t \tsettings.TIME.START = new Date().getTime();\r\n\t \tsettings.TIME.END = settings.TIME.START + settings.timeout;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}, settings.timeout);\r\n\t\t\t\t\r\n\t },\r\n\t pause: function() {\r\n\r\n\t\t\t\tsettings.TIME.REMAINING = settings.TIME.END - new Date().getTime();\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\tvar computedStyle = window.getComputedStyle($elem),\r\n\t\t\t\t\t\tpropertyWidth = computedStyle.getPropertyValue('width');\r\n\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = propertyWidth;\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t },\r\n\t resume: function() {\r\n\r\n\t \tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'width '+ settings.TIME.REMAINING +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t}\r\n\r\n\t \tsettings.TIME.END = new Date().getTime() + settings.TIME.REMAINING;\r\n\t\t\t\tsettings.TIME.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\tthat.hide($toast, settings, 'timeout');\r\n\r\n\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}, settings.TIME.REMAINING);\r\n\r\n\t },\r\n\t reset: function(){\r\n\r\n\t\t\t\tclearTimeout(settings.TIME.TIMER);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = '100%';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\r\n\t }\r\n\t };\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Close the specific Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.hide = function ($toast, options, closedBy) {\r\n\r\n\t\tvar settings = extend(this.settings, options || {});\r\n\t\t\tclosedBy = closedBy || null;\r\n\r\n\t\tif(typeof $toast != 'object'){\r\n\t\t\t$toast = document.querySelector($toast);\r\n\t\t}\r\n\r\n\t\t$toast.classList.add(PLUGIN_NAME+'-closing');\r\n\r\n\t\tsettings.closedBy = closedBy;\r\n\t\tsettings.REF = $toast.getAttribute('data-iziToast-ref');\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tvar $overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\tif($overlay !== null){\r\n\t\t\t\tvar refs = $overlay.getAttribute('data-iziToast-ref');\t\t\r\n\t\t\t\t\trefs = refs.split(',');\r\n\t\t\t\tvar index = refs.indexOf(settings.REF);\r\n\r\n\t\t\t\tif(index !== -1){\r\n\t\t\t\t\trefs.splice(index, 1);\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$overlay.setAttribute('data-iziToast-ref', refs.join());\r\n\r\n\t\t\t\tif(refs.length === 0){\r\n\t\t\t\t\t$overlay.classList.remove('fadeIn');\r\n\t\t\t\t\t$overlay.classList.add('fadeOut');\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$overlay.remove();\r\n\t\t\t\t\t}, 700);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\tif(settings.transitionIn || settings.transitionInMobile){\r\n\t\t\t$toast.classList.remove(settings.transitionIn);\r\n\t\t\t$toast.classList.remove(settings.transitionInMobile);\r\n\t\t}\r\n\r\n\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\tif(settings.transitionOutMobile)\r\n\t\t\t\t$toast.classList.add(settings.transitionOutMobile);\r\n\t\t} else {\r\n\t\t\tif(settings.transitionOut)\r\n\t\t\t\t$toast.classList.add(settings.transitionOut);\r\n\t\t}\r\n\t\tvar H = $toast.parentNode.offsetHeight;\r\n\t\t\t\t$toast.parentNode.style.height = H+'px';\r\n\t\t\t\t$toast.style.pointerEvents = 'none';\r\n\t\t\r\n\t\tif(!ISMOBILE || window.innerWidth > MOBILEWIDTH){\r\n\t\t\t$toast.parentNode.style.transitionDelay = '0.2s';\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tsettings.closedBy = closedBy;\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closing', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t\r\n\t\t\t$toast.parentNode.style.height = '0px';\r\n\t\t\t$toast.parentNode.style.overflow = '';\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t\r\n\t\t\t\t$toast.parentNode.remove();\r\n\t\t\t\ttry {\r\n\t\t\t\t\tsettings.closedBy = closedBy;\r\n\t\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closed', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t\t} catch(ex){\r\n\t\t\t\t\tconsole.warn(ex);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof settings.onClosed !== 'undefined'){\r\n\t\t\t\t\tsettings.onClosed.apply(null, [settings, $toast, closedBy]);\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 1000);\r\n\t\t}, 200);\r\n\r\n\r\n\t\tif(typeof settings.onClosing !== 'undefined'){\r\n\t\t\tsettings.onClosing.apply(null, [settings, $toast, closedBy]);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Create and show the Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.show = function (options) {\r\n\r\n\t\tvar that = this;\r\n\r\n\t\t// Merge user options with defaults\r\n\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(defaults, settings);\r\n\r\n\t\t\tsettings.TIME = {};\r\n\r\n\t\tif(settings.toastOnce && settings.id && document.querySelectorAll('.'+PLUGIN_NAME+'#'+settings.id).length > 0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tsettings.REF = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);\r\n\r\n\t\tvar $DOM = {\r\n\t\t\tbody: document.querySelector('body'),\r\n\t\t\toverlay: document.createElement('div'),\r\n\t\t\ttoast: document.createElement('div'),\r\n\t\t\ttoastBody: document.createElement('div'),\r\n\t\t\ttoastTexts: document.createElement('div'),\r\n\t\t\ttoastCapsule: document.createElement('div'),\r\n\t\t\ticon: document.createElement('i'),\r\n\t\t\tcover: document.createElement('div'),\r\n\t\t\tbuttons: document.createElement('div'),\r\n\t\t\twrapper: null\r\n\t\t};\r\n\r\n\t\t$DOM.toast.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t$DOM.toast.appendChild($DOM.toastBody);\r\n\t\t$DOM.toastCapsule.appendChild($DOM.toast);\r\n\r\n\t\t// CSS Settings\r\n\t\t(function(){\r\n\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME);\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toastCapsule.classList.add(PLUGIN_NAME+'-capsule');\r\n\t\t\t$DOM.toastBody.classList.add(PLUGIN_NAME + '-body');\r\n\t\t\t$DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');\r\n\r\n\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\tif(settings.transitionInMobile)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionInMobile);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.transitionIn)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionIn);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.class){\r\n\t\t\t\tvar classes = settings.class.split(' ');\r\n\t\t\t\tforEach(classes, function (value, index) {\r\n\t\t\t\t\t$DOM.toast.classList.add(value);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.id){ $DOM.toast.id = settings.id; }\r\n\r\n\t\t\tif(settings.rtl){ $DOM.toast.classList.add(PLUGIN_NAME + '-rtl'); }\r\n\r\n\t\t\tif(settings.layout > 1){ $DOM.toast.classList.add(PLUGIN_NAME+'-layout'+settings.layout); }\r\n\r\n\t\t\tif(settings.balloon){ $DOM.toast.classList.add(PLUGIN_NAME+'-balloon'); }\r\n\r\n\t\t\tif(settings.maxWidth){\r\n\t\t\t\tif( !isNaN(settings.maxWidth) ){\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth+'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.theme !== '' || settings.theme !== 'light') {\r\n\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-theme-'+settings.theme);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.color) { //#, rgb, rgba, hsl\r\n\t\t\t\t\r\n\t\t\t\tif( isColor(settings.color) ){\r\n\t\t\t\t\t$DOM.toast.style.background = settings.color;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-color-'+settings.color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.backgroundColor) {\r\n\t\t\t\t$DOM.toast.style.background = settings.backgroundColor;\r\n\t\t\t\tif(settings.balloon){\r\n\t\t\t\t\t$DOM.toast.style.borderColor = settings.backgroundColor;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Cover image\r\n\t\t(function(){\r\n\t\t\tif(settings.image) {\r\n\t\t\t\t$DOM.cover.classList.add(PLUGIN_NAME + '-cover');\r\n\t\t\t\t$DOM.cover.style.width = settings.imageWidth + 'px';\r\n\r\n\t\t\t\tif(isBase64(settings.image.replace(/ /g,''))){\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g,'') + ')';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.marginRight = (settings.imageWidth + 10) + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.marginLeft = (settings.imageWidth + 10) + 'px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toast.appendChild($DOM.cover);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Button close\r\n\t\t(function(){\r\n\t\t\tif(settings.close){\r\n\t\t\t\t\r\n\t\t\t\t$DOM.buttonClose = document.createElement('button');\r\n\r\n\t\t\t\t$DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');\r\n\t\t\t\t$DOM.buttonClose.addEventListener('click', function (e) {\r\n\t\t\t\t\tvar button = e.target;\r\n\t\t\t\t\tthat.hide($DOM.toast, settings, 'button');\r\n\t\t\t\t});\r\n\t\t\t\t$DOM.toast.appendChild($DOM.buttonClose);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toast.style.paddingLeft = '20px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.paddingRight = '20px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Progress Bar & Timeout\r\n\t\t(function(){\r\n\t\t\tif(settings.timeout) {\r\n\r\n\t\t\t\tif(settings.progressBar){\r\n\t\t\t\t\t$DOM.progressBar = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBarDiv = document.createElement('div');\r\n\t\t\t\t\t$DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');\r\n\t\t\t\t\t$DOM.progressBarDiv.style.background = settings.progressBarColor;\r\n\t\t\t\t\t$DOM.progressBar.appendChild($DOM.progressBarDiv);\r\n\t\t\t\t\t$DOM.toast.appendChild($DOM.progressBar);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.pauseOnHover && !settings.resetOnHover){\r\n\t\t\t\t\t\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).pause();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).resume();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.resetOnHover){\r\n\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthis.classList.add(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).reset();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthis.classList.remove(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Icon\r\n\t\t(function(){\r\n\t\t\tif(settings.icon) {\r\n\t\t\t\t$DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconText){\r\n\t\t\t\t\t$DOM.icon.appendChild(document.createTextNode(settings.iconText));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.paddingRight = '33px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.paddingLeft = '33px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconColor){\r\n\t\t\t\t\t$DOM.icon.style.color = settings.iconColor;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toastBody.appendChild($DOM.icon);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Title\r\n\t\t(function(){\r\n\t\t\tif(settings.title.length > 0) {\r\n\r\n\t\t\t\t$DOM.strong = document.createElement('strong');\r\n\t\t\t\t$DOM.strong.classList.add(PLUGIN_NAME + '-title');\r\n\t\t\t\t$DOM.strong.appendChild(createFragElem(settings.title));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.strong);\r\n\r\n\t\t\t\tif(settings.titleColor) {\r\n\t\t\t\t\t$DOM.strong.style.color = settings.titleColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleLineHeight) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\t\t\r\n\t\t// Message\r\n\t\t(function(){\r\n\t\t\tif(settings.message.length > 0) {\r\n\r\n\t\t\t\t$DOM.p = document.createElement('p');\r\n\t\t\t\t$DOM.p.classList.add(PLUGIN_NAME + '-message');\r\n\t\t\t\t$DOM.p.appendChild(createFragElem(settings.message));\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.p);\r\n\r\n\t\t\t\tif(settings.messageColor) {\r\n\t\t\t\t\t$DOM.p.style.color = settings.messageColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageLineHeight) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tif(settings.title.length > 0 && settings.message.length > 0) {\r\n\t\t\tif(settings.rtl){\r\n\t\t\t\t$DOM.strong.style.marginLeft = '10px';\r\n\t\t\t} else if(settings.layout !== 2 && !settings.rtl) {\r\n\t\t\t\t$DOM.strong.style.marginRight = '10px';\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$DOM.toastBody.appendChild($DOM.toastTexts);\r\n\r\n\t\t// Buttons\r\n\t\t(function(){\r\n\t\t\tif(settings.buttons.length > 0) {\r\n\r\n\t\t\t\t$DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');\r\n\r\n\t\t\t\tif(settings.title.length > 0 && settings.message.length === 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.strong.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.p.style.marginLeft = '15px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.marginRight = '15px';\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$DOM.p.style.marginBottom = '0';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tforEach(settings.buttons, function (value, index) {\r\n\t\t\t\t\t$DOM.buttons.appendChild(createFragElem(value[0]));\r\n\r\n\t\t\t\t\tvar $btns = $DOM.buttons.childNodes;\r\n\r\n\t\t\t\t\t$btns[index].classList.add(PLUGIN_NAME + '-buttons-child');\r\n\r\n\t\t\t\t\tif(value[2]){\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$btns[index].focus();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$btns[index].addEventListener('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tvar ts = value[1];\r\n\t\t\t\t\t\treturn ts(that, $DOM.toast);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t$DOM.toastBody.appendChild($DOM.buttons);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\t$DOM.toastCapsule.style.visibility = 'hidden';\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tvar H = $DOM.toast.offsetHeight;\r\n\t\t\t\tvar style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);\r\n\t\t\t\tvar marginTop = style.marginTop;\r\n\t\t\t\t\tmarginTop = marginTop.split('px');\r\n\t\t\t\t\tmarginTop = parseInt(marginTop[0]);\r\n\t\t\t\tvar marginBottom = style.marginBottom;\r\n\t\t\t\t\tmarginBottom = marginBottom.split('px');\r\n\t\t\t\t\tmarginBottom = parseInt(marginBottom[0]);\r\n\r\n\t\t\t\t$DOM.toastCapsule.style.visibility = '';\r\n\t\t\t\t$DOM.toastCapsule.style.height = (H+marginBottom+marginTop)+'px';\r\n\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$DOM.toastCapsule.style.height = 'auto';\r\n\t\t\t\t\tif(settings.target){\r\n\t\t\t\t\t\t$DOM.toastCapsule.style.overflow = 'visible';\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\tif(settings.timeout) {\r\n\t\t\t\t\tthat.progress($DOM.toast, settings).start();\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\tvar position = settings.position;\r\n\r\n\t\t\tif(settings.target){\r\n\r\n\t\t\t\t$DOM.wrapper = document.querySelector(settings.target);\r\n\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-target');\r\n\r\n\t\t\t\tif(settings.targetFirst) {\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif( POSITIONS.indexOf(settings.position) == -1 ){\r\n\t\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Incorrect position.\\nIt can be › ' + POSITIONS);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\t\tif(settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-bottomCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-topCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-center';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-'+position;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.'+position);\r\n\r\n\t\t\t\tif(!$DOM.wrapper) {\r\n\t\t\t\t\t$DOM.wrapper = document.createElement('div');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(position);\r\n\t\t\t\t\tdocument.body.appendChild($DOM.wrapper);\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight'){\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(settings.zindex)) {\r\n\t\t\t\t$DOM.wrapper.style.zIndex = settings.zindex;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('['+PLUGIN_NAME+'] Invalid zIndex.');\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.overlay) {\r\n\r\n\t\t\t\tif( document.querySelector('.'+PLUGIN_NAME+'-overlay.fadeIn') !== null ){\r\n\r\n\t\t\t\t\t$DOM.overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.REF);\r\n\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t$DOM.overlay.classList.add(PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.classList.add('fadeIn');\r\n\t\t\t\t\t$DOM.overlay.style.background = settings.overlayColor;\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', settings.REF);\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.querySelector('body').appendChild($DOM.overlay);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.overlayClose) {\r\n\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t\t$DOM.overlay.addEventListener('click', function (e) {\r\n\t\t\t\t\t\tthat.hide($DOM.toast, settings, 'overlay');\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\t// Inside animations\r\n\t\t(function(){\r\n\t\t\tif(settings.animateInside){\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-animateInside');\r\n\t\t\t\r\n\t\t\t\tvar animationTimes = [200, 100, 300];\r\n\t\t\t\tif(settings.transitionIn == 'bounceInLeft'){\r\n\t\t\t\t\tanimationTimes = [400, 200, 400];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.title.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.strong.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[0]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.p.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[1]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.icon) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.icon.classList.add('revealIn');\r\n\t\t\t\t\t}, animationTimes[2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.buttons.length > 0 && $DOM.buttons) {\r\n\t\t\t\t\tvar counter = 150;\r\n\t\t\t\t\tforEach($DOM.buttons.childNodes, function(element, index) {\r\n\r\n\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\telement.classList.add('revealIn');\r\n\t\t\t\t\t\t}, counter);\r\n\t\t\t\t\t\tcounter = counter + 150;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tsettings.onOpening.apply(null, [settings, $DOM.toast]);\r\n\r\n\t\ttry {\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\r\n\t\t\t$DOM.toast.classList.remove(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opened');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opened', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t} catch(ex){\r\n\t\t\t\tconsole.warn(ex);\r\n\t\t\t}\r\n\r\n\t\t\tsettings.onOpened.apply(null, [settings, $DOM.toast]);\r\n\t\t}, 1000);\r\n\r\n\t\tif(settings.drag){\r\n\r\n\t\t\tif(ACCEPTSTOUCH) {\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchstart', function(e) {\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('touchend', function(e) {\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t} else {\r\n\r\n\t\t\t $DOM.toast.addEventListener('mousedown', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.startMoving(this, that, settings, e);\r\n\t\t\t }, false);\r\n\r\n\t\t\t $DOM.toast.addEventListener('mouseup', function(e) {\r\n\t\t\t \te.preventDefault();\r\n\t\t\t drag.stopMoving(this, e);\r\n\t\t\t }, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(settings.closeOnEscape) {\r\n\r\n\t\t\tdocument.addEventListener('keyup', function (evt) {\r\n\t\t\t\tevt = evt || window.event;\r\n\t\t\t\tif(evt.keyCode == 27) {\r\n\t\t\t\t that.hide($DOM.toast, settings, 'esc');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthat.toast = $DOM.toast;\t\t\r\n\t};\r\n\t\r\n\r\n\treturn $iziToast;\r\n});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(53)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2l6aXRvYXN0L2Rpc3QvanMvaXppVG9hc3QuanM/NjMxNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4qIGl6aVRvYXN0IHwgdjEuMi4wXHJcbiogaHR0cDovL2l6aXRvYXN0Lm1hcmNlbG9kb2xjZS5jb21cclxuKiBieSBNYXJjZWxvIERvbGNlLlxyXG4qL1xyXG4oZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcclxuXHRpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuXHRcdGRlZmluZShbXSwgZmFjdG9yeShyb290KSk7XHJcblx0fSBlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xyXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJvb3QpO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyb290Lml6aVRvYXN0ID0gZmFjdG9yeShyb290KTtcclxuXHR9XHJcbn0pKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93IHx8IHRoaXMud2luZG93IHx8IHRoaXMuZ2xvYmFsLCBmdW5jdGlvbiAocm9vdCkge1xyXG5cclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdC8vXHJcblx0Ly8gVmFyaWFibGVzXHJcblx0Ly9cclxuXHR2YXIgJGl6aVRvYXN0ID0ge30sXHJcblx0XHRQTFVHSU5fTkFNRSA9ICdpemlUb2FzdCcsXHJcblx0XHRCT0RZID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLFxyXG5cdFx0SVNNT0JJTEUgPSAoL01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpID8gdHJ1ZSA6IGZhbHNlLFxyXG5cdFx0SVNDSFJPTUUgPSAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLFxyXG5cdFx0SVNGSVJFRk9YID0gdHlwZW9mIEluc3RhbGxUcmlnZ2VyICE9PSAndW5kZWZpbmVkJyxcclxuXHRcdEFDQ0VQVFNUT1VDSCA9ICdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcclxuXHRcdFBPU0lUSU9OUyA9IFsnYm90dG9tUmlnaHQnLCdib3R0b21MZWZ0JywnYm90dG9tQ2VudGVyJywndG9wUmlnaHQnLCd0b3BMZWZ0JywndG9wQ2VudGVyJywnY2VudGVyJ10sXHJcblx0XHRUSEVNRVMgPSB7XHJcblx0XHRcdGluZm86IHtcclxuXHRcdFx0XHRjb2xvcjogJ2JsdWUnLFxyXG5cdFx0XHRcdGljb246ICdpY28taW5mbydcclxuXHRcdFx0fSxcclxuXHRcdFx0c3VjY2Vzczoge1xyXG5cdFx0XHRcdGNvbG9yOiAnZ3JlZW4nLFxyXG5cdFx0XHRcdGljb246ICdpY28tc3VjY2VzcydcclxuXHRcdFx0fSxcclxuXHRcdFx0d2FybmluZzoge1xyXG5cdFx0XHRcdGNvbG9yOiAnb3JhbmdlJyxcclxuXHRcdFx0XHRpY29uOiAnaWNvLXdhcm5pbmcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiB7XHJcblx0XHRcdFx0Y29sb3I6ICdyZWQnLFxyXG5cdFx0XHRcdGljb246ICdpY28tZXJyb3InXHJcblx0XHRcdH0sXHJcblx0XHRcdHF1ZXN0aW9uOiB7XHJcblx0XHRcdFx0Y29sb3I6ICd5ZWxsb3cnLFxyXG5cdFx0XHRcdGljb246ICdpY28tcXVlc3Rpb24nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRNT0JJTEVXSURUSCA9IDU2OCxcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cclxuXHJcblx0Ly8gRGVmYXVsdCBzZXR0aW5nc1xyXG5cdHZhciBkZWZhdWx0cyA9IHtcclxuXHRcdGlkOiBudWxsLCBcclxuXHRcdGNsYXNzOiAnJyxcclxuXHRcdHRpdGxlOiAnJyxcclxuXHRcdHRpdGxlQ29sb3I6ICcnLFxyXG5cdFx0dGl0bGVTaXplOiAnJyxcclxuXHRcdHRpdGxlTGluZUhlaWdodDogJycsXHJcblx0XHRtZXNzYWdlOiAnJyxcclxuXHRcdG1lc3NhZ2VDb2xvcjogJycsXHJcblx0XHRtZXNzYWdlU2l6ZTogJycsXHJcblx0XHRtZXNzYWdlTGluZUhlaWdodDogJycsXHJcblx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcnLFxyXG5cdFx0dGhlbWU6ICdsaWdodCcsIC8vIGRhcmtcclxuXHRcdGNvbG9yOiAnJywgLy8gYmx1ZSwgcmVkLCBncmVlbiwgeWVsbG93XHJcblx0XHRpY29uOiAnJyxcclxuXHRcdGljb25UZXh0OiAnJyxcclxuXHRcdGljb25Db2xvcjogJycsXHJcblx0XHRpbWFnZTogJycsXHJcblx0XHRpbWFnZVdpZHRoOiA1MCxcclxuXHRcdG1heFdpZHRoOiBudWxsLFxyXG5cdFx0emluZGV4OiBudWxsLFxyXG5cdFx0bGF5b3V0OiAxLFxyXG5cdFx0YmFsbG9vbjogZmFsc2UsXHJcblx0XHRjbG9zZTogdHJ1ZSxcclxuXHRcdGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG5cdFx0cnRsOiBmYWxzZSxcclxuXHRcdHBvc2l0aW9uOiAnYm90dG9tUmlnaHQnLCAvLyBib3R0b21SaWdodCwgYm90dG9tTGVmdCwgdG9wUmlnaHQsIHRvcExlZnQsIHRvcENlbnRlciwgYm90dG9tQ2VudGVyLCBjZW50ZXJcclxuXHRcdHRhcmdldDogJycsXHJcblx0XHR0YXJnZXRGaXJzdDogdHJ1ZSxcclxuXHRcdHRvYXN0T25jZTogZmFsc2UsXHJcblx0XHR0aW1lb3V0OiA1MDAwLFxyXG5cdFx0YW5pbWF0ZUluc2lkZTogdHJ1ZSxcclxuXHRcdGRyYWc6IHRydWUsXHJcblx0XHRwYXVzZU9uSG92ZXI6IHRydWUsXHJcblx0XHRyZXNldE9uSG92ZXI6IGZhbHNlLFxyXG5cdFx0cHJvZ3Jlc3NCYXI6IHRydWUsXHJcblx0XHRwcm9ncmVzc0JhckNvbG9yOiAnJyxcclxuXHRcdHByb2dyZXNzQmFyRWFzaW5nOiAnbGluZWFyJyxcclxuXHRcdG92ZXJsYXk6IGZhbHNlLFxyXG5cdFx0b3ZlcmxheUNsb3NlOiBmYWxzZSxcclxuXHRcdG92ZXJsYXlDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC42KScsXHJcblx0XHR0cmFuc2l0aW9uSW46ICdmYWRlSW5VcCcsIC8vIGJvdW5jZUluTGVmdCwgYm91bmNlSW5SaWdodCwgYm91bmNlSW5VcCwgYm91bmNlSW5Eb3duLCBmYWRlSW4sIGZhZGVJbkRvd24sIGZhZGVJblVwLCBmYWRlSW5MZWZ0LCBmYWRlSW5SaWdodCwgZmxpcEluWFxyXG5cdFx0dHJhbnNpdGlvbk91dDogJ2ZhZGVPdXQnLCAvLyBmYWRlT3V0LCBmYWRlT3V0VXAsIGZhZGVPdXREb3duLCBmYWRlT3V0TGVmdCwgZmFkZU91dFJpZ2h0LCBmbGlwT3V0WFxyXG5cdFx0dHJhbnNpdGlvbkluTW9iaWxlOiAnZmFkZUluVXAnLFxyXG5cdFx0dHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXREb3duJyxcclxuXHRcdGJ1dHRvbnM6IHt9LFxyXG5cdFx0b25PcGVuaW5nOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uT3BlbmVkOiBmdW5jdGlvbiAoKSB7fSxcclxuXHRcdG9uQ2xvc2luZzogZnVuY3Rpb24gKCkge30sXHJcblx0XHRvbkNsb3NlZDogZnVuY3Rpb24gKCkge31cclxuXHR9O1xyXG5cclxuXHQvL1xyXG5cdC8vIE1ldGhvZHNcclxuXHQvL1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogUG9seWZpbGwgZm9yIHJlbW92ZSgpIG1ldGhvZFxyXG5cdCAqL1xyXG5cdGlmKCEoJ3JlbW92ZScgaW4gRWxlbWVudC5wcm90b3R5cGUpKSB7XHJcblx0ICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdCAgICAgICAgaWYodGhpcy5wYXJlbnROb2RlKSB7XHJcblx0ICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpO1xyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cdH1cclxuXHJcblx0LypcclxuICAgICAqIFBvbHlmaWxsIGZvciBDdXN0b21FdmVudCBmb3IgSUUgPj0gOVxyXG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0N1c3RvbUV2ZW50L0N1c3RvbUV2ZW50I1BvbHlmaWxsXHJcbiAgICAgKi9cclxuICAgIGlmKHR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICB2YXIgQ3VzdG9tRXZlbnRQb2x5ZmlsbCA9IGZ1bmN0aW9uIChldmVudCwgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiB1bmRlZmluZWQgfTtcclxuICAgICAgICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xyXG4gICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gZXZ0O1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIEN1c3RvbUV2ZW50UG9seWZpbGwucHJvdG90eXBlID0gd2luZG93LkV2ZW50LnByb3RvdHlwZTtcclxuXHJcbiAgICAgICAgd2luZG93LkN1c3RvbUV2ZW50ID0gQ3VzdG9tRXZlbnRQb2x5ZmlsbDtcclxuICAgIH0gXHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc2ltcGxlIGZvckVhY2goKSBpbXBsZW1lbnRhdGlvbiBmb3IgQXJyYXlzLCBPYmplY3RzIGFuZCBOb2RlTGlzdHNcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgaXRlbXMgdG8gaXRlcmF0ZVxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZXJhdGlvblxyXG5cdCAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fE5vZGVMaXN0fSBzY29wZSBPYmplY3QvTm9kZUxpc3QvQXJyYXkgdGhhdCBmb3JFYWNoIGlzIGl0ZXJhdGluZyBvdmVyIChha2EgYHRoaXNgKVxyXG5cdCAqL1xyXG5cdHZhciBmb3JFYWNoID0gZnVuY3Rpb24gKGNvbGxlY3Rpb24sIGNhbGxiYWNrLCBzY29wZSkge1xyXG5cdFx0aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGNvbGxlY3Rpb24pID09PSAnW29iamVjdCBPYmplY3RdJykge1xyXG5cdFx0XHRmb3IgKHZhciBwcm9wIGluIGNvbGxlY3Rpb24pIHtcclxuXHRcdFx0XHRpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29sbGVjdGlvbiwgcHJvcCkpIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25bcHJvcF0sIHByb3AsIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYoY29sbGVjdGlvbil7XHJcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuXHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwoc2NvcGUsIGNvbGxlY3Rpb25baV0sIGksIGNvbGxlY3Rpb24pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1lcmdlIGRlZmF1bHRzIHdpdGggdXNlciBvcHRpb25zXHJcblx0ICogQHByaXZhdGVcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdHMgRGVmYXVsdCBzZXR0aW5nc1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgb3B0aW9uc1xyXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9IE1lcmdlZCB2YWx1ZXMgb2YgZGVmYXVsdHMgYW5kIG9wdGlvbnNcclxuXHQgKi9cclxuXHR2YXIgZXh0ZW5kID0gZnVuY3Rpb24gKGRlZmF1bHRzLCBvcHRpb25zKSB7XHJcblx0XHR2YXIgZXh0ZW5kZWQgPSB7fTtcclxuXHRcdGZvckVhY2goZGVmYXVsdHMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IGRlZmF1bHRzW3Byb3BdO1xyXG5cdFx0fSk7XHJcblx0XHRmb3JFYWNoKG9wdGlvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkge1xyXG5cdFx0XHRleHRlbmRlZFtwcm9wXSA9IG9wdGlvbnNbcHJvcF07XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiBleHRlbmRlZDtcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlIGEgZnJhZ21lbnQgRE9NIGVsZW1lbnRzXHJcblx0ICogQHByaXZhdGVcclxuXHQgKi9cclxuXHR2YXIgY3JlYXRlRnJhZ0VsZW0gPSBmdW5jdGlvbihodG1sU3RyKSB7XHJcblx0XHR2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxcclxuXHRcdFx0dGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0dGVtcC5pbm5lckhUTUwgPSBodG1sU3RyO1xyXG5cdFx0d2hpbGUgKHRlbXAuZmlyc3RDaGlsZCkge1xyXG5cdFx0XHRmcmFnLmFwcGVuZENoaWxkKHRlbXAuZmlyc3RDaGlsZCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZnJhZztcclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgaXMgYSBjb2xvclxyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGlzQ29sb3IgPSBmdW5jdGlvbihjb2xvcil7XHJcblx0XHRpZiggY29sb3Iuc3Vic3RyaW5nKDAsMSkgPT0gJyMnIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdyZ2InIHx8IGNvbG9yLnN1YnN0cmluZygwLDMpID09ICdoc2wnICl7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBpZiBpcyBhIEJhc2U2NCBzdHJpbmdcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdHZhciBpc0Jhc2U2NCA9IGZ1bmN0aW9uKHN0cikge1xyXG5cdCAgICB0cnkge1xyXG5cdCAgICAgICAgcmV0dXJuIGJ0b2EoYXRvYihzdHIpKSA9PSBzdHI7XHJcblx0ICAgIH0gY2F0Y2ggKGVycikge1xyXG5cdCAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cdCAgICB9XHJcblx0fTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERyYWcgbWV0aG9kIG9mIHRvYXN0c1xyXG5cdCAqIEBwcml2YXRlXHJcblx0ICovXHJcblx0dmFyIGRyYWcgPSBmdW5jdGlvbigpIHtcclxuXHQgICAgXHJcblx0ICAgIHJldHVybiB7XHJcblx0ICAgICAgICBtb3ZlOiBmdW5jdGlvbih0b2FzdCwgaW5zdGFuY2UsIHNldHRpbmdzLCB4cG9zKSB7XHJcblxyXG5cdCAgICAgICAgXHR2YXIgb3BhY2l0eSxcclxuXHQgICAgICAgIFx0XHRvcGFjaXR5UmFuZ2UgPSAwLjMsXHJcblx0ICAgICAgICBcdFx0ZGlzdGFuY2UgPSAxODA7XHJcblx0ICAgICAgICAgICAgXHJcblx0ICAgICAgICAgICAgaWYoeHBvcyAhPT0gMCl7XHJcblx0ICAgICAgICAgICAgXHRcclxuXHQgICAgICAgICAgICBcdHRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1kcmFnZ2VkJyk7XHJcblxyXG5cdCAgICAgICAgICAgIFx0dG9hc3Quc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoJyt4cG9zICsgJ3B4KSc7XHJcblxyXG5cdFx0ICAgICAgICAgICAgaWYoeHBvcyA+IDApe1xyXG5cdFx0ICAgICAgICAgICAgXHRvcGFjaXR5ID0gKGRpc3RhbmNlLXhwb3MpIC8gZGlzdGFuY2U7XHJcblx0XHQgICAgICAgICAgICBcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cdFx0XHRcdFx0XHRcdGluc3RhbmNlLmhpZGUodG9hc3QsIGV4dGVuZChzZXR0aW5ncywgeyB0cmFuc2l0aW9uT3V0OiAnZmFkZU91dFJpZ2h0JywgdHJhbnNpdGlvbk91dE1vYmlsZTogJ2ZhZGVPdXRSaWdodCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH0gZWxzZSB7XHJcblx0XHQgICAgICAgICAgICBcdG9wYWNpdHkgPSAoZGlzdGFuY2UreHBvcykgLyBkaXN0YW5jZTtcclxuXHRcdCAgICAgICAgICAgIFx0aWYob3BhY2l0eSA8IG9wYWNpdHlSYW5nZSl7XHJcblx0XHRcdFx0XHRcdFx0aW5zdGFuY2UuaGlkZSh0b2FzdCwgZXh0ZW5kKHNldHRpbmdzLCB7IHRyYW5zaXRpb25PdXQ6ICdmYWRlT3V0TGVmdCcsIHRyYW5zaXRpb25PdXRNb2JpbGU6ICdmYWRlT3V0TGVmdCcgfSksICdkcmFnJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdCAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG5cdFx0XHRcclxuXHRcdFx0XHRcdGlmKG9wYWNpdHkgPCBvcGFjaXR5UmFuZ2Upe1xyXG5cclxuXHRcdFx0XHRcdFx0aWYoSVNDSFJPTUUgfHwgSVNGSVJFRk9YKVxyXG5cdFx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLmxlZnQgPSB4cG9zKydweCc7XHJcblxyXG5cdFx0XHRcdFx0XHR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5UmFuZ2U7XHJcblxyXG5cdFx0ICAgICAgICAgICAgICAgIHRoaXMuc3RvcE1vdmluZyh0b2FzdCwgbnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHRcdFx0XHRcclxuXHQgICAgICAgIH0sXHJcblx0ICAgICAgICBzdGFydE1vdmluZzogZnVuY3Rpb24odG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZSkge1xyXG5cclxuXHQgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgdmFyIHBvc1ggPSAoKEFDQ0VQVFNUT1VDSCkgPyBlLnRvdWNoZXNbMF0uY2xpZW50WCA6IGUuY2xpZW50WCksXHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKCdweCknLCAnJyk7XHJcblx0ICAgICAgICAgICAgICAgIHRvYXN0TGVmdCA9IHRvYXN0TGVmdC5yZXBsYWNlKCd0cmFuc2xhdGVYKCcsICcnKTtcclxuXHQgICAgICAgICAgICB2YXIgb2Zmc2V0WCA9IHBvc1ggLSB0b2FzdExlZnQ7XHJcblxyXG5cdFx0XHRcdHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0XHR0b2FzdC5jbGFzc0xpc3QucmVtb3ZlKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSk7XHJcblx0XHRcdFx0dG9hc3Quc3R5bGUudHJhbnNpdGlvbiA9ICcnO1xyXG5cclxuXHQgICAgICAgICAgICBpZihBQ0NFUFRTVE9VQ0gpIHtcclxuXHQgICAgICAgICAgICAgICAgZG9jdW1lbnQub250b3VjaG1vdmUgPSBmdW5jdGlvbihlKSB7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0ICAgICAgICAgICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0ICAgICAgICAgICAgICAgICAgICB2YXIgcG9zWCA9IGUudG91Y2hlc1swXS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9IGVsc2Uge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IGZ1bmN0aW9uKGUpIHtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuXHQgICAgICAgICAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuXHQgICAgICAgICAgICAgICAgICAgIHZhciBwb3NYID0gZS5jbGllbnRYLFxyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsWCA9IHBvc1ggLSBvZmZzZXRYO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnLm1vdmUodG9hc3QsIGluc3RhbmNlLCBzZXR0aW5ncywgZmluYWxYKTtcclxuXHQgICAgICAgICAgICAgICAgfTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHN0b3BNb3Zpbmc6IGZ1bmN0aW9uKHRvYXN0LCBlKSB7XHJcblxyXG5cdCAgICAgICAgICAgIGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cdCAgICAgICAgICAgICAgICBkb2N1bWVudC5vbnRvdWNobW92ZSA9IGZ1bmN0aW9uKCkge307XHJcblx0ICAgICAgICAgICAgfSBlbHNlIHtcclxuXHQgICAgICAgICAgICBcdGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oKSB7fTtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdFx0XHRcdHRvYXN0LnN0eWxlLm9wYWNpdHkgPSAnJztcclxuXHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2Zvcm0gPSAnJztcclxuXHJcblx0ICAgICAgICAgICAgaWYodG9hc3QuY2xhc3NMaXN0LmNvbnRhaW5zKFBMVUdJTl9OQU1FKyctZHJhZ2dlZCcpKXtcclxuXHQgICAgICAgICAgICBcdFxyXG5cdCAgICAgICAgICAgIFx0dG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLWRyYWdnZWQnKTtcclxuXHJcblx0XHRcdFx0XHR0b2FzdC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSAwLjRzIGVhc2UsIG9wYWNpdHkgMC40cyBlYXNlJztcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHRvYXN0LnN0eWxlLnRyYW5zaXRpb24gPSAnJztcclxuXHRcdFx0XHRcdH0sIDQwMCk7XHJcblx0ICAgICAgICAgICAgfVxyXG5cclxuXHQgICAgICAgIH1cclxuXHQgICAgfTtcclxuXHJcblx0fSgpO1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveSB0aGUgY3VycmVudCBpbml0aWFsaXphdGlvbi5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0JGl6aVRvYXN0LmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XHJcblxyXG5cdFx0Zm9yRWFjaChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnLXdyYXBwZXInKSwgZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHtcclxuXHRcdFx0ZWxlbWVudC5yZW1vdmUoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGZvckVhY2goZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLicrUExVR0lOX05BTUUpLCBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG5cdFx0XHRlbGVtZW50LnJlbW92ZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihQTFVHSU5fTkFNRSsnLW9wZW5lZCcsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctb3BlbmluZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2luZycsIHt9LCBmYWxzZSk7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFBMVUdJTl9OQU1FKyctY2xvc2VkJywge30sIGZhbHNlKTtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywge30sIGZhbHNlKTtcclxuXHJcblx0XHQvLyBSZXNldCB2YXJpYWJsZXNcclxuXHRcdENPTkZJRyA9IHt9O1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluaXRpYWxpemUgUGx1Z2luXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3Quc2V0dGluZ3MgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG5cclxuXHRcdC8vIERlc3Ryb3kgYW55IGV4aXN0aW5nIGluaXRpYWxpemF0aW9uc1xyXG5cdFx0JGl6aVRvYXN0LmRlc3Ryb3koKTtcclxuXHJcblx0XHRDT05GSUcgPSBvcHRpb25zO1xyXG5cdFx0ZGVmYXVsdHMgPSBleHRlbmQoZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pO1xyXG5cdH07XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBCdWlsZGluZyB0aGVtZXMgZnVuY3Rpb25zLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBVc2VyIHNldHRpbmdzXHJcblx0ICovXHJcblx0Zm9yRWFjaChUSEVNRVMsIGZ1bmN0aW9uICh0aGVtZSwgbmFtZSkge1xyXG5cclxuXHRcdCRpemlUb2FzdFtuYW1lXSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcblxyXG5cdFx0XHR2YXIgc2V0dGluZ3MgPSBleHRlbmQoQ09ORklHLCBvcHRpb25zIHx8IHt9KTtcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhlbWUsIHNldHRpbmdzIHx8IHt9KTtcclxuXHJcblx0XHRcdHRoaXMuc2hvdyhzZXR0aW5ncyk7XHJcblx0XHR9O1xyXG5cclxuXHR9KTtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERvIHRoZSBjYWxjdWxhdGlvbiB0byBtb3ZlIHRoZSBwcm9ncmVzcyBiYXJcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqL1xyXG5cdCAkaXppVG9hc3QucHJvZ3Jlc3MgPSBmdW5jdGlvbiAoJHRvYXN0LCBvcHRpb25zLCBjYWxsYmFjaykge1xyXG5cclxuXHRcdHZhciB0aGF0ID0gdGhpcyxcclxuXHRcdFx0c2V0dGluZ3MgPSBleHRlbmQodGhhdC5zZXR0aW5ncywgb3B0aW9ucyB8fCB7fSksXHJcblx0XHRcdCRlbGVtID0gJHRvYXN0LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctcHJvZ3Jlc3NiYXIgZGl2Jyk7XHJcblxyXG5cdCAgICByZXR1cm4ge1xyXG5cdCAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xyXG5cclxuXHQgICAgICAgIFx0aWYoJGVsZW0gIT09IG51bGwpe1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUudHJhbnNpdGlvbiA9ICd3aWR0aCAnKyBzZXR0aW5ncy50aW1lb3V0ICsnbXMgJytzZXR0aW5ncy5wcm9ncmVzc0JhckVhc2luZztcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLndpZHRoID0gJzAlJztcclxuXHRcdFx0XHR9XHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuU1RBUlQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHQgICAgICAgIFx0c2V0dGluZ3MuVElNRS5FTkQgPSBzZXR0aW5ncy5USU1FLlNUQVJUICsgc2V0dGluZ3MudGltZW91dDtcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdH0sIHNldHRpbmdzLnRpbWVvdXQpO1xyXG5cdFx0XHRcdFxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHBhdXNlOiBmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0c2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgPSBzZXR0aW5ncy5USU1FLkVORCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoJGVsZW0pLFxyXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVdpZHRoID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpO1xyXG5cclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9IHByb3BlcnR5V2lkdGg7XHRcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1x0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fSwgMTApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICB9LFxyXG5cdCAgICAgICAgcmVzdW1lOiBmdW5jdGlvbigpIHtcclxuXHJcblx0ICAgICAgICBcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnd2lkdGggJysgc2V0dGluZ3MuVElNRS5SRU1BSU5JTkcgKydtcyAnK3NldHRpbmdzLnByb2dyZXNzQmFyRWFzaW5nO1xyXG5cdFx0XHRcdFx0JGVsZW0uc3R5bGUud2lkdGggPSAnMCUnO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0ICAgICAgICBcdHNldHRpbmdzLlRJTUUuRU5EID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBzZXR0aW5ncy5USU1FLlJFTUFJTklORztcclxuXHRcdFx0XHRzZXR0aW5ncy5USU1FLlRJTUVSID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdFx0aWYoISR0b2FzdC5jbGFzc0xpc3QuY29udGFpbnMoUExVR0lOX05BTUUrJy1jbG9zaW5nJykpe1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5oaWRlKCR0b2FzdCwgc2V0dGluZ3MsICd0aW1lb3V0Jyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrLmFwcGx5KHRoYXQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHR9LCBzZXR0aW5ncy5USU1FLlJFTUFJTklORyk7XHJcblxyXG5cdCAgICAgICAgfSxcclxuXHQgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoc2V0dGluZ3MuVElNRS5USU1FUik7XHJcblxyXG5cdFx0XHRcdGlmKCRlbGVtICE9PSBudWxsKXtcclxuXHRcdFx0XHRcdCRlbGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcblx0XHRcdFx0XHQkZWxlbS5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRjYWxsYmFjay5hcHBseSh0aGF0KTtcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH0sIDEwKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9O1xyXG5cclxuXHR9O1xyXG5cclxuXHJcblx0LyoqXHJcblx0ICogQ2xvc2UgdGhlIHNwZWNpZmljIFRvYXN0XHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFVzZXIgc2V0dGluZ3NcclxuXHQgKi9cclxuXHQkaXppVG9hc3QuaGlkZSA9IGZ1bmN0aW9uICgkdG9hc3QsIG9wdGlvbnMsIGNsb3NlZEJ5KSB7XHJcblxyXG5cdFx0dmFyIHNldHRpbmdzID0gZXh0ZW5kKHRoaXMuc2V0dGluZ3MsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRjbG9zZWRCeSA9IGNsb3NlZEJ5IHx8IG51bGw7XHJcblxyXG5cdFx0aWYodHlwZW9mICR0b2FzdCAhPSAnb2JqZWN0Jyl7XHJcblx0XHRcdCR0b2FzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJHRvYXN0KTtcclxuXHRcdH1cclxuXHJcblx0XHQkdG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNsb3NpbmcnKTtcclxuXHJcblx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0c2V0dGluZ3MuUkVGID0gJHRvYXN0LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKTtcclxuXHJcblx0XHQvLyBPdmVybGF5XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHJcblx0XHRcdHZhciAkb3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nK1BMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRpZigkb3ZlcmxheSAhPT0gbnVsbCl7XHJcblx0XHRcdFx0dmFyIHJlZnMgPSAkb3ZlcmxheS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJyk7XHRcdFxyXG5cdFx0XHRcdFx0cmVmcyA9IHJlZnMuc3BsaXQoJywnKTtcclxuXHRcdFx0XHR2YXIgaW5kZXggPSByZWZzLmluZGV4T2Yoc2V0dGluZ3MuUkVGKTtcclxuXHJcblx0XHRcdFx0aWYoaW5kZXggIT09IC0xKXtcclxuXHRcdFx0XHRcdHJlZnMuc3BsaWNlKGluZGV4LCAxKTtcdFx0XHRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JG92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHJlZnMuam9pbigpKTtcclxuXHJcblx0XHRcdFx0aWYocmVmcy5sZW5ndGggPT09IDApe1xyXG5cdFx0XHRcdFx0JG92ZXJsYXkuY2xhc3NMaXN0LnJlbW92ZSgnZmFkZUluJyk7XHJcblx0XHRcdFx0XHQkb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdmYWRlT3V0Jyk7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHQkb3ZlcmxheS5yZW1vdmUoKTtcclxuXHRcdFx0XHRcdH0sIDcwMCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uSW4gfHwgc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKXtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluKTtcclxuXHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5yZW1vdmUoc2V0dGluZ3MudHJhbnNpdGlvbkluTW9iaWxlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZihJU01PQklMRSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA8PSBNT0JJTEVXSURUSCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25PdXRNb2JpbGUpXHJcblx0XHRcdFx0JHRvYXN0LmNsYXNzTGlzdC5hZGQoc2V0dGluZ3MudHJhbnNpdGlvbk91dE1vYmlsZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZihzZXR0aW5ncy50cmFuc2l0aW9uT3V0KVxyXG5cdFx0XHRcdCR0b2FzdC5jbGFzc0xpc3QuYWRkKHNldHRpbmdzLnRyYW5zaXRpb25PdXQpO1xyXG5cdFx0fVxyXG5cdFx0dmFyIEggPSAkdG9hc3QucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQ7XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gSCsncHgnO1xyXG5cdFx0XHRcdCR0b2FzdC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG5cdFx0XHJcblx0XHRpZighSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPiBNT0JJTEVXSURUSCl7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLnRyYW5zaXRpb25EZWxheSA9ICcwLjJzJztcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRzZXR0aW5ncy5jbG9zZWRCeSA9IGNsb3NlZEJ5O1xyXG5cdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zaW5nJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHR9IGNhdGNoKGV4KXtcclxuXHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdH1cclxuXHJcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcclxuXHRcdFx0JHRvYXN0LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XHJcblx0XHRcdCR0b2FzdC5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93ID0gJyc7XHJcblxyXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JHRvYXN0LnBhcmVudE5vZGUucmVtb3ZlKCk7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdHNldHRpbmdzLmNsb3NlZEJ5ID0gY2xvc2VkQnk7XHJcblx0XHRcdFx0XHR2YXIgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoUExVR0lOX05BTUUrJy1jbG9zZWQnLCB7ZGV0YWlsOiBzZXR0aW5ncywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZX0pO1xyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcblx0XHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oZXgpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYodHlwZW9mIHNldHRpbmdzLm9uQ2xvc2VkICE9PSAndW5kZWZpbmVkJyl7XHJcblx0XHRcdFx0XHRzZXR0aW5ncy5vbkNsb3NlZC5hcHBseShudWxsLCBbc2V0dGluZ3MsICR0b2FzdCwgY2xvc2VkQnldKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LCAxMDAwKTtcclxuXHRcdH0sIDIwMCk7XHJcblxyXG5cclxuXHRcdGlmKHR5cGVvZiBzZXR0aW5ncy5vbkNsb3NpbmcgIT09ICd1bmRlZmluZWQnKXtcclxuXHRcdFx0c2V0dGluZ3Mub25DbG9zaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJHRvYXN0LCBjbG9zZWRCeV0pO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZSBhbmQgc2hvdyB0aGUgVG9hc3RcclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVXNlciBzZXR0aW5nc1xyXG5cdCAqL1xyXG5cdCRpemlUb2FzdC5zaG93ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuXHJcblx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0Ly8gTWVyZ2UgdXNlciBvcHRpb25zIHdpdGggZGVmYXVsdHNcclxuXHRcdHZhciBzZXR0aW5ncyA9IGV4dGVuZChDT05GSUcsIG9wdGlvbnMgfHwge30pO1xyXG5cdFx0XHRzZXR0aW5ncyA9IGV4dGVuZChkZWZhdWx0cywgc2V0dGluZ3MpO1xyXG5cclxuXHRcdFx0c2V0dGluZ3MuVElNRSA9IHt9O1xyXG5cclxuXHRcdGlmKHNldHRpbmdzLnRvYXN0T25jZSAmJiBzZXR0aW5ncy5pZCAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJytQTFVHSU5fTkFNRSsnIycrc2V0dGluZ3MuaWQpLmxlbmd0aCA+IDApe1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0dGluZ3MuUkVGID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDApICsgMSk7XHJcblxyXG5cdFx0dmFyICRET00gPSB7XHJcblx0XHRcdGJvZHk6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKSxcclxuXHRcdFx0b3ZlcmxheTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RCb2R5OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0dG9hc3RUZXh0czogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdHRvYXN0Q2Fwc3VsZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcblx0XHRcdGljb246IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKSxcclxuXHRcdFx0Y292ZXI6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxyXG5cdFx0XHRidXR0b25zOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcclxuXHRcdFx0d3JhcHBlcjogbnVsbFxyXG5cdFx0fTtcclxuXHJcblx0XHQkRE9NLnRvYXN0LnNldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnLCBzZXR0aW5ncy5SRUYpO1xyXG5cdFx0JERPTS50b2FzdC5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Qm9keSk7XHJcblx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0KTtcclxuXHJcblx0XHQvLyBDU1MgU2V0dGluZ3NcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmluZycpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctY2Fwc3VsZScpO1xyXG5cdFx0XHQkRE9NLnRvYXN0Qm9keS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1ib2R5Jyk7XHJcblx0XHRcdCRET00udG9hc3RUZXh0cy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy10ZXh0cycpO1xyXG5cclxuXHRcdFx0aWYoSVNNT0JJTEUgfHwgd2luZG93LmlubmVyV2lkdGggPD0gTU9CSUxFV0lEVEgpe1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25Jbk1vYmlsZSlcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW5Nb2JpbGUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRyYW5zaXRpb25JbilcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChzZXR0aW5ncy50cmFuc2l0aW9uSW4pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5jbGFzcyl7XHJcblx0XHRcdFx0dmFyIGNsYXNzZXMgPSBzZXR0aW5ncy5jbGFzcy5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdGZvckVhY2goY2xhc3NlcywgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKHZhbHVlKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuaWQpeyAkRE9NLnRvYXN0LmlkID0gc2V0dGluZ3MuaWQ7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7ICRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctcnRsJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmxheW91dCA+IDEpeyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1sYXlvdXQnK3NldHRpbmdzLmxheW91dCk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24peyAkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1iYWxsb29uJyk7IH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLm1heFdpZHRoKXtcclxuXHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLm1heFdpZHRoKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5tYXhXaWR0aCA9IHNldHRpbmdzLm1heFdpZHRoKydweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUubWF4V2lkdGggPSBzZXR0aW5ncy5tYXhXaWR0aDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRoZW1lICE9PSAnJyB8fCBzZXR0aW5ncy50aGVtZSAhPT0gJ2xpZ2h0Jykge1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy10aGVtZS0nK3NldHRpbmdzLnRoZW1lKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuY29sb3IpIHsgLy8jLCByZ2IsIHJnYmEsIGhzbFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlmKCBpc0NvbG9yKHNldHRpbmdzLmNvbG9yKSApe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuY29sb3I7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLWNvbG9yLScrc2V0dGluZ3MuY29sb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSB7XHJcblx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5iYWNrZ3JvdW5kID0gc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yO1xyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmJhbGxvb24pe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5zdHlsZS5ib3JkZXJDb2xvciA9IHNldHRpbmdzLmJhY2tncm91bmRDb2xvcjtcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBDb3ZlciBpbWFnZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmltYWdlKSB7XHJcblx0XHRcdFx0JERPTS5jb3Zlci5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1jb3ZlcicpO1xyXG5cdFx0XHRcdCRET00uY292ZXIuc3R5bGUud2lkdGggPSBzZXR0aW5ncy5pbWFnZVdpZHRoICsgJ3B4JztcclxuXHJcblx0XHRcdFx0aWYoaXNCYXNlNjQoc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSkpe1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgc2V0dGluZ3MuaW1hZ2UucmVwbGFjZSgvIC9nLCcnKSArICcpJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKCcgKyBzZXR0aW5ncy5pbWFnZSArICcpJztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5tYXJnaW5SaWdodCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUubWFyZ2luTGVmdCA9IChzZXR0aW5ncy5pbWFnZVdpZHRoICsgMTApICsgJ3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0LmFwcGVuZENoaWxkKCRET00uY292ZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEJ1dHRvbiBjbG9zZVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdGlmKHNldHRpbmdzLmNsb3NlKXtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9uQ2xvc2UuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctY2xvc2UnKTtcclxuXHRcdFx0XHQkRE9NLmJ1dHRvbkNsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdHZhciBidXR0b24gPSBlLnRhcmdldDtcclxuXHRcdFx0XHRcdHRoYXQuaGlkZSgkRE9NLnRvYXN0LCBzZXR0aW5ncywgJ2J1dHRvbicpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5idXR0b25DbG9zZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ0xlZnQgPSAnMjBweCc7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3Quc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzIwcHgnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBQcm9ncmVzcyBCYXIgJiBUaW1lb3V0XHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGltZW91dCkge1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wcm9ncmVzc0Jhcil7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXByb2dyZXNzYmFyJyk7XHJcblx0XHRcdFx0XHQkRE9NLnByb2dyZXNzQmFyRGl2LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5wcm9ncmVzc0JhckNvbG9yO1xyXG5cdFx0XHRcdFx0JERPTS5wcm9ncmVzc0Jhci5hcHBlbmRDaGlsZCgkRE9NLnByb2dyZXNzQmFyRGl2KTtcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYXBwZW5kQ2hpbGQoJERPTS5wcm9ncmVzc0Jhcik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5wYXVzZU9uSG92ZXIgJiYgIXNldHRpbmdzLnJlc2V0T25Ib3Zlcil7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSsnLXBhdXNlZCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5wcm9ncmVzcygkRE9NLnRvYXN0LCBzZXR0aW5ncykucGF1c2UoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jbGFzc0xpc3QucmVtb3ZlKFBMVUdJTl9OQU1FKyctcGF1c2VkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXN1bWUoKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucmVzZXRPbkhvdmVyKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5yZXNldCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNsYXNzTGlzdC5yZW1vdmUoUExVR0lOX05BTUUrJy1yZXNldGVkJyk7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnByb2dyZXNzKCRET00udG9hc3QsIHNldHRpbmdzKS5zdGFydCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEljb25cclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5pY29uKSB7XHJcblx0XHRcdFx0JERPTS5pY29uLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBQTFVHSU5fTkFNRSArICctaWNvbiAnICsgc2V0dGluZ3MuaWNvbik7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MuaWNvblRleHQpe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNldHRpbmdzLmljb25UZXh0KSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0JERPTS50b2FzdEJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gJzMzcHgnO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5zdHlsZS5wYWRkaW5nTGVmdCA9ICczM3B4JztcdFx0XHRcdFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZihzZXR0aW5ncy5pY29uQ29sb3Ipe1xyXG5cdFx0XHRcdFx0JERPTS5pY29uLnN0eWxlLmNvbG9yID0gc2V0dGluZ3MuaWNvbkNvbG9yO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQkRE9NLnRvYXN0Qm9keS5hcHBlbmRDaGlsZCgkRE9NLmljb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRpdGxlXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cclxuXHRcdFx0XHQkRE9NLnN0cm9uZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0cm9uZycpO1xyXG5cdFx0XHRcdCRET00uc3Ryb25nLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXRpdGxlJyk7XHJcblx0XHRcdFx0JERPTS5zdHJvbmcuYXBwZW5kQ2hpbGQoY3JlYXRlRnJhZ0VsZW0oc2V0dGluZ3MudGl0bGUpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5zdHJvbmcpO1xyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy50aXRsZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5jb2xvciA9IHNldHRpbmdzLnRpdGxlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlU2l6ZSkge1xyXG5cdFx0XHRcdFx0aWYoICFpc05hTihzZXR0aW5ncy50aXRsZVNpemUpICl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MudGl0bGVTaXplKydweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLnRpdGxlU2l6ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGVMaW5lSGVpZ2h0KSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5zdHJvbmcuc3R5bGUubGluZUhlaWdodCA9IHNldHRpbmdzLnRpdGxlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblx0XHRcclxuXHRcdC8vIE1lc3NhZ2VcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHJcblx0XHRcdFx0JERPTS5wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG5cdFx0XHRcdCRET00ucC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1tZXNzYWdlJyk7XHJcblx0XHRcdFx0JERPTS5wLmFwcGVuZENoaWxkKGNyZWF0ZUZyYWdFbGVtKHNldHRpbmdzLm1lc3NhZ2UpKTtcclxuXHRcdFx0XHQkRE9NLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQoJERPTS5wKTtcclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZUNvbG9yKSB7XHJcblx0XHRcdFx0XHQkRE9NLnAuc3R5bGUuY29sb3IgPSBzZXR0aW5ncy5tZXNzYWdlQ29sb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLm1lc3NhZ2VTaXplKSB7XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmZvbnRTaXplID0gc2V0dGluZ3MubWVzc2FnZVNpemUrJ3B4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5mb250U2l6ZSA9IHNldHRpbmdzLm1lc3NhZ2VTaXplO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCkge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRpZiggIWlzTmFOKHNldHRpbmdzLnRpdGxlU2l6ZSkgKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodCsncHgnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0JERPTS5wLnN0eWxlLmxpbmVIZWlnaHQgPSBzZXR0aW5ncy5tZXNzYWdlTGluZUhlaWdodDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCAmJiBzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0aWYoc2V0dGluZ3MucnRsKXtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5MZWZ0ID0gJzEwcHgnO1xyXG5cdFx0XHR9IGVsc2UgaWYoc2V0dGluZ3MubGF5b3V0ICE9PSAyICYmICFzZXR0aW5ncy5ydGwpIHtcclxuXHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxMHB4JztcdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JERPTS50b2FzdEJvZHkuYXBwZW5kQ2hpbGQoJERPTS50b2FzdFRleHRzKTtcclxuXHJcblx0XHQvLyBCdXR0b25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYnV0dG9ucy5sZW5ndGggPiAwKSB7XHJcblxyXG5cdFx0XHRcdCRET00uYnV0dG9ucy5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zJyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpdGxlLmxlbmd0aCA+IDAgJiYgc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnJ0bCl7XHJcblx0XHRcdFx0XHRcdCRET00uc3Ryb25nLnN0eWxlLm1hcmdpbkxlZnQgPSAnMTVweCc7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MubWVzc2FnZS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRpZihzZXR0aW5ncy5ydGwpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnAuc3R5bGUubWFyZ2luTGVmdCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5SaWdodCA9ICcxNXB4JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCRET00ucC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnMCc7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRmb3JFYWNoKHNldHRpbmdzLmJ1dHRvbnMsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdCRET00uYnV0dG9ucy5hcHBlbmRDaGlsZChjcmVhdGVGcmFnRWxlbSh2YWx1ZVswXSkpO1xyXG5cclxuXHRcdFx0XHRcdHZhciAkYnRucyA9ICRET00uYnV0dG9ucy5jaGlsZE5vZGVzO1xyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FICsgJy1idXR0b25zLWNoaWxkJyk7XHJcblxyXG5cdFx0XHRcdFx0aWYodmFsdWVbMl0pe1xyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdCRidG5zW2luZGV4XS5mb2N1cygpO1xyXG5cdFx0XHRcdFx0XHR9LCAzMDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCRidG5zW2luZGV4XS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0dmFyIHRzID0gdmFsdWVbMV07XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cyh0aGF0LCAkRE9NLnRvYXN0KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdCRET00udG9hc3RCb2R5LmFwcGVuZENoaWxkKCRET00uYnV0dG9ucyk7XHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIFRhcmdldFxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgSCA9ICRET00udG9hc3Qub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0XHRcdHZhciBzdHlsZSA9ICRET00udG9hc3QuY3VycmVudFN0eWxlIHx8IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCRET00udG9hc3QpO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Ub3AgPSBzdHlsZS5tYXJnaW5Ub3A7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBtYXJnaW5Ub3Auc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Ub3AgPSBwYXJzZUludChtYXJnaW5Ub3BbMF0pO1xyXG5cdFx0XHRcdHZhciBtYXJnaW5Cb3R0b20gPSBzdHlsZS5tYXJnaW5Cb3R0b207XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBtYXJnaW5Cb3R0b20uc3BsaXQoJ3B4Jyk7XHJcblx0XHRcdFx0XHRtYXJnaW5Cb3R0b20gPSBwYXJzZUludChtYXJnaW5Cb3R0b21bMF0pO1xyXG5cclxuXHRcdFx0XHQkRE9NLnRvYXN0Q2Fwc3VsZS5zdHlsZS52aXNpYmlsaXR5ID0gJyc7XHJcblx0XHRcdFx0JERPTS50b2FzdENhcHN1bGUuc3R5bGUuaGVpZ2h0ID0gKEgrbWFyZ2luQm90dG9tK21hcmdpblRvcCkrJ3B4JztcclxuXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblx0XHRcdFx0XHRcdCRET00udG9hc3RDYXBzdWxlLnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIDUwMCk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRpbWVvdXQpIHtcclxuXHRcdFx0XHRcdHRoYXQucHJvZ3Jlc3MoJERPTS50b2FzdCwgc2V0dGluZ3MpLnN0YXJ0KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCAxMDApO1xyXG5cdFx0fSkoKTtcclxuXHJcblx0XHQvLyBUYXJnZXRcclxuXHRcdChmdW5jdGlvbigpe1xyXG5cdFx0XHR2YXIgcG9zaXRpb24gPSBzZXR0aW5ncy5wb3NpdGlvbjtcclxuXHJcblx0XHRcdGlmKHNldHRpbmdzLnRhcmdldCl7XHJcblxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2V0dGluZ3MudGFyZ2V0KTtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuY2xhc3NMaXN0LmFkZChQTFVHSU5fTkFNRSArICctdGFyZ2V0Jyk7XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLnRhcmdldEZpcnN0KSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuaW5zZXJ0QmVmb3JlKCRET00udG9hc3RDYXBzdWxlLCAkRE9NLndyYXBwZXIuZmlyc3RDaGlsZCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5hcHBlbmRDaGlsZCgkRE9NLnRvYXN0Q2Fwc3VsZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0aWYoIFBPU0lUSU9OUy5pbmRleE9mKHNldHRpbmdzLnBvc2l0aW9uKSA9PSAtMSApe1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbJytQTFVHSU5fTkFNRSsnXSBJbmNvcnJlY3QgcG9zaXRpb24uXFxuSXQgY2FuIGJlIOKAuiAnICsgUE9TSVRJT05TKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKElTTU9CSUxFIHx8IHdpbmRvdy5pbm5lcldpZHRoIDw9IE1PQklMRVdJRFRIKXtcclxuXHRcdFx0XHRcdGlmKHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21MZWZ0JyB8fCBzZXR0aW5ncy5wb3NpdGlvbiA9PSAnYm90dG9tUmlnaHQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICdib3R0b21DZW50ZXInKXtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb24gPSBQTFVHSU5fTkFNRSsnLXdyYXBwZXItYm90dG9tQ2VudGVyJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2UgaWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcgfHwgc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcENlbnRlcicpe1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbiA9IFBMVUdJTl9OQU1FKyctd3JhcHBlci10b3BDZW50ZXInO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLWNlbnRlcic7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uID0gUExVR0lOX05BTUUrJy13cmFwcGVyLScrcG9zaXRpb247XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nICsgUExVR0lOX05BTUUgKyAnLXdyYXBwZXIuJytwb3NpdGlvbik7XHJcblxyXG5cdFx0XHRcdGlmKCEkRE9NLndyYXBwZXIpIHtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmNsYXNzTGlzdC5hZGQoUExVR0lOX05BTUUgKyAnLXdyYXBwZXInKTtcclxuXHRcdFx0XHRcdCRET00ud3JhcHBlci5jbGFzc0xpc3QuYWRkKHBvc2l0aW9uKTtcclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJERPTS53cmFwcGVyKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MucG9zaXRpb24gPT0gJ3RvcExlZnQnIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BDZW50ZXInIHx8IHNldHRpbmdzLnBvc2l0aW9uID09ICd0b3BSaWdodCcpe1xyXG5cdFx0XHRcdFx0JERPTS53cmFwcGVyLmluc2VydEJlZm9yZSgkRE9NLnRvYXN0Q2Fwc3VsZSwgJERPTS53cmFwcGVyLmZpcnN0Q2hpbGQpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQkRE9NLndyYXBwZXIuYXBwZW5kQ2hpbGQoJERPTS50b2FzdENhcHN1bGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkpIHtcclxuXHRcdFx0XHQkRE9NLndyYXBwZXIuc3R5bGUuekluZGV4ID0gc2V0dGluZ3MuemluZGV4O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnNvbGUud2FybignWycrUExVR0lOX05BTUUrJ10gSW52YWxpZCB6SW5kZXguJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0Ly8gT3ZlcmxheVxyXG5cdFx0KGZ1bmN0aW9uKCl7XHJcblxyXG5cdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5KSB7XHJcblxyXG5cdFx0XHRcdGlmKCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXkuZmFkZUluJykgIT09IG51bGwgKXtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJytQTFVHSU5fTkFNRSsnLW92ZXJsYXknKTtcclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaXppVG9hc3QtcmVmJywgJERPTS5vdmVybGF5LmdldEF0dHJpYnV0ZSgnZGF0YS1pemlUb2FzdC1yZWYnKSArICcsJyArIHNldHRpbmdzLlJFRik7XHJcblxyXG5cdFx0XHRcdFx0aWYoIWlzTmFOKHNldHRpbmdzLnppbmRleCkgJiYgc2V0dGluZ3MuemluZGV4ICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdCRET00ub3ZlcmxheS5zdHlsZS56SW5kZXggPSBzZXR0aW5ncy56aW5kZXgtMTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdCRET00ub3ZlcmxheS5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3ZlcmxheScpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LmNsYXNzTGlzdC5hZGQoJ2ZhZGVJbicpO1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSBzZXR0aW5ncy5vdmVybGF5Q29sb3I7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLWl6aVRvYXN0LXJlZicsIHNldHRpbmdzLlJFRik7XHJcblx0XHRcdFx0XHRpZighaXNOYU4oc2V0dGluZ3MuemluZGV4KSAmJiBzZXR0aW5ncy56aW5kZXggIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0JERPTS5vdmVybGF5LnN0eWxlLnpJbmRleCA9IHNldHRpbmdzLnppbmRleC0xO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZENoaWxkKCRET00ub3ZlcmxheSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5vdmVybGF5Q2xvc2UpIHtcclxuXHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB7fSk7XHJcblx0XHRcdFx0XHQkRE9NLm92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmhpZGUoJERPTS50b2FzdCwgc2V0dGluZ3MsICdvdmVybGF5Jyk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0JERPTS5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywge30pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9KSgpO1xyXG5cclxuXHRcdC8vIEluc2lkZSBhbmltYXRpb25zXHJcblx0XHQoZnVuY3Rpb24oKXtcclxuXHRcdFx0aWYoc2V0dGluZ3MuYW5pbWF0ZUluc2lkZSl7XHJcblx0XHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctYW5pbWF0ZUluc2lkZScpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR2YXIgYW5pbWF0aW9uVGltZXMgPSBbMjAwLCAxMDAsIDMwMF07XHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudHJhbnNpdGlvbkluID09ICdib3VuY2VJbkxlZnQnKXtcclxuXHRcdFx0XHRcdGFuaW1hdGlvblRpbWVzID0gWzQwMCwgMjAwLCA0MDBdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYoc2V0dGluZ3MudGl0bGUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdFx0XHQkRE9NLnN0cm9uZy5jbGFzc0xpc3QuYWRkKCdzbGlkZUluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1swXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5tZXNzYWdlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5wLmNsYXNzTGlzdC5hZGQoJ3NsaWRlSW4nKTtcclxuXHRcdFx0XHRcdH0sIGFuaW1hdGlvblRpbWVzWzFdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmKHNldHRpbmdzLmljb24pIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdFx0JERPTS5pY29uLmNsYXNzTGlzdC5hZGQoJ3JldmVhbEluJyk7XHJcblx0XHRcdFx0XHR9LCBhbmltYXRpb25UaW1lc1syXSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZihzZXR0aW5ncy5idXR0b25zLmxlbmd0aCA+IDAgJiYgJERPTS5idXR0b25zKSB7XHJcblx0XHRcdFx0XHR2YXIgY291bnRlciA9IDE1MDtcclxuXHRcdFx0XHRcdGZvckVhY2goJERPTS5idXR0b25zLmNoaWxkTm9kZXMsIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcblxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZXZlYWxJbicpO1xyXG5cdFx0XHRcdFx0XHR9LCBjb3VudGVyKTtcclxuXHRcdFx0XHRcdFx0Y291bnRlciA9IGNvdW50ZXIgKyAxNTA7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pKCk7XHJcblxyXG5cdFx0c2V0dGluZ3Mub25PcGVuaW5nLmFwcGx5KG51bGwsIFtzZXR0aW5ncywgJERPTS50b2FzdF0pO1xyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmluZycsIHtkZXRhaWw6IHNldHRpbmdzLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlfSk7XHJcblx0XHRcdGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG5cdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdGNvbnNvbGUud2FybihleCk7XHJcblx0XHR9XHJcblxyXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdCRET00udG9hc3QuY2xhc3NMaXN0LnJlbW92ZShQTFVHSU5fTkFNRSsnLW9wZW5pbmcnKTtcclxuXHRcdFx0JERPTS50b2FzdC5jbGFzc0xpc3QuYWRkKFBMVUdJTl9OQU1FKyctb3BlbmVkJyk7XHJcblxyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHZhciBldmVudCA9IG5ldyBDdXN0b21FdmVudChQTFVHSU5fTkFNRSArICctb3BlbmVkJywge2RldGFpbDogc2V0dGluZ3MsIGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWV9KTtcclxuXHRcdFx0XHRkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuXHRcdFx0fSBjYXRjaChleCl7XHJcblx0XHRcdFx0Y29uc29sZS53YXJuKGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c2V0dGluZ3Mub25PcGVuZWQuYXBwbHkobnVsbCwgW3NldHRpbmdzLCAkRE9NLnRvYXN0XSk7XHJcblx0XHR9LCAxMDAwKTtcclxuXHJcblx0XHRpZihzZXR0aW5ncy5kcmFnKXtcclxuXHJcblx0XHRcdGlmKEFDQ0VQVFNUT1VDSCkge1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgICAgICBkcmFnLnN0YXJ0TW92aW5nKHRoaXMsIHRoYXQsIHNldHRpbmdzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdCAgICAkRE9NLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RhcnRNb3ZpbmcodGhpcywgdGhhdCwgc2V0dGluZ3MsIGUpO1xyXG5cdFx0XHQgICAgfSwgZmFsc2UpO1xyXG5cclxuXHRcdFx0ICAgICRET00udG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0ICAgIFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHQgICAgICAgIGRyYWcuc3RvcE1vdmluZyh0aGlzLCBlKTtcclxuXHRcdFx0ICAgIH0sIGZhbHNlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmKHNldHRpbmdzLmNsb3NlT25Fc2NhcGUpIHtcclxuXHJcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgZnVuY3Rpb24gKGV2dCkge1xyXG5cdFx0XHRcdGV2dCA9IGV2dCB8fCB3aW5kb3cuZXZlbnQ7XHJcblx0XHRcdFx0aWYoZXZ0LmtleUNvZGUgPT0gMjcpIHtcclxuXHRcdFx0XHQgICAgdGhhdC5oaWRlKCRET00udG9hc3QsIHNldHRpbmdzLCAnZXNjJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGF0LnRvYXN0ID0gJERPTS50b2FzdDtcdFx0XHJcblx0fTtcclxuXHRcclxuXHJcblx0cmV0dXJuICRpemlUb2FzdDtcclxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaXppdG9hc3QvZGlzdC9qcy9pemlUb2FzdC5qc1xuLy8gbW9kdWxlIGlkID0gNDU2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///456\n");
+
/***/ })
/******/ ]);
\ No newline at end of file
diff --git a/Step/wwwroot/src/App.vue b/Step/wwwroot/src/App.vue
index e7d86bdc..a3d311ba 100644
--- a/Step/wwwroot/src/App.vue
+++ b/Step/wwwroot/src/App.vue
@@ -52,14 +52,22 @@ export default {
alarmList
},
mounted: function() {
- Factory.Get(MessageService).subscribeToChannel("show-modal", args => {
+ let ms = Factory.Get(MessageService);
+ ms.subscribeToChannel("show-modal", args => {
this.applyBlur = true;
});
- Factory.Get(MessageService).subscribeToChannel("hide-modal", args => {
+ ms.subscribeToChannel("hide-modal", args => {
this.applyBlur = false;
});
+ ms.subscribeToChannel("show-loading", args => {
+ this.loadingOperations++;
+ });
+ ms.subscribeToChannel("hide-loading", args => {
+ this.loadingOperations--;
+ });
+
let _this = this;
Factory.Get(LoginService)
.getUserInfo()
@@ -75,42 +83,8 @@ export default {
}
);
-
// SHOW Toasts notifications
- iziToast.show({
- theme:'dark',
- title: "Welcome to Step!",
- message: "This is for main app notification when fallback is closed",
- timeout: false
- });
-
- iziToast.show({
- title: "Welcome to Step!",
- message: "This is for main app notification when fallback is open",
- timeout: false
- });
-
- iziToast.show({
- theme:'dark',
- title: "Hey",
- message: "Autoclosing.... wait 10 sec. ",
- timeout: 10000
- });
-
- iziToast.error({
- theme:'dark',
- title: "ERROR",
- message: "TEST ERROR",
- timeout: false
- });
-
- iziToast.warning({
- theme:'dark',
- title: "Warning",
- message: "TEST warning",
- timeout: false
- });
this.hub = new Hub();
},
computed: {
@@ -129,6 +103,26 @@ export default {
if (this.state.isMainViewLiftedUp)
this.applyViewPosition(-window.innerHeight + 84);
else this.applyViewPosition(0);
+ },
+ loadingOperations: function(n, o) {
+
+ if(o == 0 && n >0){
+ iziToast.show({
+ class: "t-loading",
+ theme:"dark",
+ message: "loading ...",
+ icon: "fa fa-refresh fa-spin fa-2x fa-fw",
+ position: "bottomLeft", animateInside: false, timeout: false,
+ transitionIn: 'fadeInRight',
+ transitionOut: 'fadeOut',
+ })
+ }
+
+ if(n == 0 || n<0){
+ this.loadingOperations = 0;
+ iziToast.hide(document.querySelector('.t-loading'));
+ }
+
}
},
methods: {
@@ -157,7 +151,8 @@ export default {
data: function() {
return {
state: this.$store.state,
- applyBlur: false
+ applyBlur: false,
+ loadingOperations: 0
};
}
};
diff --git a/Step/wwwroot/src/_base/baseRestService.ts b/Step/wwwroot/src/_base/baseRestService.ts
index d540b174..00585951 100644
--- a/Step/wwwroot/src/_base/baseRestService.ts
+++ b/Step/wwwroot/src/_base/baseRestService.ts
@@ -1,5 +1,7 @@
import Axios, { AxiosInstance, AxiosPromise, AxiosResponse, AxiosBasicCredentials, AxiosRequestConfig } from "axios";
import Factory from "./factoryService";
+import * as iziToast from "izitoast";
+import { MessageService } from "./messageService";
interface InterceptorRequestDelegate { (config: AxiosRequestConfig): AxiosRequestConfig; }
interface InterceptorResponseDelegate { (config: AxiosResponse): AxiosResponse; }
@@ -38,6 +40,8 @@ export function to(promise) {
export class baseRestService {
+ public errorsToShow: number[] = [404, 500];
+
protected allwaysSendAuthenticationToken: boolean = false;
protected saveToSessionStorage: boolean = false;
private _interceptors: sharedInterceptors;
@@ -70,6 +74,24 @@ export class baseRestService {
this._interceptors.onRequestInterceptorChanged = (i) => this.http.interceptors.request.use(i);
this._interceptors.onResponseInterceptorChanged = (i) => this.http.interceptors.response.use(i);
+
+ // toast exception interceptors
+ this.http.interceptors.response.use(null, r => {
+ if(!r.status)
+ r = r.response;
+
+ if (r.status >= 500 || this.errorsToShow.indexOf(r.status)>=0) {
+ (iziToast as any).error({
+ title: r.config.url,
+ message: r.statusText,
+ theme:"dark",
+ timeout: false
+ })
+
+ }
+ console.log(r);
+ return r;
+ })
}
protected async get(uri: string, sendAuthenticationToken: boolean = false, params: object = {}): Promise {
@@ -148,7 +170,7 @@ export class baseRestService {
}
}
// if (json) headers.append('Content-Type', 'application/json');
- if (json) headers['Content-Type'] = 'application/json';
+ if (json) headers['Content-Type'] = 'application/json';
if (this.OnHeadersPreparing) this.OnHeadersPreparing(headers);
diff --git a/Step/wwwroot/src/modules/login.ts b/Step/wwwroot/src/modules/login.ts
index 9153c94e..37bc5694 100644
--- a/Step/wwwroot/src/modules/login.ts
+++ b/Step/wwwroot/src/modules/login.ts
@@ -14,10 +14,14 @@ export default class Login extends Vue {
async doLogin() {
var service = Factory.Get(LoginService);
- if(await service.doLogin(this.user)){
+
+ Factory.Get(MessageService).publishToChannel("show-loading");
+
+ if (await service.doLogin(this.user)) {
ModalHelper.HideModal();
}
+ Factory.Get(MessageService).publishToChannel("hide-loading");
this.hasError = !service.isAuthenticated;
}
}