news/plugins/admin/themes/grav/js/admin.min.js

1423 lines
No EOL
1.9 MiB
Vendored
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
var Grav;
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./app/dashboard/backup.js":
/*!*********************************!*\
!*** ./app/dashboard/backup.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./chart */ \"./app/dashboard/chart.js\");\n\n\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-backup][data-ajax*=\"backup/\"]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = element.data('ajax');\n var inDropdown = element.closest('.dropdown-menu');\n (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').attr('disabled', 'disabled').find('> .fa').removeClass('fa-life-ring').addClass('fa-spin fa-refresh');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, function\n /* response */\n () {\n if (_chart__WEBPACK_IMPORTED_MODULE_3__.Instances && _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups) {\n _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups.updateData({\n series: [0, 100]\n });\n _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups.element.find('.numeric').html(\"0 <em>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.DAYS.toLowerCase(), \"</em>\"));\n }\n\n (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').removeAttr('disabled').find('> .fa').removeClass('fa-spin fa-refresh').addClass('fa-life-ring');\n });\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-backup][data-ajax*=\"backupDelete\"]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = element.data('ajax');\n var tr = element.closest('tr');\n tr.addClass('deleting');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, function (response) {\n if (response.status === 'success') {\n tr.remove();\n } else {\n tr.removeClass('deleting');\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZGFzaGJvYXJkL2JhY2t1cC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQUEsNkNBQUMsQ0FBQyxxQ0FBRCxDQUFELENBQXlDSyxFQUF6QyxDQUE0QyxPQUE1QyxFQUFxRCxZQUFXO0FBQzVELE1BQUlDLE9BQU8sR0FBR04sNkNBQUMsQ0FBQyxJQUFELENBQWY7QUFDQSxNQUFJTyxHQUFHLEdBQUdELE9BQU8sQ0FBQ0UsSUFBUixDQUFhLE1BQWIsQ0FBVjtBQUNBLE1BQU1DLFVBQVUsR0FBR0gsT0FBTyxDQUFDSSxPQUFSLENBQWdCLGdCQUFoQixDQUFuQjtBQUVBLEdBQUNELFVBQVUsQ0FBQ0UsTUFBWCxHQUFvQkYsVUFBcEIsR0FBaUNILE9BQWxDLEVBQ0tJLE9BREwsQ0FDYSxlQURiLEVBQzhCRSxJQUQ5QixDQUNtQyxnQkFEbkMsRUFFS0MsSUFGTCxDQUVVLFVBRlYsRUFFc0IsVUFGdEIsRUFHS0QsSUFITCxDQUdVLE9BSFYsRUFHbUJFLFdBSG5CLENBRytCLGNBSC9CLEVBRytDQyxRQUgvQyxDQUd3RCxvQkFIeEQ7QUFLQWIsRUFBQUEsMERBQU8sQ0FBQ0ssR0FBRCxFQUFNO0FBQUM7QUFBRCxLQUFvQjtBQUM3QixRQUFJSCw2Q0FBTSxJQUFJQSxxREFBZCxFQUE4QjtBQUMxQkEsTUFBQUEsZ0VBQUEsQ0FBMEI7QUFBRWMsUUFBQUEsTUFBTSxFQUFFLENBQUMsQ0FBRCxFQUFJLEdBQUo7QUFBVixPQUExQjtBQUNBZCxNQUFBQSxrRUFBQSxDQUE0QixVQUE1QixFQUF3Q2UsSUFBeEMsaUJBQXNEbEIsbUZBQUEsRUFBdEQ7QUFDSDs7QUFFRCxLQUFDUSxVQUFVLENBQUNFLE1BQVgsR0FBb0JGLFVBQXBCLEdBQWlDSCxPQUFsQyxFQUNLSSxPQURMLENBQ2EsZUFEYixFQUM4QkUsSUFEOUIsQ0FDbUMsZ0JBRG5DLEVBRUtXLFVBRkwsQ0FFZ0IsVUFGaEIsRUFHS1gsSUFITCxDQUdVLE9BSFYsRUFHbUJFLFdBSG5CLENBRytCLG9CQUgvQixFQUdxREMsUUFIckQsQ0FHOEQsY0FIOUQ7QUFJSCxHQVZNLENBQVA7QUFXSCxDQXJCRDtBQXVCQWYsNkNBQUMsQ0FBQywwQ0FBRCxDQUFELENBQThDSyxFQUE5QyxDQUFpRCxPQUFqRCxFQUEwRCxZQUFXO0FBQ2pFLE1BQUlDLE9BQU8sR0FBR04sNkNBQUMsQ0FBQyxJQUFELENBQWY7QUFDQSxNQUFJTyxHQUFHLEdBQUdELE9BQU8sQ0FBQ0UsSUFBUixDQUFhLE1BQWIsQ0FBVjtBQUNBLE1BQU1nQixFQUFFLEdBQUdsQixPQUFPLENBQUNJLE9BQVIsQ0FBZ0IsSUFBaEIsQ0FBWDtBQUNBYyxFQUFBQSxFQUFFLENBQUNULFFBQUgsQ0FBWSxVQUFaO0FBRUFiLEVBQUFBLDBEQUFPLENBQUNLLEdBQUQsRUFBTSxVQUFDa0IsUUFBRCxFQUFjO0FBQ3ZCLFFBQUlBLFFBQVEsQ0FBQ0MsTUFBVCxLQUFvQixTQUF4QixFQUFtQztBQUMvQkYsTUFBQUEsRUFBRSxDQUFDRyxNQUFIO0FBQ0gsS0FGRCxNQUVPO0FBQ0hILE1BQUFBLEVBQUUsQ0FBQ1YsV0FBSCxDQUFlLFVBQWY7QUFDSDtBQUNKLEdBTk0sQ0FBUDtBQU9ILENBYkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9iYWNrdXAuanM/MWFiZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBJbnN0YW5jZXMgYXMgQ2hhcnRzIH0gZnJvbSAnLi9jaGFydCc7XG5cbiQoJ1tkYXRhLWJhY2t1cF1bZGF0YS1hamF4Kj1cImJhY2t1cC9cIl0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgbGV0IHVybCA9IGVsZW1lbnQuZGF0YSgnYWpheCcpO1xuICAgIGNvbnN0IGluRHJvcGRvd24gPSBlbGVtZW50LmNsb3Nlc3QoJy5kcm9wZG93bi1tZW51Jyk7XG5cbiAgICAoaW5Ecm9wZG93bi5sZW5ndGggPyBpbkRyb3Bkb3duIDogZWxlbWVudClcbiAgICAgICAgLmNsb3Nlc3QoJy5idXR0b24tZ3JvdXAnKS5maW5kKCc+IGJ1dHRvbjpmaXJzdCcpXG4gICAgICAgIC5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpXG4gICAgICAgIC5maW5kKCc+IC5mYScpLnJlbW92ZUNsYXNzKCdmYS1saWZlLXJpbmcnKS5hZGRDbGFzcygnZmEtc3BpbiBmYS1yZWZyZXNoJyk7XG5cbiAgICByZXF1ZXN0KHVybCwgKC8qIHJlc3BvbnNlICovKSA9PiB7XG4gICAgICAgIGlmIChDaGFydHMgJiYgQ2hhcnRzLmJhY2t1cHMpIHtcbiAgICAgICAgICAgIENoYXJ0cy5iYWNrdXBzLnVwZGF0ZURhdGEoeyBzZXJpZXM6IFswLCAxMDBdIH0pO1xuICAgICAgICAgICAgQ2hhcnRzLmJhY2t1cHMuZWxlbWVudC5maW5kKCcubnVtZXJpYycpLmh0bWwoYDAgPGVtPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EQVlTLnRvTG93ZXJDYXNlKCl9PC9lbT5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIChpbkRyb3Bkb3duLmxlbmd0aCA/IGluRHJvcGRvd24gOiBlbGVtZW50KVxuICAgICAgICAgICAgLmNsb3Nlc3QoJy5idXR0b24tZ3JvdXAnKS5maW5kKCc+IGJ1dHRvbjpmaXJzdCcpXG4gICAgICAgICAgICAucmVtb3ZlQXR0cignZGlzYWJsZWQnKVxuICAgICAgICAgICAgLmZpbmQoJz4gLmZhJykucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4gZmEtcmVmcmVzaCcpLmFkZENsYXNzKCdmYS1saWZlLXJpbmcnKTtcbiAgICB9KTtcbn0pO1xuXG4kKCdbZGF0YS1iYWNrdXBdW2RhdGEtYWpheCo9XCJiYWNrdXBEZWxldGVcIl0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgbGV0IHVybCA9IGVsZW1lbnQuZGF0YSgnYWpheCcpO1xuICAgIGNvbnN0IHRyID0gZWxlbWVudC5jbG9zZXN0KCd0cicpO1xuICAgIHRyLmFkZENsYXNzKCdkZWxldGluZycpO1xuXG4gICAgcmVxdWVzdCh1cmwsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRyLnJlbW92ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHIucmVtb3ZlQ2xhc3MoJ2RlbGV0aW5nJyk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJ0cmFuc2xhdGlvbnMiLCJyZXF1ZXN0IiwiSW5zdGFuY2VzIiwiQ2hhcnRzIiwib24iLCJlbGVtZW50IiwidXJsIiwiZGF0YSIsImluRHJvcGRvd24iLCJjbG9zZXN0IiwibGVuZ3RoIiwiZmluZCIsImF0dHIiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiYmFja3VwcyIsInVwZGF0ZURhdGEiLCJzZXJpZXMiLCJodG1sIiwiUExVR0lOX0FETUlOIiwiREFZUyIsInRvTG93ZXJDYXNlIiwicmVtb3ZlQXR0ciIsInRyIiwicmVzcG9uc2UiLCJzdGF0dXMiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/dashboard/backup.js\n");
/***/ }),
/***/ "./app/dashboard/cache.js":
/*!********************************!*\
!*** ./app/dashboard/cache.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Cache),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar getUrl = function getUrl() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (type) {\n type = \"cleartype:\".concat(type, \"/\");\n }\n\n return \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/cache.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"clearCache/\").concat(type, \"admin-nonce\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce);\n};\n\nvar Cache = /*#__PURE__*/function () {\n function Cache() {\n var _this = this;\n\n _classCallCheck(this, Cache);\n\n this.element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-clear-cache]');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '[data-clear-cache]', function (event) {\n return _this.clear(event, event.target);\n });\n }\n\n _createClass(Cache, [{\n key: \"clear\",\n value: function clear(event, element) {\n var _this2 = this;\n\n var type = '';\n\n if (event && event.preventDefault) {\n event.preventDefault();\n }\n\n if (typeof event === 'string') {\n type = event;\n }\n\n element = element ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-clear-cache-type=\\\"\".concat(type, \"\\\"]\"));\n type = type || jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('clear-cache-type') || '';\n var url = element.data('clearCache') || getUrl(type);\n this.disable();\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, function () {\n return _this2.enable();\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n this.element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin fa-retweet').addClass('fa-retweet');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-retweet').addClass('fa-refresh fa-spin');\n }\n }]);\n\n return Cache;\n}();\n\n\nvar Instance = new Cache();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZGFzaGJvYXJkL2NhY2hlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTUcsTUFBTSxHQUFHLFNBQVRBLE1BQVMsR0FBZTtBQUFBLE1BQWRDLElBQWMsdUVBQVAsRUFBTzs7QUFDMUIsTUFBSUEsSUFBSixFQUFVO0FBQ05BLElBQUFBLElBQUksdUJBQWdCQSxJQUFoQixNQUFKO0FBQ0g7O0FBRUQsbUJBQVVILGlFQUFWLDZCQUFxREEseURBQXJELHdCQUFtRkcsSUFBbkYsd0JBQXFHSCx5REFBckcsU0FBd0hBLDJEQUF4SDtBQUNILENBTkQ7O0lBUXFCTztBQUNqQixtQkFBYztBQUFBOztBQUFBOztBQUNWLFNBQUtDLE9BQUwsR0FBZVQsNkNBQUMsQ0FBQyxvQkFBRCxDQUFoQjtBQUNBQSxJQUFBQSw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVVSxFQUFWLENBQWEsT0FBYixFQUFzQixvQkFBdEIsRUFBNEMsVUFBQ0MsS0FBRDtBQUFBLGFBQVcsS0FBSSxDQUFDQyxLQUFMLENBQVdELEtBQVgsRUFBa0JBLEtBQUssQ0FBQ0UsTUFBeEIsQ0FBWDtBQUFBLEtBQTVDO0FBQ0g7Ozs7V0FFRCxlQUFNRixLQUFOLEVBQWFGLE9BQWIsRUFBc0I7QUFBQTs7QUFDbEIsVUFBSUwsSUFBSSxHQUFHLEVBQVg7O0FBRUEsVUFBSU8sS0FBSyxJQUFJQSxLQUFLLENBQUNHLGNBQW5CLEVBQW1DO0FBQUVILFFBQUFBLEtBQUssQ0FBQ0csY0FBTjtBQUF5Qjs7QUFDOUQsVUFBSSxPQUFPSCxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQUVQLFFBQUFBLElBQUksR0FBR08sS0FBUDtBQUFlOztBQUVoREYsTUFBQUEsT0FBTyxHQUFHQSxPQUFPLEdBQUdULDZDQUFDLENBQUNTLE9BQUQsQ0FBSixHQUFnQlQsNkNBQUMsb0NBQTRCSSxJQUE1QixTQUFsQztBQUNBQSxNQUFBQSxJQUFJLEdBQUdBLElBQUksSUFBSUosNkNBQUMsQ0FBQ1MsT0FBRCxDQUFELENBQVdNLElBQVgsQ0FBZ0Isa0JBQWhCLENBQVIsSUFBK0MsRUFBdEQ7QUFDQSxVQUFJQyxHQUFHLEdBQUdQLE9BQU8sQ0FBQ00sSUFBUixDQUFhLFlBQWIsS0FBOEJaLE1BQU0sQ0FBQ0MsSUFBRCxDQUE5QztBQUVBLFdBQUthLE9BQUw7QUFFQWYsTUFBQUEsMERBQU8sQ0FBQ2MsR0FBRCxFQUFNO0FBQUEsZUFBTSxNQUFJLENBQUNFLE1BQUwsRUFBTjtBQUFBLE9BQU4sQ0FBUDtBQUNIOzs7V0FFRCxrQkFBUztBQUNMLFdBQUtULE9BQUwsQ0FDS1UsVUFETCxDQUNnQixVQURoQixFQUVLQyxJQUZMLENBRVUsT0FGVixFQUVtQkMsV0FGbkIsQ0FFK0IsK0JBRi9CLEVBRWdFQyxRQUZoRSxDQUV5RSxZQUZ6RTtBQUdIOzs7V0FFRCxtQkFBVTtBQUNOLFdBQUtiLE9BQUwsQ0FDS2MsSUFETCxDQUNVLFVBRFYsRUFDc0IsVUFEdEIsRUFFS0gsSUFGTCxDQUVVLE9BRlYsRUFFbUJDLFdBRm5CLENBRStCLFlBRi9CLEVBRTZDQyxRQUY3QyxDQUVzRCxvQkFGdEQ7QUFHSDs7Ozs7OztBQUdMLElBQUlFLFFBQVEsR0FBRyxJQUFJaEIsS0FBSixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9kYXNoYm9hcmQvY2FjaGUuanM/Y2IyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IGdldFVybCA9ICh0eXBlID0gJycpID0+IHtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICB0eXBlID0gYGNsZWFydHlwZToke3R5cGV9L2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vY2FjaGUuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWNsZWFyQ2FjaGUvJHt0eXBlfWFkbWluLW5vbmNlJHtjb25maWcucGFyYW1fc2VwfSR7Y29uZmlnLmFkbWluX25vbmNlfWA7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYWNoZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9ICQoJ1tkYXRhLWNsZWFyLWNhY2hlXScpO1xuICAgICAgICAkKCdib2R5Jykub24oJ2NsaWNrJywgJ1tkYXRhLWNsZWFyLWNhY2hlXScsIChldmVudCkgPT4gdGhpcy5jbGVhcihldmVudCwgZXZlbnQudGFyZ2V0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICAgICAgbGV0IHR5cGUgPSAnJztcblxuICAgICAgICBpZiAoZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfVxuICAgICAgICBpZiAodHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJykgeyB0eXBlID0gZXZlbnQ7IH1cblxuICAgICAgICBlbGVtZW50ID0gZWxlbWVudCA/ICQoZWxlbWVudCkgOiAkKGBbZGF0YS1jbGVhci1jYWNoZS10eXBlPVwiJHt0eXBlfVwiXWApO1xuICAgICAgICB0eXBlID0gdHlwZSB8fCAkKGVsZW1lbnQpLmRhdGEoJ2NsZWFyLWNhY2hlLXR5cGUnKSB8fCAnJztcbiAgICAgICAgbGV0IHVybCA9IGVsZW1lbnQuZGF0YSgnY2xlYXJDYWNoZScpIHx8IGdldFVybCh0eXBlKTtcblxuICAgICAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgICAgICByZXF1ZXN0KHVybCwgKCkgPT4gdGhpcy5lbmFibGUoKSk7XG4gICAgfVxuXG4gICAgZW5hYmxlKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRcbiAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpXG4gICAgICAgICAgICAuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluIGZhLXJldHdlZXQnKS5hZGRDbGFzcygnZmEtcmV0d2VldCcpO1xuICAgIH1cblxuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFxuICAgICAgICAgICAgLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcbiAgICAgICAgICAgIC5maW5kKCc+IC5mYScpLnJlbW92ZUNsYXNzKCdmYS1yZXR3ZWV0JykuYWRkQ2xhc3MoJ2ZhLXJlZnJlc2ggZmEtc3BpbicpO1xuICAgIH1cbn1cblxubGV0IEluc3RhbmNlID0gbmV3IENhY2hlKCk7XG5cbmV4cG9ydCB7IEluc3RhbmNlIH07XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInJlcXVlc3QiLCJnZXRVcmwiLCJ0eXBlIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJhZG1pbl9ub25jZSIsIkNhY2hlIiwiZWxlbWVudCIsIm9uIiwiZXZlbnQiLCJjbGVhciIsInRhcmdldCIsInByZXZlbnREZWZhdWx0IiwiZGF0YSIsInVybCIsImRpc2FibGUiLCJlbmFibGUiLCJyZW1vdmVBdHRyIiwiZmluZCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJhdHRyIiwiSW5zdGFuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/dashboard/cache.js\n");
/***/ }),
/***/ "./app/dashboard/chart.js":
/*!********************************!*\
!*** ./app/dashboard/chart.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"defaults\": () => (/* binding */ defaults),\n/* harmony export */ \"default\": () => (/* binding */ Chart),\n/* harmony export */ \"UpdatesChart\": () => (/* binding */ UpdatesChart),\n/* harmony export */ \"Instances\": () => (/* binding */ Instances)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var chartist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chartist */ \"./node_modules/chartist/dist/chartist.js\");\n/* harmony import */ var chartist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(chartist__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _updates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../updates */ \"./app/updates/index.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n // let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\nvar defaults = {\n data: {\n series: [100, 0]\n },\n options: {\n Pie: {\n donut: true,\n donutWidth: 10,\n startAngle: 0,\n total: 100,\n showLabel: false,\n height: 150,\n // chartPadding: !isFirefox ? 10 : 25 // workaround for older versions of firefox\n chartPadding: 5\n },\n Bar: {\n height: 164,\n chartPadding: 20,\n // workaround for older versions of firefox\n axisX: {\n showGrid: false,\n labelOffset: {\n x: 0,\n y: 0\n }\n },\n axisY: {\n offset: 15,\n showLabel: true,\n showGrid: true,\n labelOffset: {\n x: 5,\n y: 5\n },\n scaleMinSpace: 25\n }\n }\n }\n};\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Chart);\n\n this.element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) || [];\n\n if (!this.element[0]) {\n return;\n }\n\n var type = (this.element.data('chart-type') || 'pie').toLowerCase();\n this.type = type.charAt(0).toUpperCase() + type.substr(1).toLowerCase();\n options = Object.assign({}, defaults.options[this.type], options);\n data = Object.assign({}, defaults.data, data);\n Object.assign(this, {\n options: options,\n data: data\n });\n this.chart = (chartist__WEBPACK_IMPORTED_MODULE_1___default())[this.type](this.element.find('.ct-chart').empty()[0], this.data, this.options);\n this.chart.on('created', function () {\n _this.element.find('.hidden').removeClass('hidden'); // FIX: workaround for chartist issue not allowing HTML in labels anymore\n // https://github.com/gionkunz/chartist-js/issues/937\n\n\n _this.element.find('.ct-label').each(function (index, label) {\n label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n var text = label.html().replace('&lt;', '<').replace('&gt;', '>');\n label.html(text);\n });\n });\n }\n\n _createClass(Chart, [{\n key: \"updateData\",\n value: function updateData(data) {\n Object.assign(this.data, data);\n this.chart.update(this.data);\n }\n }]);\n\n return Chart;\n}();\n\n\n;\nvar UpdatesChart = /*#__PURE__*/function (_Chart) {\n _inherits(UpdatesChart, _Chart);\n\n var _super = _createSuper(UpdatesChart);\n\n function UpdatesChart(element) {\n var _this2;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, UpdatesChart);\n\n _this2 = _super.call(this, element, options, data);\n\n _this2.chart.on('draw', function (data) {\n return _this2.draw(data);\n });\n\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.on('fetched', function (response) {\n if (!response.payload) {\n return;\n }\n\n var payload = response.payload.grav;\n var missing = (response.payload.resources.total + (payload.isUpdatable ? 1 : 0)) * 100 / (response.payload.installed + (payload.isUpdatable ? 1 : 0));\n var updated = 100 - missing;\n\n _this2.updateData({\n series: [updated, missing]\n });\n\n if (response.payload.resources.total) {\n _updates__WEBPACK_IMPORTED_MODULE_4__.Instance.maintenance('show');\n }\n });\n return _this2;\n }\n\n _createClass(UpdatesChart, [{\n key: \"draw\",\n value: function draw(data) {\n if (data.index) {\n return;\n }\n\n var notice = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN[data.value === 100 ? 'FULLY_UPDATED' : 'UPDATES_AVAILABLE'];\n this.element.find('.numeric span').text(\"\".concat(Math.round(data.value), \"%\"));\n this.element.find('.js__updates-available-description').html(notice);\n this.element.find('.hidden').removeClass('hidden');\n }\n }, {\n key: \"updateData\",\n value: function updateData(data) {\n _get(_getPrototypeOf(UpdatesChart.prototype), \"updateData\", this).call(this, data); // missing updates\n\n\n if (this.data.series[0] < 100) {\n this.element.closest('#updates').find('[data-update-packages]').fadeIn();\n }\n }\n }]);\n\n return UpdatesChart;\n}(Chart);\nvar charts = {};\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-chart-name]').each(function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var name = element.data('chart-name') || '';\n var options = element.data('chart-options') || {};\n var data = element.data('chart-data') || {};\n\n if (name === 'updates') {\n charts[name] = new UpdatesChart(element, options, data);\n } else {\n charts[name] = new Chart(element, options, data);\n }\n});\nvar Instances = charts;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZGFzaGJvYXJkL2NoYXJ0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFFTyxJQUFNTSxRQUFRLEdBQUc7QUFDcEJDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sQ0FBTjtBQUROLEdBRGM7QUFJcEJDLEVBQUFBLE9BQU8sRUFBRTtBQUNMQyxJQUFBQSxHQUFHLEVBQUU7QUFDREMsTUFBQUEsS0FBSyxFQUFFLElBRE47QUFFREMsTUFBQUEsVUFBVSxFQUFFLEVBRlg7QUFHREMsTUFBQUEsVUFBVSxFQUFFLENBSFg7QUFJREMsTUFBQUEsS0FBSyxFQUFFLEdBSk47QUFLREMsTUFBQUEsU0FBUyxFQUFFLEtBTFY7QUFNREMsTUFBQUEsTUFBTSxFQUFFLEdBTlA7QUFPRDtBQUNBQyxNQUFBQSxZQUFZLEVBQUU7QUFSYixLQURBO0FBV0xDLElBQUFBLEdBQUcsRUFBRTtBQUNERixNQUFBQSxNQUFNLEVBQUUsR0FEUDtBQUVEQyxNQUFBQSxZQUFZLEVBQUUsRUFGYjtBQUVpQjtBQUVsQkUsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRSxLQURQO0FBRUhDLFFBQUFBLFdBQVcsRUFBRTtBQUNUQyxVQUFBQSxDQUFDLEVBQUUsQ0FETTtBQUVUQyxVQUFBQSxDQUFDLEVBQUU7QUFGTTtBQUZWLE9BSk47QUFXREMsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLE1BQU0sRUFBRSxFQURMO0FBRUhWLFFBQUFBLFNBQVMsRUFBRSxJQUZSO0FBR0hLLFFBQUFBLFFBQVEsRUFBRSxJQUhQO0FBSUhDLFFBQUFBLFdBQVcsRUFBRTtBQUNUQyxVQUFBQSxDQUFDLEVBQUUsQ0FETTtBQUVUQyxVQUFBQSxDQUFDLEVBQUU7QUFGTSxTQUpWO0FBUUhHLFFBQUFBLGFBQWEsRUFBRTtBQVJaO0FBWE47QUFYQTtBQUpXLENBQWpCOztJQXdDY0M7QUFDakIsaUJBQVlDLE9BQVosRUFBOEM7QUFBQTs7QUFBQSxRQUF6Qm5CLE9BQXlCLHVFQUFmLEVBQWU7QUFBQSxRQUFYRixJQUFXLHVFQUFKLEVBQUk7O0FBQUE7O0FBQzFDLFNBQUtxQixPQUFMLEdBQWU1Qiw2Q0FBQyxDQUFDNEIsT0FBRCxDQUFELElBQWMsRUFBN0I7O0FBQ0EsUUFBSSxDQUFDLEtBQUtBLE9BQUwsQ0FBYSxDQUFiLENBQUwsRUFBc0I7QUFBRTtBQUFTOztBQUVqQyxRQUFJQyxJQUFJLEdBQUcsQ0FBQyxLQUFLRCxPQUFMLENBQWFyQixJQUFiLENBQWtCLFlBQWxCLEtBQW1DLEtBQXBDLEVBQTJDdUIsV0FBM0MsRUFBWDtBQUNBLFNBQUtELElBQUwsR0FBWUEsSUFBSSxDQUFDRSxNQUFMLENBQVksQ0FBWixFQUFlQyxXQUFmLEtBQStCSCxJQUFJLENBQUNJLE1BQUwsQ0FBWSxDQUFaLEVBQWVILFdBQWYsRUFBM0M7QUFFQXJCLElBQUFBLE9BQU8sR0FBR3lCLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0I3QixRQUFRLENBQUNHLE9BQVQsQ0FBaUIsS0FBS29CLElBQXRCLENBQWxCLEVBQStDcEIsT0FBL0MsQ0FBVjtBQUNBRixJQUFBQSxJQUFJLEdBQUcyQixNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCN0IsUUFBUSxDQUFDQyxJQUEzQixFQUFpQ0EsSUFBakMsQ0FBUDtBQUNBMkIsSUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWMsSUFBZCxFQUFvQjtBQUNoQjFCLE1BQUFBLE9BQU8sRUFBUEEsT0FEZ0I7QUFFaEJGLE1BQUFBLElBQUksRUFBSkE7QUFGZ0IsS0FBcEI7QUFJQSxTQUFLNkIsS0FBTCxHQUFhbkMsaURBQVEsQ0FBQyxLQUFLNEIsSUFBTixDQUFSLENBQW9CLEtBQUtELE9BQUwsQ0FBYVMsSUFBYixDQUFrQixXQUFsQixFQUErQkMsS0FBL0IsR0FBdUMsQ0FBdkMsQ0FBcEIsRUFBK0QsS0FBSy9CLElBQXBFLEVBQTBFLEtBQUtFLE9BQS9FLENBQWI7QUFDQSxTQUFLMkIsS0FBTCxDQUFXRyxFQUFYLENBQWMsU0FBZCxFQUF5QixZQUFNO0FBQzNCLFdBQUksQ0FBQ1gsT0FBTCxDQUFhUyxJQUFiLENBQWtCLFNBQWxCLEVBQTZCRyxXQUE3QixDQUF5QyxRQUF6QyxFQUQyQixDQUczQjtBQUNBOzs7QUFDQSxXQUFJLENBQUNaLE9BQUwsQ0FBYVMsSUFBYixDQUFrQixXQUFsQixFQUErQkksSUFBL0IsQ0FBb0MsVUFBQ0MsS0FBRCxFQUFRQyxLQUFSLEVBQWtCO0FBQ2xEQSxRQUFBQSxLQUFLLEdBQUczQyw2Q0FBQyxDQUFDMkMsS0FBRCxDQUFUO0FBQ0EsWUFBTUMsSUFBSSxHQUFHRCxLQUFLLENBQUNFLElBQU4sR0FBYUMsT0FBYixDQUFxQixNQUFyQixFQUE2QixHQUE3QixFQUFrQ0EsT0FBbEMsQ0FBMEMsTUFBMUMsRUFBa0QsR0FBbEQsQ0FBYjtBQUNBSCxRQUFBQSxLQUFLLENBQUNFLElBQU4sQ0FBV0QsSUFBWDtBQUNILE9BSkQ7QUFLSCxLQVZEO0FBV0g7Ozs7V0FFRCxvQkFBV3JDLElBQVgsRUFBaUI7QUFDYjJCLE1BQUFBLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEtBQUs1QixJQUFuQixFQUF5QkEsSUFBekI7QUFDQSxXQUFLNkIsS0FBTCxDQUFXVyxNQUFYLENBQWtCLEtBQUt4QyxJQUF2QjtBQUNIOzs7Ozs7O0FBQ0o7QUFFTSxJQUFNeUMsWUFBYjtBQUFBOztBQUFBOztBQUNJLHdCQUFZcEIsT0FBWixFQUE4QztBQUFBOztBQUFBLFFBQXpCbkIsT0FBeUIsdUVBQWYsRUFBZTtBQUFBLFFBQVhGLElBQVcsdUVBQUosRUFBSTs7QUFBQTs7QUFDMUMsK0JBQU1xQixPQUFOLEVBQWVuQixPQUFmLEVBQXdCRixJQUF4Qjs7QUFFQSxXQUFLNkIsS0FBTCxDQUFXRyxFQUFYLENBQWMsTUFBZCxFQUFzQixVQUFDaEMsSUFBRDtBQUFBLGFBQVUsT0FBSzBDLElBQUwsQ0FBVTFDLElBQVYsQ0FBVjtBQUFBLEtBQXRCOztBQUVBSCxJQUFBQSxtREFBQSxDQUFPLFNBQVAsRUFBa0IsVUFBQzhDLFFBQUQsRUFBYztBQUM1QixVQUFJLENBQUNBLFFBQVEsQ0FBQ0MsT0FBZCxFQUF1QjtBQUFFO0FBQVM7O0FBRWxDLFVBQUlBLE9BQU8sR0FBR0QsUUFBUSxDQUFDQyxPQUFULENBQWlCQyxJQUEvQjtBQUNBLFVBQUlDLE9BQU8sR0FBRyxDQUFDSCxRQUFRLENBQUNDLE9BQVQsQ0FBaUJHLFNBQWpCLENBQTJCeEMsS0FBM0IsSUFBb0NxQyxPQUFPLENBQUNJLFdBQVIsR0FBc0IsQ0FBdEIsR0FBMEIsQ0FBOUQsQ0FBRCxJQUFxRSxHQUFyRSxJQUE0RUwsUUFBUSxDQUFDQyxPQUFULENBQWlCSyxTQUFqQixJQUE4QkwsT0FBTyxDQUFDSSxXQUFSLEdBQXNCLENBQXRCLEdBQTBCLENBQXhELENBQTVFLENBQWQ7QUFDQSxVQUFJRSxPQUFPLEdBQUcsTUFBTUosT0FBcEI7O0FBRUEsYUFBS0ssVUFBTCxDQUFnQjtBQUFFbEQsUUFBQUEsTUFBTSxFQUFFLENBQUNpRCxPQUFELEVBQVVKLE9BQVY7QUFBVixPQUFoQjs7QUFFQSxVQUFJSCxRQUFRLENBQUNDLE9BQVQsQ0FBaUJHLFNBQWpCLENBQTJCeEMsS0FBL0IsRUFBc0M7QUFDbENULFFBQUFBLDBEQUFBLENBQW9CLE1BQXBCO0FBQ0g7QUFDSixLQVpEO0FBTDBDO0FBa0I3Qzs7QUFuQkw7QUFBQTtBQUFBLFdBcUJJLGNBQUtFLElBQUwsRUFBVztBQUNQLFVBQUlBLElBQUksQ0FBQ21DLEtBQVQsRUFBZ0I7QUFBRTtBQUFTOztBQUUzQixVQUFJa0IsTUFBTSxHQUFHMUQsa0VBQUEsQ0FBMEJLLElBQUksQ0FBQ3VELEtBQUwsS0FBZSxHQUFmLEdBQXFCLGVBQXJCLEdBQXVDLG1CQUFqRSxDQUFiO0FBQ0EsV0FBS2xDLE9BQUwsQ0FBYVMsSUFBYixDQUFrQixlQUFsQixFQUFtQ08sSUFBbkMsV0FBMkNtQixJQUFJLENBQUNDLEtBQUwsQ0FBV3pELElBQUksQ0FBQ3VELEtBQWhCLENBQTNDO0FBQ0EsV0FBS2xDLE9BQUwsQ0FBYVMsSUFBYixDQUFrQixvQ0FBbEIsRUFBd0RRLElBQXhELENBQTZEZSxNQUE3RDtBQUNBLFdBQUtoQyxPQUFMLENBQWFTLElBQWIsQ0FBa0IsU0FBbEIsRUFBNkJHLFdBQTdCLENBQXlDLFFBQXpDO0FBQ0g7QUE1Qkw7QUFBQTtBQUFBLFdBOEJJLG9CQUFXakMsSUFBWCxFQUFpQjtBQUNiLG1GQUFpQkEsSUFBakIsRUFEYSxDQUdiOzs7QUFDQSxVQUFJLEtBQUtBLElBQUwsQ0FBVUMsTUFBVixDQUFpQixDQUFqQixJQUFzQixHQUExQixFQUErQjtBQUMzQixhQUFLb0IsT0FBTCxDQUFhcUMsT0FBYixDQUFxQixVQUFyQixFQUFpQzVCLElBQWpDLENBQXNDLHdCQUF0QyxFQUFnRTZCLE1BQWhFO0FBQ0g7QUFDSjtBQXJDTDs7QUFBQTtBQUFBLEVBQWtDdkMsS0FBbEM7QUF3Q0EsSUFBSXdDLE1BQU0sR0FBRyxFQUFiO0FBRUFuRSw2Q0FBQyxDQUFDLG1CQUFELENBQUQsQ0FBdUJ5QyxJQUF2QixDQUE0QixZQUFXO0FBQ25DLE1BQUliLE9BQU8sR0FBRzVCLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsTUFBSW9FLElBQUksR0FBR3hDLE9BQU8sQ0FBQ3JCLElBQVIsQ0FBYSxZQUFiLEtBQThCLEVBQXpDO0FBQ0EsTUFBSUUsT0FBTyxHQUFHbUIsT0FBTyxDQUFDckIsSUFBUixDQUFhLGVBQWIsS0FBaUMsRUFBL0M7QUFDQSxNQUFJQSxJQUFJLEdBQUdxQixPQUFPLENBQUNyQixJQUFSLENBQWEsWUFBYixLQUE4QixFQUF6Qzs7QUFFQSxNQUFJNkQsSUFBSSxLQUFLLFNBQWIsRUFBd0I7QUFDcEJELElBQUFBLE1BQU0sQ0FBQ0MsSUFBRCxDQUFOLEdBQWUsSUFBSXBCLFlBQUosQ0FBaUJwQixPQUFqQixFQUEwQm5CLE9BQTFCLEVBQW1DRixJQUFuQyxDQUFmO0FBQ0gsR0FGRCxNQUVPO0FBQ0g0RCxJQUFBQSxNQUFNLENBQUNDLElBQUQsQ0FBTixHQUFlLElBQUl6QyxLQUFKLENBQVVDLE9BQVYsRUFBbUJuQixPQUFuQixFQUE0QkYsSUFBNUIsQ0FBZjtBQUNIO0FBQ0osQ0FYRDtBQWFPLElBQUk4RCxTQUFTLEdBQUdGLE1BQWhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9kYXNoYm9hcmQvY2hhcnQuanM/MWU4NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGNoYXJ0aXN0IGZyb20gJ2NoYXJ0aXN0JztcbmltcG9ydCB7IHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIGdwbSB9IGZyb20gJy4uL3V0aWxzL2dwbSc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyB1cGRhdGVzIH0gZnJvbSAnLi4vdXBkYXRlcyc7XG5cbi8vIGxldCBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gLTE7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBkYXRhOiB7XG4gICAgICAgIHNlcmllczogWzEwMCwgMF1cbiAgICB9LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgUGllOiB7XG4gICAgICAgICAgICBkb251dDogdHJ1ZSxcbiAgICAgICAgICAgIGRvbnV0V2lkdGg6IDEwLFxuICAgICAgICAgICAgc3RhcnRBbmdsZTogMCxcbiAgICAgICAgICAgIHRvdGFsOiAxMDAsXG4gICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICAgICAgaGVpZ2h0OiAxNTAsXG4gICAgICAgICAgICAvLyBjaGFydFBhZGRpbmc6ICFpc0ZpcmVmb3ggPyAxMCA6IDI1IC8vIHdvcmthcm91bmQgZm9yIG9sZGVyIHZlcnNpb25zIG9mIGZpcmVmb3hcbiAgICAgICAgICAgIGNoYXJ0UGFkZGluZzogNVxuICAgICAgICB9LFxuICAgICAgICBCYXI6IHtcbiAgICAgICAgICAgIGhlaWdodDogMTY0LFxuICAgICAgICAgICAgY2hhcnRQYWRkaW5nOiAyMCwgLy8gd29ya2Fyb3VuZCBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgZmlyZWZveFxuXG4gICAgICAgICAgICBheGlzWDoge1xuICAgICAgICAgICAgICAgIHNob3dHcmlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsYWJlbE9mZnNldDoge1xuICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF4aXNZOiB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICBzaG93TGFiZWw6IHRydWUsXG4gICAgICAgICAgICAgICAgc2hvd0dyaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgbGFiZWxPZmZzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgeDogNSxcbiAgICAgICAgICAgICAgICAgICAgeTogNVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2NhbGVNaW5TcGFjZTogMjVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENoYXJ0IHtcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50LCBvcHRpb25zID0ge30sIGRhdGEgPSB7fSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpIHx8IFtdO1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFswXSkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgdHlwZSA9ICh0aGlzLmVsZW1lbnQuZGF0YSgnY2hhcnQtdHlwZScpIHx8ICdwaWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMub3B0aW9uc1t0aGlzLnR5cGVdLCBvcHRpb25zKTtcbiAgICAgICAgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzLmRhdGEsIGRhdGEpO1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHtcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICBkYXRhXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoYXJ0ID0gY2hhcnRpc3RbdGhpcy50eXBlXSh0aGlzLmVsZW1lbnQuZmluZCgnLmN0LWNoYXJ0JykuZW1wdHkoKVswXSwgdGhpcy5kYXRhLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLmNoYXJ0Lm9uKCdjcmVhdGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZpbmQoJy5oaWRkZW4nKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIC8vIEZJWDogd29ya2Fyb3VuZCBmb3IgY2hhcnRpc3QgaXNzdWUgbm90IGFsbG93aW5nIEhUTUwgaW4gbGFiZWxzIGFueW1vcmVcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naW9ua3Vuei9jaGFydGlzdC1qcy9pc3N1ZXMvOTM3XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZCgnLmN0LWxhYmVsJykuZWFjaCgoaW5kZXgsIGxhYmVsKSA9PiB7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSAkKGxhYmVsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gbGFiZWwuaHRtbCgpLnJlcGxhY2UoJyZsdDsnLCAnPCcpLnJlcGxhY2UoJyZndDsnLCAnPicpO1xuICAgICAgICAgICAgICAgIGxhYmVsLmh0bWwodGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlRGF0YShkYXRhKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLCBkYXRhKTtcbiAgICAgICAgdGhpcy5jaGFydC51cGRhdGUodGhpcy5kYXRhKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlc0NoYXJ0IGV4dGVuZHMgQ2hhcnQge1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQsIG9wdGlvbnMgPSB7fSwgZGF0YSA9IHt9KSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnQsIG9wdGlvbnMsIGRhdGEpO1xuXG4gICAgICAgIHRoaXMuY2hhcnQub24oJ2RyYXcnLCAoZGF0YSkgPT4gdGhpcy5kcmF3KGRhdGEpKTtcblxuICAgICAgICBncG0ub24oJ2ZldGNoZWQnLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2UucGF5bG9hZCkgeyByZXR1cm47IH1cblxuICAgICAgICAgICAgbGV0IHBheWxvYWQgPSByZXNwb25zZS5wYXlsb2FkLmdyYXY7XG4gICAgICAgICAgICBsZXQgbWlzc2luZyA9IChyZXNwb25zZS5wYXlsb2FkLnJlc291cmNlcy50b3RhbCArIChwYXlsb2FkLmlzVXBkYXRhYmxlID8gMSA6IDApKSAqIDEwMCAvIChyZXNwb25zZS5wYXlsb2FkLmluc3RhbGxlZCArIChwYXlsb2FkLmlzVXBkYXRhYmxlID8gMSA6IDApKTtcbiAgICAgICAgICAgIGxldCB1cGRhdGVkID0gMTAwIC0gbWlzc2luZztcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhKHsgc2VyaWVzOiBbdXBkYXRlZCwgbWlzc2luZ10gfSk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5wYXlsb2FkLnJlc291cmNlcy50b3RhbCkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZXMubWFpbnRlbmFuY2UoJ3Nob3cnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZHJhdyhkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhLmluZGV4KSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBub3RpY2UgPSB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOW2RhdGEudmFsdWUgPT09IDEwMCA/ICdGVUxMWV9VUERBVEVEJyA6ICdVUERBVEVTX0FWQUlMQUJMRSddO1xuICAgICAgICB0aGlzLmVsZW1lbnQuZmluZCgnLm51bWVyaWMgc3BhbicpLnRleHQoYCR7TWF0aC5yb3VuZChkYXRhLnZhbHVlKX0lYCk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCcuanNfX3VwZGF0ZXMtYXZhaWxhYmxlLWRlc2NyaXB0aW9uJykuaHRtbChub3RpY2UpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuZmluZCgnLmhpZGRlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKGRhdGEpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRGF0YShkYXRhKTtcblxuICAgICAgICAvLyBtaXNzaW5nIHVwZGF0ZXNcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5zZXJpZXNbMF0gPCAxMDApIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbG9zZXN0KCcjdXBkYXRlcycpLmZpbmQoJ1tkYXRhLXVwZGF0ZS1wYWNrYWdlc10nKS5mYWRlSW4oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubGV0IGNoYXJ0cyA9IHt9O1xuXG4kKCdbZGF0YS1jaGFydC1uYW1lXScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgIGxldCBuYW1lID0gZWxlbWVudC5kYXRhKCdjaGFydC1uYW1lJykgfHwgJyc7XG4gICAgbGV0IG9wdGlvbnMgPSBlbGVtZW50LmRhdGEoJ2NoYXJ0LW9wdGlvbnMnKSB8fCB7fTtcbiAgICBsZXQgZGF0YSA9IGVsZW1lbnQuZGF0YSgnY2hhcnQtZGF0YScpIHx8IHt9O1xuXG4gICAgaWYgKG5hbWUgPT09ICd1cGRhdGVzJykge1xuICAgICAgICBjaGFydHNbbmFtZV0gPSBuZXcgVXBkYXRlc0NoYXJ0KGVsZW1lbnQsIG9wdGlvbnMsIGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYXJ0c1tuYW1lXSA9IG5ldyBDaGFydChlbGVtZW50LCBvcHRpb25zLCBkYXRhKTtcbiAgICB9XG59KTtcblxuZXhwb3J0IGxldCBJbnN0YW5jZXMgPSBjaGFydHM7XG4iXSwibmFtZXMiOlsiJCIsImNoYXJ0aXN0IiwidHJhbnNsYXRpb25zIiwiSW5zdGFuY2UiLCJncG0iLCJ1cGRhdGVzIiwiZGVmYXVsdHMiLCJkYXRhIiwic2VyaWVzIiwib3B0aW9ucyIsIlBpZSIsImRvbnV0IiwiZG9udXRXaWR0aCIsInN0YXJ0QW5nbGUiLCJ0b3RhbCIsInNob3dMYWJlbCIsImhlaWdodCIsImNoYXJ0UGFkZGluZyIsIkJhciIsImF4aXNYIiwic2hvd0dyaWQiLCJsYWJlbE9mZnNldCIsIngiLCJ5IiwiYXhpc1kiLCJvZmZzZXQiLCJzY2FsZU1pblNwYWNlIiwiQ2hhcnQiLCJlbGVtZW50IiwidHlwZSIsInRvTG93ZXJDYXNlIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzdWJzdHIiLCJPYmplY3QiLCJhc3NpZ24iLCJjaGFydCIsImZpbmQiLCJlbXB0eSIsIm9uIiwicmVtb3ZlQ2xhc3MiLCJlYWNoIiwiaW5kZXgiLCJsYWJlbCIsInRleHQiLCJodG1sIiwicmVwbGFjZSIsInVwZGF0ZSIsIlVwZGF0ZXNDaGFydCIsImRyYXciLCJyZXNwb25zZSIsInBheWxvYWQiLCJncmF2IiwibWlzc2luZyIsInJlc291cmNlcyIsImlzVXBkYXRhYmxlIiwiaW5zdGFsbGVkIiwidXBkYXRlZCIsInVwZGF0ZURhdGEiLCJtYWludGVuYW5jZSIsIm5vdGljZSIsIlBMVUdJTl9BRE1JTiIsInZhbHVlIiwiTWF0aCIsInJvdW5kIiwiY2xvc2VzdCIsImZhZGVJbiIsImNoYXJ0cyIsIm5hbWUiLCJJbnN0YW5jZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/dashboard/chart.js\n");
/***/ }),
/***/ "./app/dashboard/index.js":
/*!********************************!*\
!*** ./app/dashboard/index.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart */ \"./app/dashboard/chart.js\");\n/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cache */ \"./app/dashboard/cache.js\");\n/* harmony import */ var _backup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./backup */ \"./app/dashboard/backup.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Chart: {\n Chart: _chart__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n UpdatesChart: _chart__WEBPACK_IMPORTED_MODULE_0__.UpdatesChart,\n Instances: _chart__WEBPACK_IMPORTED_MODULE_0__.Instances\n },\n Cache: _cache__WEBPACK_IMPORTED_MODULE_1__.Instance\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZGFzaGJvYXJkL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQSxpRUFBZTtBQUNYQSxFQUFBQSxLQUFLLEVBQUU7QUFDSEEsSUFBQUEsS0FBSyxFQUFMQSw4Q0FERztBQUVIQyxJQUFBQSxZQUFZLEVBQVpBLGdEQUZHO0FBR0hDLElBQUFBLFNBQVMsRUFBVEEsNkNBQVNBO0FBSE4sR0FESTtBQU1YRSxFQUFBQSxLQUFLLEVBQUxBLDRDQUFLQTtBQU5NLENBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9pbmRleC5qcz9hMTk1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDaGFydCwgeyBVcGRhdGVzQ2hhcnQsIEluc3RhbmNlcyB9IGZyb20gJy4vY2hhcnQnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCAnLi9iYWNrdXAnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgQ2hhcnQ6IHtcbiAgICAgICAgQ2hhcnQsXG4gICAgICAgIFVwZGF0ZXNDaGFydCxcbiAgICAgICAgSW5zdGFuY2VzXG4gICAgfSxcbiAgICBDYWNoZVxufTtcbiJdLCJuYW1lcyI6WyJDaGFydCIsIlVwZGF0ZXNDaGFydCIsIkluc3RhbmNlcyIsIkluc3RhbmNlIiwiQ2FjaGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/dashboard/index.js\n");
/***/ }),
/***/ "./app/forms/fields/acl-picker.js":
/*!****************************************!*\
!*** ./app/forms/fields/acl-picker.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nbody.on('change', '[data-acl_picker] select', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var item = target.closest('.permissions-item');\n var inputs = item.find('input[type=\"checkbox\"], input[type=\"radio\"]');\n var hidden = item.find('input[type=\"hidden\"][name]');\n var wrapper = target.closest('[data-acl_picker_id]');\n var type = item.data('fieldType');\n\n if (type === 'access') {\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var name = input.prop('name');\n input.prop('name', name.replace(/(.*)(\\[[^\\]]*\\])/, \"$1[\".concat(value, \"]\")));\n });\n } else if (type === 'permissions') {\n var crudpContainer = item.find('[data-field-name]');\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var rand = Math.round(Math.random() * 500);\n var name = crudpContainer.data('fieldName');\n var id = input.prop('id').split('_').slice(0, -1).join('_') + \"_\".concat(value, \"+\").concat(rand); // const key = input.data('crudpKey');\n\n hidden.prop('name', name.replace(/(.*)(\\[[^\\]]*\\])/, \"$1[\".concat(value, \"]\")));\n input.prop('id', id);\n input.next('label').prop('for', id);\n });\n }\n\n wrapper.find('.permissions-item .button.add-item')[!value ? 'addClass' : 'removeClass']('disabled').prop('disabled', !value ? 'disabled' : null);\n});\nbody.on('input', 'input[data-crudp-key]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.crudp-container');\n var hidden = container.find('input[type=\"hidden\"][name]');\n var key = target.data('crudpKey');\n var json = JSON.parse(hidden.val() || '{}');\n json[key] = target.val();\n hidden.val(JSON.stringify(json));\n});\nbody.on('click', '[data-acl_picker] .remove-item', function (event) {\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.permissions-item');\n var wrapper = target.closest('[data-acl_picker_id]');\n container.remove();\n var empty = wrapper.find('.permissions-item').length === 1; // show the initial + button\n\n if (empty) {\n wrapper.find('.permissions-item.empty-list').removeClass('hidden');\n }\n});\nbody.on('click', '[data-acl_picker] .add-item', function (event) {\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = target.closest('.permissions-item');\n var wrapper = target.closest('[data-acl_picker_id]');\n var ID = wrapper.data('acl_picker_id');\n var template = document.querySelector(\"template[data-id=\\\"acl_picker-\".concat(ID, \"\\\"]\"));\n var clone = jquery__WEBPACK_IMPORTED_MODULE_0___default()(template.content.firstElementChild).clone();\n clone.insertAfter(item); // randomize ids\n\n clone.find('.switch-toggle input[type=\"radio\"]').each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var id = input.prop('id');\n var label = input.next('label');\n var rand = (Date.now().toString(36) + Math.random().toString(36).substr(2, 5)).toLowerCase();\n input.prop('id', \"\".concat(id).concat(rand));\n label.prop('for', \"\".concat(id).concat(rand));\n }); // hide the initial + button\n\n wrapper.find('.permissions-item.empty-list').addClass('hidden'); // disable all + buttons until one is selected\n\n wrapper.find('.permissions-item .button.add-item').addClass('disabled').prop('disabled', 'disabled');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QW9CLEVBQXBCLElBQTBCOUIsSUFBSSxDQUFDRSxNQUFMLEdBQWM0QixRQUFkLENBQXVCLEVBQXZCLEVBQTJCQyxNQUEzQixDQUFrQyxDQUFsQyxFQUFxQyxDQUFyQyxDQUEzQixFQUFvRUMsV0FBcEUsRUFBYjtBQUVBdEMsSUFBQUEsS0FBSyxDQUFDRSxJQUFOLENBQVcsSUFBWCxZQUFvQk8sRUFBcEIsU0FBeUJKLElBQXpCO0FBQ0E0QixJQUFBQSxLQUFLLENBQUMvQixJQUFOLENBQVcsS0FBWCxZQUFxQk8sRUFBckIsU0FBMEJKLElBQTFCO0FBQ0gsR0FSRCxFQVp1RCxDQXNCdkQ7O0FBQ0FWLEVBQUFBLE9BQU8sQ0FBQ0YsSUFBUixDQUFhLDhCQUFiLEVBQTZDOEMsUUFBN0MsQ0FBc0QsUUFBdEQsRUF2QnVELENBeUJ2RDs7QUFDQTVDLEVBQUFBLE9BQU8sQ0FBQ0YsSUFBUixDQUFhLG9DQUFiLEVBQW1EOEMsUUFBbkQsQ0FBNEQsVUFBNUQsRUFBd0VyQyxJQUF4RSxDQUE2RSxVQUE3RSxFQUF5RixVQUF6RjtBQUNILENBM0JEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvYWNsLXBpY2tlci5qcz9kZjg3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbmJvZHkub24oJ2NoYW5nZScsICdbZGF0YS1hY2xfcGlja2VyXSBzZWxlY3QnLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHZhbHVlID0gdGFyZ2V0LnZhbCgpO1xuICAgIGNvbnN0IGl0ZW0gPSB0YXJnZXQuY2xvc2VzdCgnLnBlcm1pc3Npb25zLWl0ZW0nKTtcbiAgICBjb25zdCBpbnB1dHMgPSBpdGVtLmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdJyk7XG4gICAgY29uc3QgaGlkZGVuID0gaXRlbS5maW5kKCdpbnB1dFt0eXBlPVwiaGlkZGVuXCJdW25hbWVdJyk7XG4gICAgY29uc3Qgd3JhcHBlciA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1hY2xfcGlja2VyX2lkXScpO1xuICAgIGNvbnN0IHR5cGUgPSBpdGVtLmRhdGEoJ2ZpZWxkVHlwZScpO1xuXG4gICAgaWYgKHR5cGUgPT09ICdhY2Nlc3MnKSB7XG4gICAgICAgIGlucHV0cy5lYWNoKChpbmRleCwgaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGlucHV0ID0gJChpbnB1dCk7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gaW5wdXQucHJvcCgnbmFtZScpO1xuICAgICAgICAgICAgaW5wdXQucHJvcCgnbmFtZScsIG5hbWUucmVwbGFjZSgvKC4qKShcXFtbXlxcXV0qXFxdKS8sIGAkMVske3ZhbHVlfV1gKSk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Blcm1pc3Npb25zJykge1xuICAgICAgICBjb25zdCBjcnVkcENvbnRhaW5lciA9IGl0ZW0uZmluZCgnW2RhdGEtZmllbGQtbmFtZV0nKTtcbiAgICAgICAgaW5wdXRzLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQgPSAkKGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IHJhbmQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA1MDApO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGNydWRwQ29udGFpbmVyLmRhdGEoJ2ZpZWxkTmFtZScpO1xuICAgICAgICAgICAgY29uc3QgaWQgPSBpbnB1dC5wcm9wKCdpZCcpLnNwbGl0KCdfJykuc2xpY2UoMCwgLTEpLmpvaW4oJ18nKSArIGBfJHt2YWx1ZX0rJHtyYW5kfWA7XG4gICAgICAgICAgICAvLyBjb25zdCBrZXkgPSBpbnB1dC5kYXRhKCdjcnVkcEtleScpO1xuICAgICAgICAgICAgaGlkZGVuLnByb3AoJ25hbWUnLCBuYW1lLnJlcGxhY2UoLyguKikoXFxbW15cXF1dKlxcXSkvLCBgJDFbJHt2YWx1ZX1dYCkpO1xuICAgICAgICAgICAgaW5wdXQucHJvcCgnaWQnLCBpZCk7XG4gICAgICAgICAgICBpbnB1dC5uZXh0KCdsYWJlbCcpLnByb3AoJ2ZvcicsIGlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgd3JhcHBlci5maW5kKCcucGVybWlzc2lvbnMtaXRlbSAuYnV0dG9uLmFkZC1pdGVtJylbIXZhbHVlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKCdkaXNhYmxlZCcpLnByb3AoJ2Rpc2FibGVkJywgIXZhbHVlID8gJ2Rpc2FibGVkJyA6IG51bGwpO1xufSk7XG5cbmJvZHkub24oJ2lucHV0JywgJ2lucHV0W2RhdGEtY3J1ZHAta2V5XScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJy5jcnVkcC1jb250YWluZXInKTtcbiAgICBjb25zdCBoaWRkZW4gPSBjb250YWluZXIuZmluZCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtuYW1lXScpO1xuICAgIGNvbnN0IGtleSA9IHRhcmdldC5kYXRhKCdjcnVkcEtleScpO1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGhpZGRlbi52YWwoKSB8fCAne30nKTtcbiAgICBqc29uW2tleV0gPSB0YXJnZXQudmFsKCk7XG4gICAgaGlkZGVuLnZhbChKU09OLnN0cmluZ2lmeShqc29uKSk7XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtYWNsX3BpY2tlcl0gLnJlbW92ZS1pdGVtJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCcucGVybWlzc2lvbnMtaXRlbScpO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWNsX3BpY2tlcl9pZF0nKTtcbiAgICBjb250YWluZXIucmVtb3ZlKCk7XG5cbiAgICBjb25zdCBlbXB0eSA9IHdyYXBwZXIuZmluZCgnLnBlcm1pc3Npb25zLWl0ZW0nKS5sZW5ndGggPT09IDE7XG5cbiAgICAvLyBzaG93IHRoZSBpbml0aWFsICsgYnV0dG9uXG4gICAgaWYgKGVtcHR5KSB7XG4gICAgICAgIHdyYXBwZXIuZmluZCgnLnBlcm1pc3Npb25zLWl0ZW0uZW1wdHktbGlzdCcpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICB9XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtYWNsX3BpY2tlcl0gLmFkZC1pdGVtJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IGl0ZW0gPSB0YXJnZXQuY2xvc2VzdCgnLnBlcm1pc3Npb25zLWl0ZW0nKTtcbiAgICBjb25zdCB3cmFwcGVyID0gdGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFjbF9waWNrZXJfaWRdJyk7XG4gICAgY29uc3QgSUQgPSB3cmFwcGVyLmRhdGEoJ2FjbF9waWNrZXJfaWQnKTtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHRlbXBsYXRlW2RhdGEtaWQ9XCJhY2xfcGlja2VyLSR7SUR9XCJdYCk7XG5cbiAgICBjb25zdCBjbG9uZSA9ICQodGVtcGxhdGUuY29udGVudC5maXJzdEVsZW1lbnRDaGlsZCkuY2xvbmUoKTtcbiAgICBjbG9uZS5pbnNlcnRBZnRlcihpdGVtKTtcblxuICAgIC8vIHJhbmRvbWl6ZSBpZHNcbiAgICBjbG9uZS5maW5kKCcuc3dpdGNoLXRvZ2dsZSBpbnB1dFt0eXBlPVwicmFkaW9cIl0nKS5lYWNoKChpbmRleCwgaW5wdXQpID0+IHtcbiAgICAgICAgaW5wdXQgPSAkKGlucHV0KTtcbiAgICAgICAgY29uc3QgaWQgPSBpbnB1dC5wcm9wKCdpZCcpO1xuICAgICAgICBjb25zdCBsYWJlbCA9IGlucHV0Lm5leHQoJ2xhYmVsJyk7XG4gICAgICAgIGNvbnN0IHJhbmQgPSAoRGF0ZS5ub3coKS50b1N0cmluZygzNikgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgNSkpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgaW5wdXQucHJvcCgnaWQnLCBgJHtpZH0ke3JhbmR9YCk7XG4gICAgICAgIGxhYmVsLnByb3AoJ2ZvcicsIGAke2lkfSR7cmFuZH1gKTtcbiAgICB9KTtcblxuICAgIC8vIGhpZGUgdGhlIGluaXRpYWwgKyBidXR0b25cbiAgICB3cmFwcGVyLmZpbmQoJy5wZXJtaXNzaW9ucy1pdGVtLmVtcHR5LWxpc3QnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAvLyBkaXNhYmxlIGFsbCArIGJ1dHRvbnMgdW50aWwgb25lIGlzIHNlbGVjdGVkXG4gICAgd3JhcHBlci5maW5kKCcucGVybWlzc2lvbnMtaXRlbSAuYnV0dG9uLmFkZC1pdGVtJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJykucHJvcCgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJib2R5Iiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJ2YWx1ZSIsInZhbCIsIml0ZW0iLCJjbG9zZXN0IiwiaW5wdXRzIiwiZmluZCIsImhpZGRlbiIsIndyYXBwZXIiLCJ0eXBlIiwiZGF0YSIsImVhY2giLCJpbmRleCIsImlucHV0IiwibmFtZSIsInByb3AiLCJyZXBsYWNlIiwiY3J1ZHBDb250YWluZXIiLCJyYW5kIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiaWQiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIm5leHQiLCJjb250YWluZXIiLCJrZXkiLCJqc29uIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwicHJldmVudERlZmF1bHQiLCJyZW1vdmUiLCJlbXB0eSIsImxlbmd0aCIsInJlbW92ZUNsYXNzIiwiSUQiLCJ0ZW1wbGF0ZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNsb25lIiwiY29udGVudCIsImZpcnN0RWxlbWVudENoaWxkIiwiaW5zZXJ0QWZ0ZXIiLCJsYWJlbCIsIkRhdGUiLCJub3ciLCJ0b1N0cmluZyIsInN1YnN0ciIsInRvTG93ZXJDYXNlIiwiYWRkQ2xhc3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/acl-picker.js\n");
/***/ }),
/***/ "./app/forms/fields/array.js":
/*!***********************************!*\
!*** ./app/forms/fields/array.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArrayField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n\nvar Template = /*#__PURE__*/function () {\n function Template(container) {\n _classCallCheck(this, Template);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (this.getName() === undefined) {\n this.container = this.container.closest('[data-grav-array-name]');\n }\n }\n\n _createClass(Template, [{\n key: \"getName\",\n value: function getName() {\n return this.container.data('grav-array-name') || '';\n }\n }, {\n key: \"getKeyPlaceholder\",\n value: function getKeyPlaceholder() {\n return this.container.data('grav-array-keyname') || 'Key';\n }\n }, {\n key: \"getValuePlaceholder\",\n value: function getValuePlaceholder() {\n return this.container.data('grav-array-valuename') || 'Value';\n }\n }, {\n key: \"isValueOnly\",\n value: function isValueOnly() {\n return this.container.find('[data-grav-array-mode=\"value_only\"]:first').length || false;\n }\n }, {\n key: \"isTextArea\",\n value: function isTextArea() {\n return this.container.data('grav-array-textarea') || false;\n }\n }, {\n key: \"shouldBeDisabled\",\n value: function shouldBeDisabled() {\n // check for toggleables, if field is toggleable and it's not enabled, render disabled\n var toggle = this.container.closest('.form-field').find('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]');\n return toggle.length && toggle.is(':not(:checked)');\n }\n }, {\n key: \"getNewRow\",\n value: function getNewRow() {\n var tpl = '';\n var value = this.isTextArea() ? \"<textarea \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"value\\\" name=\\\"\\\" placeholder=\\\"\").concat(this.getValuePlaceholder(), \"\\\"></textarea>\") : \"<input \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"value\\\" type=\\\"text\\\" name=\\\"\\\" value=\\\"\\\" placeholder=\\\"\").concat(this.getValuePlaceholder(), \"\\\" />\");\n\n if (this.isValueOnly()) {\n tpl += \"\\n <div class=\\\"form-row array-field-value_only\\\" data-grav-array-type=\\\"row\\\">\\n <span data-grav-array-action=\\\"sort\\\" class=\\\"fa fa-bars\\\"></span>\\n \".concat(value, \"\\n \");\n } else {\n tpl += \"\\n <div class=\\\"form-row\\\" data-grav-array-type=\\\"row\\\">\\n <span data-grav-array-action=\\\"sort\\\" class=\\\"fa fa-bars\\\"></span>\\n <input \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"key\\\" type=\\\"text\\\" value=\\\"\\\" placeholder=\\\"\").concat(this.getKeyPlaceholder(), \"\\\" />\\n \").concat(value, \"\\n \");\n }\n\n tpl += \"\\n <span data-grav-array-action=\\\"rem\\\" class=\\\"fa fa-minus\\\"></span>\\n <span data-grav-array-action=\\\"add\\\" class=\\\"fa fa-plus\\\"></span>\\n </div>\";\n return tpl;\n }\n }]);\n\n return Template;\n}();\n\nvar ArrayField = /*#__PURE__*/function () {\n function ArrayField() {\n var _this = this;\n\n _classCallCheck(this, ArrayField);\n\n body.on('input', '[data-grav-array-type=\"key\"], [data-grav-array-type=\"value\"]', function (event) {\n return _this.actionInput(event);\n });\n body.on('click touch', '[data-grav-array-action]:not([data-grav-array-action=\"sort\"])', function (event) {\n return _this.actionEvent(event);\n });\n this.arrays = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"array\"]').each(function (index, list) {\n return _this.addArray(list);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(ArrayField, [{\n key: \"addArray\",\n value: function addArray(list) {\n var _this2 = this;\n\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n list.find('[data-grav-array-type=\"container\"]').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (container.data('array-sort') || container[0].hasAttribute('data-array-nosort')) {\n return;\n }\n\n container.data('array-sort', new sortablejs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](container.get(0), {\n handle: '.fa-bars',\n animation: 150,\n onUpdate: function onUpdate() {\n var item = container.find('[data-grav-array-type=\"row\"]:first');\n\n _this2._setTemplate(item);\n\n var template = item.data('array-template');\n\n _this2.refreshNames(template);\n }\n }));\n });\n }\n }, {\n key: \"actionInput\",\n value: function actionInput(event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var type = element.data('grav-array-type');\n\n this._setTemplate(element);\n\n var template = element.data('array-template');\n var keyElement = type === 'key' ? element : element.siblings('[data-grav-array-type=\"key\"]:first');\n var valueElement = type === 'value' ? element : element.siblings('[data-grav-array-type=\"value\"]:first');\n var escaped_name = !template.isValueOnly() ? keyElement.val() : this.getIndexFor(element);\n escaped_name = escaped_name.toString().replace(/\\[/g, '%5B').replace(/]/g, '%5D');\n var name = \"\".concat(template.getName(), \"[\").concat(escaped_name, \"]\");\n\n if (!template.isValueOnly() && !keyElement.val() && !valueElement.val()) {\n valueElement.attr('name', '');\n } else {\n // valueElement.attr('name', !valueElement.val() ? template.getName() : name);\n valueElement.attr('name', name);\n }\n\n this.refreshNames(template);\n }\n }, {\n key: \"actionEvent\",\n value: function actionEvent(event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var action = element.data('grav-array-action');\n var container = element.parents('[data-grav-array-type=\"container\"]');\n\n this._setTemplate(element);\n\n this[\"\".concat(action, \"Action\")](element);\n var siblings = container.find('> div');\n container[siblings.length > 1 ? 'removeClass' : 'addClass']('one-child');\n }\n }, {\n key: \"addAction\",\n value: function addAction(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n row.after(template.getNewRow());\n }\n }, {\n key: \"remAction\",\n value: function remAction(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n var isLast = !row.siblings().length;\n\n if (isLast) {\n var newRow = jquery__WEBPACK_IMPORTED_MODULE_0___default()(template.getNewRow());\n row.after(newRow);\n newRow.find('[data-grav-array-type=\"value\"]:last').attr('name', template.getName());\n }\n\n row.remove();\n this.refreshNames(template);\n }\n }, {\n key: \"refreshNames\",\n value: function refreshNames(template) {\n if (!template.isValueOnly()) {\n return;\n }\n\n var row = template.container.find('> div > [data-grav-array-type=\"row\"]');\n var inputs = row.find('[name]:not([name=\"\"])');\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var preserved_name = input.closest('[data-grav-array-name]');\n var name = \"\".concat(preserved_name.attr('data-grav-array-name'), \"[\").concat(index, \"]\");\n input.attr('name', name);\n });\n\n if (!inputs.length) {\n row.find('[data-grav-array-type=\"value\"]').attr('name', template.getName());\n }\n }\n }, {\n key: \"getIndexFor\",\n value: function getIndexFor(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n return template.container.find(\"\".concat(template.isValueOnly() ? '> div ' : '', \" > [data-grav-array-type=\\\"row\\\"]\")).index(row);\n }\n }, {\n key: \"_setTemplate\",\n value: function _setTemplate(element) {\n if (!element.data('array-template')) {\n element.data('array-template', new Template(element.closest('[data-grav-array-name]')));\n }\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this3 = this;\n\n var arrays = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-field=\"array\"]');\n\n if (!arrays.length) {\n return;\n }\n\n arrays.each(function (index, list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n\n if (!~_this3.arrays.index(list)) {\n _this3.addArray(list);\n }\n });\n }\n }]);\n\n return ArrayField;\n}();\n\n\nvar Instance = new ArrayField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQWNELElBQWQ7QUFDSDtBQUNKLE9BTEQ7QUFNSDs7Ozs7OztBQUdFLElBQUlzQyxRQUFRLEdBQUcsSUFBSTlDLFVBQUosRUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2FycmF5LmpzPzM4NGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBTb3J0YWJsZSBmcm9tICdzb3J0YWJsZWpzJztcblxubGV0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbmNsYXNzIFRlbXBsYXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS1uYW1lXScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktbmFtZScpIHx8ICcnO1xuICAgIH1cblxuICAgIGdldEtleVBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIuZGF0YSgnZ3Jhdi1hcnJheS1rZXluYW1lJykgfHwgJ0tleSc7XG4gICAgfVxuXG4gICAgZ2V0VmFsdWVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktdmFsdWVuYW1lJykgfHwgJ1ZhbHVlJztcbiAgICB9XG5cbiAgICBpc1ZhbHVlT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktbW9kZT1cInZhbHVlX29ubHlcIl06Zmlyc3QnKS5sZW5ndGggfHwgZmFsc2U7XG4gICAgfVxuXG4gICAgaXNUZXh0QXJlYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktdGV4dGFyZWEnKSB8fCBmYWxzZTtcbiAgICB9XG5cbiAgICBzaG91bGRCZURpc2FibGVkKCkge1xuICAgICAgICAvLyBjaGVjayBmb3IgdG9nZ2xlYWJsZXMsIGlmIGZpZWxkIGlzIHRvZ2dsZWFibGUgYW5kIGl0J3Mgbm90IGVuYWJsZWQsIHJlbmRlciBkaXNhYmxlZFxuICAgICAgICBsZXQgdG9nZ2xlID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnLmZvcm0tZmllbGQnKS5maW5kKCdbZGF0YS1ncmF2LWZpZWxkPVwidG9nZ2xlYWJsZVwiXSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKTtcbiAgICAgICAgcmV0dXJuIHRvZ2dsZS5sZW5ndGggJiYgdG9nZ2xlLmlzKCc6bm90KDpjaGVja2VkKScpO1xuICAgIH1cblxuICAgIGdldE5ld1JvdygpIHtcbiAgICAgICAgbGV0IHRwbCA9ICcnO2NvbnN0IHZhbHVlID0gdGhpcy5pc1RleHRBcmVhKClcbiAgICAgICAgICAgID8gYDx0ZXh0YXJlYSAke3RoaXMuc2hvdWxkQmVEaXNhYmxlZCgpID8gJ2Rpc2FibGVkPVwiZGlzYWJsZWRcIicgOiAnJ30gZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJ2YWx1ZVwiIG5hbWU9XCJcIiBwbGFjZWhvbGRlcj1cIiR7dGhpcy5nZXRWYWx1ZVBsYWNlaG9sZGVyKCl9XCI+PC90ZXh0YXJlYT5gXG4gICAgICAgICAgICA6IGA8aW5wdXQgJHt0aGlzLnNob3VsZEJlRGlzYWJsZWQoKSA/ICdkaXNhYmxlZD1cImRpc2FibGVkXCInIDogJyd9IGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwidmFsdWVcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJcIiB2YWx1ZT1cIlwiICBwbGFjZWhvbGRlcj1cIiR7dGhpcy5nZXRWYWx1ZVBsYWNlaG9sZGVyKCl9XCIgLz5gO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVPbmx5KCkpIHtcbiAgICAgICAgICAgIHRwbCArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgYXJyYXktZmllbGQtdmFsdWVfb25seVwiIGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZGF0YS1ncmF2LWFycmF5LWFjdGlvbj1cInNvcnRcIiBjbGFzcz1cImZhIGZhLWJhcnNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgIGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cGwgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCIgZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLWdyYXYtYXJyYXktYWN0aW9uPVwic29ydFwiIGNsYXNzPVwiZmEgZmEtYmFyc1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgJHt0aGlzLnNob3VsZEJlRGlzYWJsZWQoKSA/ICdkaXNhYmxlZD1cImRpc2FibGVkXCInIDogJyd9IGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwia2V5XCIgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIHBsYWNlaG9sZGVyPVwiJHt0aGlzLmdldEtleVBsYWNlaG9sZGVyKCl9XCIgLz5cbiAgICAgICAgICAgICAgICAke3ZhbHVlfVxuICAgICAgICAgICAgYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRwbCArPSBgXG4gICAgICAgICAgICA8c3BhbiBkYXRhLWdyYXYtYXJyYXktYWN0aW9uPVwicmVtXCIgY2xhc3M9XCJmYSBmYS1taW51c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtZ3Jhdi1hcnJheS1hY3Rpb249XCJhZGRcIiBjbGFzcz1cImZhIGZhLXBsdXNcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgcmV0dXJuIHRwbDtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFycmF5RmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBib2R5Lm9uKCdpbnB1dCcsICdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJrZXlcIl0sIFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdJywgKGV2ZW50KSA9PiB0aGlzLmFjdGlvbklucHV0KGV2ZW50KSk7XG4gICAgICAgIGJvZHkub24oJ2NsaWNrIHRvdWNoJywgJ1tkYXRhLWdyYXYtYXJyYXktYWN0aW9uXTpub3QoW2RhdGEtZ3Jhdi1hcnJheS1hY3Rpb249XCJzb3J0XCJdKScsIChldmVudCkgPT4gdGhpcy5hY3Rpb25FdmVudChldmVudCkpO1xuXG4gICAgICAgIHRoaXMuYXJyYXlzID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJhcnJheVwiXScpLmVhY2goKGluZGV4LCBsaXN0KSA9PiB0aGlzLmFkZEFycmF5KGxpc3QpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBhZGRBcnJheShsaXN0KSB7XG4gICAgICAgIGxpc3QgPSAkKGxpc3QpO1xuXG4gICAgICAgIGxpc3QuZmluZCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwiY29udGFpbmVyXCJdJykuZWFjaCgoaW5kZXgsIGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5kYXRhKCdhcnJheS1zb3J0JykgfHwgY29udGFpbmVyWzBdLmhhc0F0dHJpYnV0ZSgnZGF0YS1hcnJheS1ub3NvcnQnKSkgeyByZXR1cm47IH1cblxuICAgICAgICAgICAgY29udGFpbmVyLmRhdGEoJ2FycmF5LXNvcnQnLCBuZXcgU29ydGFibGUoY29udGFpbmVyLmdldCgwKSwge1xuICAgICAgICAgICAgICAgIGhhbmRsZTogJy5mYS1iYXJzJyxcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgICAgICBvblVwZGF0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gY29udGFpbmVyLmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXTpmaXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRUZW1wbGF0ZShpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBpdGVtLmRhdGEoJ2FycmF5LXRlbXBsYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaE5hbWVzKHRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFjdGlvbklucHV0KGV2ZW50KSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICBsZXQgdHlwZSA9IGVsZW1lbnQuZGF0YSgnZ3Jhdi1hcnJheS10eXBlJyk7XG5cbiAgICAgICAgdGhpcy5fc2V0VGVtcGxhdGUoZWxlbWVudCk7XG5cbiAgICAgICAgbGV0IHRlbXBsYXRlID0gZWxlbWVudC5kYXRhKCdhcnJheS10ZW1wbGF0ZScpO1xuICAgICAgICBsZXQga2V5RWxlbWVudCA9IHR5cGUgPT09ICdrZXknID8gZWxlbWVudCA6IGVsZW1lbnQuc2libGluZ3MoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cImtleVwiXTpmaXJzdCcpO1xuICAgICAgICBsZXQgdmFsdWVFbGVtZW50ID0gdHlwZSA9PT0gJ3ZhbHVlJyA/IGVsZW1lbnQgOiBlbGVtZW50LnNpYmxpbmdzKCdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJ2YWx1ZVwiXTpmaXJzdCcpO1xuXG4gICAgICAgIGxldCBlc2NhcGVkX25hbWUgPSAhdGVtcGxhdGUuaXNWYWx1ZU9ubHkoKSA/IGtleUVsZW1lbnQudmFsKCkgOiB0aGlzLmdldEluZGV4Rm9yKGVsZW1lbnQpO1xuICAgICAgICBlc2NhcGVkX25hbWUgPSBlc2NhcGVkX25hbWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXFsvZywgJyU1QicpLnJlcGxhY2UoL10vZywgJyU1RCcpO1xuICAgICAgICBsZXQgbmFtZSA9IGAke3RlbXBsYXRlLmdldE5hbWUoKX1bJHtlc2NhcGVkX25hbWV9XWA7XG5cbiAgICAgICAgaWYgKCF0ZW1wbGF0ZS5pc1ZhbHVlT25seSgpICYmICgha2V5RWxlbWVudC52YWwoKSAmJiAhdmFsdWVFbGVtZW50LnZhbCgpKSkge1xuICAgICAgICAgICAgdmFsdWVFbGVtZW50LmF0dHIoJ25hbWUnLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB2YWx1ZUVsZW1lbnQuYXR0cignbmFtZScsICF2YWx1ZUVsZW1lbnQudmFsKCkgPyB0ZW1wbGF0ZS5nZXROYW1lKCkgOiBuYW1lKTtcbiAgICAgICAgICAgIHZhbHVlRWxlbWVudC5hdHRyKCduYW1lJywgbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZnJlc2hOYW1lcyh0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgYWN0aW9uRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCBhY3Rpb24gPSBlbGVtZW50LmRhdGEoJ2dyYXYtYXJyYXktYWN0aW9uJyk7XG4gICAgICAgIGxldCBjb250YWluZXIgPSBlbGVtZW50LnBhcmVudHMoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cImNvbnRhaW5lclwiXScpO1xuXG4gICAgICAgIHRoaXMuX3NldFRlbXBsYXRlKGVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXNbYCR7YWN0aW9ufUFjdGlvbmBdKGVsZW1lbnQpO1xuXG4gICAgICAgIGxldCBzaWJsaW5ncyA9IGNvbnRhaW5lci5maW5kKCc+IGRpdicpO1xuICAgICAgICBjb250YWluZXJbc2libGluZ3MubGVuZ3RoID4gMSA/ICdyZW1vdmVDbGFzcycgOiAnYWRkQ2xhc3MnXSgnb25lLWNoaWxkJyk7XG4gICAgfVxuXG4gICAgYWRkQWN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgbGV0IHRlbXBsYXRlID0gZWxlbWVudC5kYXRhKCdhcnJheS10ZW1wbGF0ZScpO1xuICAgICAgICBsZXQgcm93ID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJyb3dcIl0nKTtcblxuICAgICAgICByb3cuYWZ0ZXIodGVtcGxhdGUuZ2V0TmV3Um93KCkpO1xuICAgIH1cblxuICAgIHJlbUFjdGlvbihlbGVtZW50KSB7XG4gICAgICAgIGxldCB0ZW1wbGF0ZSA9IGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnKTtcbiAgICAgICAgbGV0IHJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCJdJyk7XG4gICAgICAgIGxldCBpc0xhc3QgPSAhcm93LnNpYmxpbmdzKCkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChpc0xhc3QpIHtcbiAgICAgICAgICAgIGxldCBuZXdSb3cgPSAkKHRlbXBsYXRlLmdldE5ld1JvdygpKTtcbiAgICAgICAgICAgIHJvdy5hZnRlcihuZXdSb3cpO1xuICAgICAgICAgICAgbmV3Um93LmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdOmxhc3QnKS5hdHRyKCduYW1lJywgdGVtcGxhdGUuZ2V0TmFtZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJvdy5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTmFtZXModGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHJlZnJlc2hOYW1lcyh0ZW1wbGF0ZSkge1xuICAgICAgICBpZiAoIXRlbXBsYXRlLmlzVmFsdWVPbmx5KCkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IHJvdyA9IHRlbXBsYXRlLmNvbnRhaW5lci5maW5kKCc+IGRpdiA+IFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXScpO1xuICAgICAgICBsZXQgaW5wdXRzID0gcm93LmZpbmQoJ1tuYW1lXTpub3QoW25hbWU9XCJcIl0pJyk7XG5cbiAgICAgICAgaW5wdXRzLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQgPSAkKGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlZF9uYW1lID0gaW5wdXQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS1uYW1lXScpO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGAke3ByZXNlcnZlZF9uYW1lLmF0dHIoJ2RhdGEtZ3Jhdi1hcnJheS1uYW1lJyl9WyR7aW5kZXh9XWA7XG4gICAgICAgICAgICBpbnB1dC5hdHRyKCduYW1lJywgbmFtZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaW5wdXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcm93LmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdJykuYXR0cignbmFtZScsIHRlbXBsYXRlLmdldE5hbWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbmRleEZvcihlbGVtZW50KSB7XG4gICAgICAgIGxldCB0ZW1wbGF0ZSA9IGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnKTtcbiAgICAgICAgbGV0IHJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLmNvbnRhaW5lci5maW5kKGAke3RlbXBsYXRlLmlzVmFsdWVPbmx5KCkgPyAnPiBkaXYgJyA6ICcnfSA+IFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXWApLmluZGV4KHJvdyk7XG4gICAgfVxuXG4gICAgX3NldFRlbXBsYXRlKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKCFlbGVtZW50LmRhdGEoJ2FycmF5LXRlbXBsYXRlJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnLCBuZXcgVGVtcGxhdGUoZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1ncmF2LWFycmF5LW5hbWVdJykpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgYXJyYXlzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJhcnJheVwiXScpO1xuICAgICAgICBpZiAoIWFycmF5cy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgYXJyYXlzLmVhY2goKGluZGV4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICBsaXN0ID0gJChsaXN0KTtcbiAgICAgICAgICAgIGlmICghfnRoaXMuYXJyYXlzLmluZGV4KGxpc3QpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRBcnJheShsaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEFycmF5RmllbGQoKTtcbiJdLCJuYW1lcyI6WyIkIiwiU29ydGFibGUiLCJib2R5IiwiVGVtcGxhdGUiLCJjb250YWluZXIiLCJnZXROYW1lIiwidW5kZWZpbmVkIiwiY2xvc2VzdCIsImRhdGEiLCJmaW5kIiwibGVuZ3RoIiwidG9nZ2xlIiwiaXMiLCJ0cGwiLCJ2YWx1ZSIsImlzVGV4dEFyZWEiLCJzaG91bGRCZURpc2FibGVkIiwiZ2V0VmFsdWVQbGFjZWhvbGRlciIsImlzVmFsdWVPbmx5IiwiZ2V0S2V5UGxhY2Vob2xkZXIiLCJBcnJheUZpZWxkIiwib24iLCJldmVudCIsImFjdGlvbklucHV0IiwiYWN0aW9uRXZlbnQiLCJhcnJheXMiLCJlYWNoIiwiaW5kZXgiLCJsaXN0IiwiYWRkQXJyYXkiLCJfb25BZGRlZE5vZGVzIiwiYmluZCIsImhhc0F0dHJpYnV0ZSIsImdldCIsImhhbmRsZSIsImFuaW1hdGlvbiIsIm9uVXBkYXRlIiwiaXRlbSIsIl9zZXRUZW1wbGF0ZSIsInRlbXBsYXRlIiwicmVmcmVzaE5hbWVzIiwiZWxlbWVudCIsInRhcmdldCIsInR5cGUiLCJrZXlFbGVtZW50Iiwic2libGluZ3MiLCJ2YWx1ZUVsZW1lbnQiLCJlc2NhcGVkX25hbWUiLCJ2YWwiLCJnZXRJbmRleEZvciIsInRvU3RyaW5nIiwicmVwbGFjZSIsIm5hbWUiLCJhdHRyIiwicHJldmVudERlZmF1bHQiLCJhY3Rpb24iLCJwYXJlbnRzIiwicm93IiwiYWZ0ZXIiLCJnZXROZXdSb3ciLCJpc0xhc3QiLCJuZXdSb3ciLCJyZW1vdmUiLCJpbnB1dHMiLCJpbnB1dCIsInByZXNlcnZlZF9uYW1lIiwiSW5zdGFuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/array.js\n");
/***/ }),
/***/ "./app/forms/fields/collections.js":
/*!*****************************************!*\
!*** ./app/forms/fields/collections.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CollectionsField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar CollectionsField = /*#__PURE__*/function () {\n function CollectionsField() {\n var _this = this;\n\n _classCallCheck(this, CollectionsField);\n\n this.lists = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-type=\"collection\"]').each(function (index, list) {\n return _this.addList(list);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(CollectionsField, [{\n key: \"addList\",\n value: function addList(list) {\n var _this2 = this;\n\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n this.lists = this.lists.add(list);\n list.on('click', '> .collection-actions [data-action=\"add\"]', function (event) {\n return _this2.addItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"delete\"]', function (event) {\n return _this2.removeItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"collapse\"]', function (event) {\n return _this2.collapseItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"expand\"]', function (event) {\n return _this2.expandItem(event);\n });\n list.on('click', '> .collection-actions [data-action-sort=\"date\"]', function (event) {\n return _this2.sortItems(event);\n });\n list.on('click', '> .collection-actions [data-action=\"collapse_all\"]', function (event) {\n return _this2.collapseItems(event);\n });\n list.on('click', '> .collection-actions [data-action=\"expand_all\"]', function (event) {\n return _this2.expandItems(event);\n });\n list.on('input change', '[data-key-observe]', function (event) {\n return _this2.observeKey(event);\n });\n list.find('[data-collection-holder]').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (container.data('collection-sort') || container[0].hasAttribute('data-collection-nosort')) {\n return;\n }\n\n container.data('collection-sort', new sortablejs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](container.get(0), {\n forceFallback: false,\n handle: '.collection-sort',\n animation: 150,\n onUpdate: function onUpdate() {\n return _this2.reindex(container);\n }\n }));\n });\n\n this._updateActionsStateBasedOnMinMax(list);\n }\n }, {\n key: \"addItem\",\n value: function addItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var position = button.data('action-add') || 'bottom';\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var template = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list.find('> [data-collection-template=\"new\"]').data('collection-template-html'));\n\n this._updateActionsStateBasedOnMinMax(list);\n\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var maxItems = list.data('max');\n\n if (typeof maxItems !== 'undefined' && items.length >= maxItems) {\n return;\n }\n\n list.find('> [data-collection-holder]')[position === 'top' ? 'prepend' : 'append'](template);\n this.reindex(list);\n items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var topAction = list.closest('[data-type=\"collection\"]').find('[data-action-add=\"top\"]');\n var sortAction = list.closest('[data-type=\"collection\"]').find('[data-action=\"sort\"]');\n\n if (items.length) {\n if (topAction.length) {\n topAction.parent().removeClass('hidden');\n }\n\n if (sortAction.length && items.length > 1) {\n sortAction.removeClass('hidden');\n }\n } // refresh toggleables in a list\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]').trigger('change');\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var minItems = list.data('min');\n\n if (typeof minItems !== 'undefined' && items.length <= minItems) {\n return;\n }\n\n item.remove();\n this.reindex(list);\n items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var topAction = list.closest('[data-type=\"collection\"]').find('[data-action-add=\"top\"]');\n var sortAction = list.closest('[data-type=\"collection\"]').find('[data-action=\"sort\"]');\n\n if (!items.length) {\n if (topAction.length) {\n topAction.parent().addClass('hidden');\n }\n }\n\n if (sortAction.length && items.length <= 1) {\n sortAction.addClass('hidden');\n }\n\n this._updateActionsStateBasedOnMinMax(list);\n }\n }, {\n key: \"collapseItems\",\n value: function collapseItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]')).find('> ul > [data-collection-item] > .item-actions [data-action=\"collapse\"]');\n items.click();\n }\n }, {\n key: \"collapseItem\",\n value: function collapseItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n button.attr('data-action', 'expand').removeClass('fa-chevron-circle-down').addClass('fa-chevron-circle-right');\n item.addClass('collection-collapsed');\n }\n }, {\n key: \"expandItems\",\n value: function expandItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]')).find('> ul > [data-collection-item] > .item-actions [data-action=\"expand\"]');\n items.click();\n }\n }, {\n key: \"expandItem\",\n value: function expandItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n button.attr('data-action', 'collapse').removeClass('fa-chevron-circle-right').addClass('fa-chevron-circle-down');\n item.removeClass('collection-collapsed');\n }\n }, {\n key: \"sortItems\",\n value: function sortItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var sortby = button.data('action-sort');\n var sortby_dir = button.data('action-sort-dir') || 'asc';\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n items.sort(function (a, b) {\n var A = jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).find('[name$=\"[' + sortby + ']\"]');\n var B = jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).find('[name$=\"[' + sortby + ']\"]');\n var sort;\n\n if (sortby_dir === 'asc') {\n sort = A.val() < B.val() ? -1 : A.val() > B.val() ? 1 : 0;\n } else {\n sort = A.val() > B.val() ? -1 : A.val() < B.val() ? 1 : 0;\n }\n\n return sort;\n }).each(function (_, container) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(container).parent().append(container);\n });\n this.reindex(list);\n }\n }, {\n key: \"observeKey\",\n value: function observeKey(event) {\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var value = input.val();\n var item = input.closest('[data-collection-key]');\n item.data('collection-key-backup', item.data('collection-key')).data('collection-key', value);\n this.reindex(null, item);\n }\n }, {\n key: \"reindex\",\n value: function reindex(list, items) {\n items = items || jquery__WEBPACK_IMPORTED_MODULE_0___default()(list).closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n items.each(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n var observed = item.find('[data-key-observe]');\n var observedValue = observed.val();\n var hasCustomKey = observed.length;\n var currentKey = item.data('collection-key-backup');\n item.attr('data-collection-key', hasCustomKey ? observedValue : index);\n ['name', 'data-grav-field-name', 'for', 'id', 'data-grav-file-settings', 'data-file-post-add', 'data-file-post-remove', 'data-grav-array-name'].forEach(function (prop) {\n item.find('[' + prop + '], [_' + prop + ']').each(function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var indexes = [];\n var array_index = null;\n var regexps = [new RegExp('\\\\[(\\\\d+|\\\\*|' + currentKey + ')\\\\]', 'g'), new RegExp('\\\\.(\\\\d+|\\\\*|' + currentKey + ')\\\\.', 'g')]; // special case to preserve array field index keys\n\n if (prop === 'name' && element.data('gravArrayType')) {\n var match_index = element.attr(prop).match(/\\[[0-9]{1,}\\]$/);\n var pattern = element[0].closest('[data-grav-array-name]').dataset.gravArrayName;\n\n if (match_index && pattern) {\n array_index = match_index[0];\n element.attr(prop, \"\".concat(pattern).concat(match_index[0]));\n return;\n }\n }\n\n if (hasCustomKey && !observedValue) {\n element.attr(\"_\".concat(prop), element.attr(prop));\n element.attr(prop, null);\n return;\n }\n\n if (element.attr(\"_\".concat(prop))) {\n element.attr(prop, element.attr(\"_\".concat(prop)));\n element.attr(\"_\".concat(prop), null);\n }\n\n element.parents('[data-collection-key]').map(function (idx, parent) {\n return indexes.push(jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).attr('data-collection-key'));\n });\n indexes.reverse();\n var matchedKey = currentKey;\n var replaced = element.attr(prop).replace(regexps[0], function\n /* str, p1, offset */\n () {\n var extras = '';\n\n if (array_index) {\n extras = array_index;\n console.log(indexes, extras);\n }\n\n matchedKey = indexes.shift() || matchedKey;\n return \"[\".concat(matchedKey, \"]\").concat(extras);\n });\n replaced = replaced.replace(regexps[1], function\n /* str, p1, offset */\n () {\n matchedKey = indexes.shift() || matchedKey;\n return \".\".concat(matchedKey, \".\");\n });\n element.attr(prop, replaced);\n });\n });\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this3 = this;\n\n var collections = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-type=\"collection\"]');\n\n if (!collections.length) {\n return;\n }\n\n collections.each(function (index, collection) {\n collection = jquery__WEBPACK_IMPORTED_MODULE_0___default()(collection);\n\n if (!~_this3.lists.index(collection)) {\n _this3.addList(collection);\n }\n });\n }\n }, {\n key: \"_updateActionsStateBasedOnMinMax\",\n value: function _updateActionsStateBasedOnMinMax(list) {\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var minItems = list.data('min');\n var maxItems = list.data('max');\n list.find('> .collection-actions [data-action=\"add\"]').attr('disabled', false);\n list.find('> ul > li > .item-actions [data-action=\"delete\"]').attr('disabled', false);\n\n if (typeof minItems !== 'undefined' && items.length <= minItems) {\n list.find('> ul > li > .item-actions [data-action=\"delete\"]').attr('disabled', true);\n }\n\n if (typeof maxItems !== 'undefined' && items.length >= maxItems) {\n list.find('> .collection-actions [data-action=\"add\"]').attr('disabled', true);\n }\n }\n }]);\n\n return CollectionsField;\n}();\n\n\nvar Instance = new CollectionsField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUwsQ0FBVSwyQ0FBVixFQUF1RDZCLElBQXZELENBQTRELFVBQTVELEVBQXdFLElBQXhFO0FBQ0g7QUFDSjs7Ozs7OztBQUdFLElBQUk0QyxRQUFRLEdBQUcsSUFBSTVGLGdCQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9jb2xsZWN0aW9ucy5qcz82YzU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgU29ydGFibGUgZnJvbSAnc29ydGFibGVqcyc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2pxdWVyeS11dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxlY3Rpb25zRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxpc3RzID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZWFjaCgoaW5kZXgsIGxpc3QpID0+IHRoaXMuYWRkTGlzdChsaXN0KSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG5cbiAgICB9XG5cbiAgICBhZGRMaXN0KGxpc3QpIHtcbiAgICAgICAgbGlzdCA9ICQobGlzdCk7XG4gICAgICAgIHRoaXMubGlzdHMgPSB0aGlzLmxpc3RzLmFkZChsaXN0KTtcblxuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiYWRkXCJdJywgKGV2ZW50KSA9PiB0aGlzLmFkZEl0ZW0oZXZlbnQpKTtcbiAgICAgICAgbGlzdC5vbignY2xpY2snLCAnPiB1bCA+IGxpID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJkZWxldGVcIl0nLCAoZXZlbnQpID0+IHRoaXMucmVtb3ZlSXRlbShldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IHVsID4gbGkgPiAuaXRlbS1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImNvbGxhcHNlXCJdJywgKGV2ZW50KSA9PiB0aGlzLmNvbGxhcHNlSXRlbShldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IHVsID4gbGkgPiAuaXRlbS1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImV4cGFuZFwiXScsIChldmVudCkgPT4gdGhpcy5leHBhbmRJdGVtKGV2ZW50KSk7XG4gICAgICAgIGxpc3Qub24oJ2NsaWNrJywgJz4gLmNvbGxlY3Rpb24tYWN0aW9ucyBbZGF0YS1hY3Rpb24tc29ydD1cImRhdGVcIl0nLCAoZXZlbnQpID0+IHRoaXMuc29ydEl0ZW1zKGV2ZW50KSk7XG4gICAgICAgIGxpc3Qub24oJ2NsaWNrJywgJz4gLmNvbGxlY3Rpb24tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJjb2xsYXBzZV9hbGxcIl0nLCAoZXZlbnQpID0+IHRoaXMuY29sbGFwc2VJdGVtcyhldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZXhwYW5kX2FsbFwiXScsIChldmVudCkgPT4gdGhpcy5leHBhbmRJdGVtcyhldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdpbnB1dCBjaGFuZ2UnLCAnW2RhdGEta2V5LW9ic2VydmVdJywgKGV2ZW50KSA9PiB0aGlzLm9ic2VydmVLZXkoZXZlbnQpKTtcblxuICAgICAgICBsaXN0LmZpbmQoJ1tkYXRhLWNvbGxlY3Rpb24taG9sZGVyXScpLmVhY2goKGluZGV4LCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXIuZGF0YSgnY29sbGVjdGlvbi1zb3J0JykgfHwgY29udGFpbmVyWzBdLmhhc0F0dHJpYnV0ZSgnZGF0YS1jb2xsZWN0aW9uLW5vc29ydCcpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICBjb250YWluZXIuZGF0YSgnY29sbGVjdGlvbi1zb3J0JywgbmV3IFNvcnRhYmxlKGNvbnRhaW5lci5nZXQoMCksIHtcbiAgICAgICAgICAgICAgICBmb3JjZUZhbGxiYWNrOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoYW5kbGU6ICcuY29sbGVjdGlvbi1zb3J0JyxcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgICAgICBvblVwZGF0ZTogKCkgPT4gdGhpcy5yZWluZGV4KGNvbnRhaW5lcilcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQWN0aW9uc1N0YXRlQmFzZWRPbk1pbk1heChsaXN0KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGV2ZW50KSB7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBsZXQgcG9zaXRpb24gPSBidXR0b24uZGF0YSgnYWN0aW9uLWFkZCcpIHx8ICdib3R0b20nO1xuICAgICAgICBsZXQgbGlzdCA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpO1xuICAgICAgICBsZXQgdGVtcGxhdGUgPSAkKGxpc3QuZmluZCgnPiBbZGF0YS1jb2xsZWN0aW9uLXRlbXBsYXRlPVwibmV3XCJdJykuZGF0YSgnY29sbGVjdGlvbi10ZW1wbGF0ZS1odG1sJykpO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnNTdGF0ZUJhc2VkT25NaW5NYXgobGlzdCk7XG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWF4SXRlbXMgPSBsaXN0LmRhdGEoJ21heCcpO1xuICAgICAgICBpZiAodHlwZW9mIG1heEl0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiBpdGVtcy5sZW5ndGggPj0gbWF4SXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3QuZmluZCgnPiBbZGF0YS1jb2xsZWN0aW9uLWhvbGRlcl0nKVtwb3NpdGlvbiA9PT0gJ3RvcCcgPyAncHJlcGVuZCcgOiAnYXBwZW5kJ10odGVtcGxhdGUpO1xuICAgICAgICB0aGlzLnJlaW5kZXgobGlzdCk7XG5cbiAgICAgICAgaXRlbXMgPSBsaXN0LmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnPiB1bCA+IFtkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcbiAgICAgICAgbGV0IHRvcEFjdGlvbiA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCdbZGF0YS1hY3Rpb24tYWRkPVwidG9wXCJdJyk7XG4gICAgICAgIGxldCBzb3J0QWN0aW9uID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJ1tkYXRhLWFjdGlvbj1cInNvcnRcIl0nKTtcblxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodG9wQWN0aW9uLmxlbmd0aCkgeyB0b3BBY3Rpb24ucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOyB9XG4gICAgICAgICAgICBpZiAoc29ydEFjdGlvbi5sZW5ndGggJiYgaXRlbXMubGVuZ3RoID4gMSkgeyBzb3J0QWN0aW9uLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVmcmVzaCB0b2dnbGVhYmxlcyBpbiBhIGxpc3RcbiAgICAgICAgJCgnW2RhdGEtZ3Jhdi1maWVsZD1cInRvZ2dsZWFibGVcIl0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShldmVudCkge1xuICAgICAgICBsZXQgYnV0dG9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgbGV0IGl0ZW0gPSBidXR0b24uY2xvc2VzdCgnW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbGlzdCA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpO1xuXG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWluSXRlbXMgPSBsaXN0LmRhdGEoJ21pbicpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgbWluSXRlbXMgIT09ICd1bmRlZmluZWQnICYmIGl0ZW1zLmxlbmd0aCA8PSBtaW5JdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbS5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5yZWluZGV4KGxpc3QpO1xuXG4gICAgICAgIGl0ZW1zID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG4gICAgICAgIGxldCB0b3BBY3Rpb24gPSBsaXN0LmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnW2RhdGEtYWN0aW9uLWFkZD1cInRvcFwiXScpO1xuICAgICAgICBsZXQgc29ydEFjdGlvbiA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCdbZGF0YS1hY3Rpb249XCJzb3J0XCJdJyk7XG5cbiAgICAgICAgaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0b3BBY3Rpb24ubGVuZ3RoKSB7IHRvcEFjdGlvbi5wYXJlbnQoKS5hZGRDbGFzcygnaGlkZGVuJyk7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3J0QWN0aW9uLmxlbmd0aCAmJiBpdGVtcy5sZW5ndGggPD0gMSkgeyBzb3J0QWN0aW9uLmFkZENsYXNzKCdoaWRkZW4nKTsgfVxuICAgICAgICB0aGlzLl91cGRhdGVBY3Rpb25zU3RhdGVCYXNlZE9uTWluTWF4KGxpc3QpO1xuICAgIH1cblxuICAgIGNvbGxhcHNlSXRlbXMoZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtcyA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJjb2xsYXBzZVwiXScpO1xuXG4gICAgICAgIGl0ZW1zLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgY29sbGFwc2VJdGVtKGV2ZW50KSB7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBsZXQgaXRlbSA9IGJ1dHRvbi5jbG9zZXN0KCdbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG5cbiAgICAgICAgYnV0dG9uLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2V4cGFuZCcpLnJlbW92ZUNsYXNzKCdmYS1jaGV2cm9uLWNpcmNsZS1kb3duJykuYWRkQ2xhc3MoJ2ZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0Jyk7XG4gICAgICAgIGl0ZW0uYWRkQ2xhc3MoJ2NvbGxlY3Rpb24tY29sbGFwc2VkJyk7XG4gICAgfVxuXG4gICAgZXhwYW5kSXRlbXMoZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtcyA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJleHBhbmRcIl0nKTtcblxuICAgICAgICBpdGVtcy5jbGljaygpO1xuICAgIH1cblxuICAgIGV4cGFuZEl0ZW0oZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtID0gYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcblxuICAgICAgICBidXR0b24uYXR0cignZGF0YS1hY3Rpb24nLCAnY29sbGFwc2UnKS5yZW1vdmVDbGFzcygnZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQnKS5hZGRDbGFzcygnZmEtY2hldnJvbi1jaXJjbGUtZG93bicpO1xuICAgICAgICBpdGVtLnJlbW92ZUNsYXNzKCdjb2xsZWN0aW9uLWNvbGxhcHNlZCcpO1xuICAgIH1cblxuICAgIHNvcnRJdGVtcyhldmVudCkge1xuICAgICAgICBsZXQgYnV0dG9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgbGV0IHNvcnRieSA9IGJ1dHRvbi5kYXRhKCdhY3Rpb24tc29ydCcpO1xuICAgICAgICBsZXQgc29ydGJ5X2RpciA9IGJ1dHRvbi5kYXRhKCdhY3Rpb24tc29ydC1kaXInKSB8fCAnYXNjJztcbiAgICAgICAgbGV0IGxpc3QgPSAkKGJ1dHRvbi5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpKTtcbiAgICAgICAgbGV0IGl0ZW1zID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG5cbiAgICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgbGV0IEEgPSAkKGEpLmZpbmQoJ1tuYW1lJD1cIlsnICsgc29ydGJ5ICsgJ11cIl0nKTtcbiAgICAgICAgICAgIGxldCBCID0gJChiKS5maW5kKCdbbmFtZSQ9XCJbJyArIHNvcnRieSArICddXCJdJyk7XG4gICAgICAgICAgICBsZXQgc29ydDtcblxuICAgICAgICAgICAgaWYgKHNvcnRieV9kaXIgPT09ICdhc2MnKSB7XG4gICAgICAgICAgICAgICAgc29ydCA9IChBLnZhbCgpIDwgQi52YWwoKSkgPyAtMSA6IChBLnZhbCgpID4gQi52YWwoKSkgPyAxIDogMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc29ydCA9IChBLnZhbCgpID4gQi52YWwoKSkgPyAtMSA6IChBLnZhbCgpIDwgQi52YWwoKSkgPyAxIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNvcnQ7XG4gICAgICAgIH0pLmVhY2goKF8sIGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgJChjb250YWluZXIpLnBhcmVudCgpLmFwcGVuZChjb250YWluZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlaW5kZXgobGlzdCk7XG4gICAgfVxuXG4gICAgb2JzZXJ2ZUtleShldmVudCkge1xuICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCB2YWx1ZSA9IGlucHV0LnZhbCgpO1xuICAgICAgICBsZXQgaXRlbSA9IGlucHV0LmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24ta2V5XScpO1xuXG4gICAgICAgIGl0ZW0uZGF0YSgnY29sbGVjdGlvbi1rZXktYmFja3VwJywgaXRlbS5kYXRhKCdjb2xsZWN0aW9uLWtleScpKS5kYXRhKCdjb2xsZWN0aW9uLWtleScsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZWluZGV4KG51bGwsIGl0ZW0pO1xuICAgIH1cblxuICAgIHJlaW5kZXgobGlzdCwgaXRlbXMpIHtcbiAgICAgICAgaXRlbXMgPSBpdGVtcyB8fCAkKGxpc3QpLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnPiB1bCA+IFtkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcblxuICAgICAgICBpdGVtcy5lYWNoKChpbmRleCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbSA9ICQoaXRlbSk7XG5cbiAgICAgICAgICAgIGxldCBvYnNlcnZlZCA9IGl0ZW0uZmluZCgnW2RhdGEta2V5LW9ic2VydmVdJyk7XG4gICAgICAgICAgICBsZXQgb2JzZXJ2ZWRWYWx1ZSA9IG9ic2VydmVkLnZhbCgpO1xuICAgICAgICAgICAgbGV0IGhhc0N1c3RvbUtleSA9IG9ic2VydmVkLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50S2V5ID0gaXRlbS5kYXRhKCdjb2xsZWN0aW9uLWtleS1iYWNrdXAnKTtcblxuICAgICAgICAgICAgaXRlbS5hdHRyKCdkYXRhLWNvbGxlY3Rpb24ta2V5JywgaGFzQ3VzdG9tS2V5ID8gb2JzZXJ2ZWRWYWx1ZSA6IGluZGV4KTtcblxuICAgICAgICAgICAgWyduYW1lJywgJ2RhdGEtZ3Jhdi1maWVsZC1uYW1lJywgJ2ZvcicsICdpZCcsICdkYXRhLWdyYXYtZmlsZS1zZXR0aW5ncycsICdkYXRhLWZpbGUtcG9zdC1hZGQnLCAnZGF0YS1maWxlLXBvc3QtcmVtb3ZlJywgJ2RhdGEtZ3Jhdi1hcnJheS1uYW1lJ10uZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uZmluZCgnWycgKyBwcm9wICsgJ10sIFtfJyArIHByb3AgKyAnXScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2luZGV4ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZ2V4cHMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKCdcXFxcWyhcXFxcZCt8XFxcXCp8JyArIGN1cnJlbnRLZXkgKyAnKVxcXFxdJywgJ2cnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBSZWdFeHAoJ1xcXFwuKFxcXFxkK3xcXFxcKnwnICsgY3VycmVudEtleSArICcpXFxcXC4nLCAnZycpXG4gICAgICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIHRvIHByZXNlcnZlIGFycmF5IGZpZWxkIGluZGV4IGtleXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3AgPT09ICduYW1lJyAmJiBlbGVtZW50LmRhdGEoJ2dyYXZBcnJheVR5cGUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hfaW5kZXggPSBlbGVtZW50LmF0dHIocHJvcCkubWF0Y2goL1xcW1swLTldezEsfVxcXSQvKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBlbGVtZW50WzBdLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtYXJyYXktbmFtZV0nKS5kYXRhc2V0LmdyYXZBcnJheU5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hfaW5kZXggJiYgcGF0dGVybikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X2luZGV4ID0gbWF0Y2hfaW5kZXhbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hdHRyKHByb3AsIGAke3BhdHRlcm59JHttYXRjaF9pbmRleFswXX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ3VzdG9tS2V5ICYmICFvYnNlcnZlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCwgZWxlbWVudC5hdHRyKHByb3ApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCBlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hdHRyKGBfJHtwcm9wfWAsIG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5wYXJlbnRzKCdbZGF0YS1jb2xsZWN0aW9uLWtleV0nKS5tYXAoKGlkeCwgcGFyZW50KSA9PiBpbmRleGVzLnB1c2goJChwYXJlbnQpLmF0dHIoJ2RhdGEtY29sbGVjdGlvbi1rZXknKSkpO1xuICAgICAgICAgICAgICAgICAgICBpbmRleGVzLnJldmVyc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF0Y2hlZEtleSA9IGN1cnJlbnRLZXk7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXBsYWNlZCA9IGVsZW1lbnQuYXR0cihwcm9wKS5yZXBsYWNlKHJlZ2V4cHNbMF0sICgvKiBzdHIsIHAxLCBvZmZzZXQgKi8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHRyYXMgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheV9pbmRleCkgeyBleHRyYXMgPSBhcnJheV9pbmRleDsgY29uc29sZS5sb2coaW5kZXhlcywgZXh0cmFzKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkS2V5ID0gaW5kZXhlcy5zaGlmdCgpIHx8IG1hdGNoZWRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske21hdGNoZWRLZXl9XSR7ZXh0cmFzfWA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkID0gcmVwbGFjZWQucmVwbGFjZShyZWdleHBzWzFdLCAoLyogc3RyLCBwMSwgb2Zmc2V0ICovKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkS2V5ID0gaW5kZXhlcy5zaGlmdCgpIHx8IG1hdGNoZWRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYC4ke21hdGNoZWRLZXl9LmA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCByZXBsYWNlZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBjb2xsZWN0aW9ucyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpO1xuICAgICAgICBpZiAoIWNvbGxlY3Rpb25zLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBjb2xsZWN0aW9ucy5lYWNoKChpbmRleCwgY29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgY29sbGVjdGlvbiA9ICQoY29sbGVjdGlvbik7XG4gICAgICAgICAgICBpZiAoIX50aGlzLmxpc3RzLmluZGV4KGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRMaXN0KGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfdXBkYXRlQWN0aW9uc1N0YXRlQmFzZWRPbk1pbk1heChsaXN0KSB7XG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWluSXRlbXMgPSBsaXN0LmRhdGEoJ21pbicpO1xuICAgICAgICBsZXQgbWF4SXRlbXMgPSBsaXN0LmRhdGEoJ21heCcpO1xuXG4gICAgICAgIGxpc3QuZmluZCgnPiAuY29sbGVjdGlvbi1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImFkZFwiXScpLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICBsaXN0LmZpbmQoJz4gdWwgPiBsaSA+IC5pdGVtLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZGVsZXRlXCJdJykuYXR0cignZGlzYWJsZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBtaW5JdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgaXRlbXMubGVuZ3RoIDw9IG1pbkl0ZW1zKSB7XG4gICAgICAgICAgICBsaXN0LmZpbmQoJz4gdWwgPiBsaSA+IC5pdGVtLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZGVsZXRlXCJdJykuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbWF4SXRlbXMgIT09ICd1bmRlZmluZWQnICYmIGl0ZW1zLmxlbmd0aCA+PSBtYXhJdGVtcykge1xuICAgICAgICAgICAgbGlzdC5maW5kKCc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiYWRkXCJdJykuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBDb2xsZWN0aW9uc0ZpZWxkKCk7XG4iXSwibmFtZXMiOlsiJCIsIlNvcnRhYmxlIiwiQ29sbGVjdGlvbnNGaWVsZCIsImxpc3RzIiwiZWFjaCIsImluZGV4IiwibGlzdCIsImFkZExpc3QiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiYWRkIiwiZXZlbnQiLCJhZGRJdGVtIiwicmVtb3ZlSXRlbSIsImNvbGxhcHNlSXRlbSIsImV4cGFuZEl0ZW0iLCJzb3J0SXRlbXMiLCJjb2xsYXBzZUl0ZW1zIiwiZXhwYW5kSXRlbXMiLCJvYnNlcnZlS2V5IiwiZmluZCIsImNvbnRhaW5lciIsImRhdGEiLCJoYXNBdHRyaWJ1dGUiLCJnZXQiLCJmb3JjZUZhbGxiYWNrIiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwib25VcGRhdGUiLCJyZWluZGV4IiwiX3VwZGF0ZUFjdGlvbnNTdGF0ZUJhc2VkT25NaW5NYXgiLCJidXR0b24iLCJjdXJyZW50VGFyZ2V0IiwicG9zaXRpb24iLCJjbG9zZXN0IiwidGVtcGxhdGUiLCJpdGVtcyIsIm1heEl0ZW1zIiwibGVuZ3RoIiwidG9wQWN0aW9uIiwic29ydEFjdGlvbiIsInBhcmVudCIsInJlbW92ZUNsYXNzIiwidHJpZ2dlciIsIml0ZW0iLCJtaW5JdGVtcyIsInJlbW92ZSIsImFkZENsYXNzIiwiY2xpY2siLCJhdHRyIiwic29ydGJ5Iiwic29ydGJ5X2RpciIsInNvcnQiLCJhIiwiYiIsIkEiLCJCIiwidmFsIiwiXyIsImFwcGVuZCIsImlucHV0IiwidGFyZ2V0IiwidmFsdWUiLCJvYnNlcnZlZCIsIm9ic2VydmVkVmFsdWUiLCJoYXNDdXN0b21LZXkiLCJjdXJyZW50S2V5IiwiZm9yRWFjaCIsInByb3AiLCJlbGVtZW50IiwiaW5kZXhlcyIsImFycmF5X2luZGV4IiwicmVnZXhwcyIsIlJlZ0V4cCIsIm1hdGNoX2luZGV4IiwibWF0Y2giLCJwYXR0ZXJuIiwiZGF0YXNldCIsImdyYXZBcnJheU5hbWUiLCJwYXJlbnRzIiwibWFwIiwiaWR4IiwicHVzaCIsInJldmVyc2UiLCJtYXRjaGVkS2V5IiwicmVwbGFjZWQiLCJyZXBsYWNlIiwiZXh0cmFzIiwiY29uc29sZSIsImxvZyIsInNoaWZ0IiwiY29sbGVjdGlvbnMiLCJjb2xsZWN0aW9uIiwiSW5zdGFuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/collections.js\n");
/***/ }),
/***/ "./app/forms/fields/colorpicker.js":
/*!*****************************************!*\
!*** ./app/forms/fields/colorpicker.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ColorpickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/math/clamp */ \"./node_modules/mout/math/clamp.js\");\n/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mout_function_bind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mout/function/bind */ \"./node_modules/mout/function/bind.js\");\n/* harmony import */ var mout_function_bind__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mout_function_bind__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/colors */ \"./app/utils/colors.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar MOUSEDOWN = 'mousedown touchstart MSPointerDown pointerdown';\nvar MOUSEMOVE = 'mousemove touchmove MSPointerMove pointermove';\nvar MOUSEUP = 'mouseup touchend MSPointerUp pointerup';\nvar FOCUSIN = isFirefox ? 'focus' : 'focusin';\n\nvar ColorpickerField = /*#__PURE__*/function () {\n function ColorpickerField(selector) {\n var _this = this;\n\n _classCallCheck(this, ColorpickerField);\n\n this.selector = selector;\n this.field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.selector);\n this.options = Object.assign({}, this.field.data('grav-colorpicker'));\n this.built = false;\n this.attach();\n\n if (this.options.update) {\n this.field.on('change._grav_colorpicker', function (event, field, hex, opacity) {\n var backgroundColor = hex;\n var rgb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n\n if (opacity < 1) {\n backgroundColor = 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + opacity + ')';\n }\n\n var target = field.closest(_this.options.update);\n\n if (!target.length) {\n target = field.siblings(_this.options.update);\n }\n\n if (!target.length) {\n target = field.parent('.g-colorpicker').find(_this.options.update);\n }\n\n target.css({\n backgroundColor: backgroundColor\n });\n });\n }\n }\n\n _createClass(ColorpickerField, [{\n key: \"attach\",\n value: function attach() {\n var _this2 = this;\n\n body.on(FOCUSIN, this.selector, function (event) {\n return _this2.show(event, event.currentTarget);\n });\n body.on(MOUSEDOWN, this.selector + ' .g-colorpicker, ' + this.selector + ' .g-colorpicker i', this.bound('iconClick'));\n body.on('keydown', this.selector, function (event) {\n switch (event.keyCode) {\n case 9:\n // tab\n _this2.hide();\n\n break;\n\n case 13: // enter\n\n case 27:\n // esc\n _this2.hide();\n\n event.currentTarget.blur();\n break;\n }\n\n return true;\n }); // Update on keyup\n\n body.on('keyup', this.selector, function (event) {\n _this2.updateFromInput(true, event.currentTarget);\n\n return true;\n }); // Update on paste\n\n body.on('paste', this.selector, function (event) {\n setTimeout(function () {\n return _this2.updateFromInput(true, event.currentTarget);\n }, 1);\n });\n }\n }, {\n key: \"show\",\n value: function show(event, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n\n if (!this.built) {\n this.build();\n }\n\n this.element = target;\n this.reposition();\n this.wrapper.addClass('cp-visible');\n this.updateFromInput();\n this.wrapper.on(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));\n body.on(MOUSEMOVE, this.bound('bodyMove'));\n body.on(MOUSEDOWN, this.bound('bodyClick'));\n body.on(MOUSEUP, this.bound('targetReset'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.built) {\n return;\n }\n\n this.wrapper.removeClass('cp-visible');\n this.wrapper.undelegate(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));\n body.off(MOUSEMOVE, this.bound('bodyMove'));\n body.off(MOUSEDOWN, this.bound('bodyClick'));\n body.off(MOUSEUP, this.bound('targetReset'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));\n }\n }, {\n key: \"build\",\n value: function build() {\n var _this3 = this;\n\n this.wrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-wrapper cp-with-opacity cp-mode-hue\" />');\n this.slider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-slider cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n this.opacitySlider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-opacity-slider cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n this.grid = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-grid cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-grid-inner\" />')).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').appendTo(this.grid.find('.cp-picker'));\n var tabs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tabs\" />').appendTo(this.wrapper);\n this.tabs = {\n hue: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-hue active\" />').text('HUE').appendTo(tabs),\n brightness: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-brightness\" />').text('BRI').appendTo(tabs),\n saturation: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-saturation\" />').text('SAT').appendTo(tabs),\n wheel: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-wheel\" />').text('WHEEL').appendTo(tabs),\n transparent: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-transp\" />').text('TRANSPARENT').appendTo(tabs)\n };\n tabs.on(MOUSEDOWN, '> div', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.is(_this3.tabs.transparent)) {\n var sliderHeight = _this3.opacitySlider.height();\n\n _this3.opacity = 0;\n\n _this3.opacitySlider.find('.cp-picker').css({\n 'top': mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - sliderHeight * _this3.opacity, 0, sliderHeight)\n });\n\n _this3.move(_this3.opacitySlider, {\n manualOpacity: true\n });\n\n return;\n }\n\n var active = tabs.find('.active');\n var mode = active.attr('class').replace(/\\s|active|cp-tab-/g, '');\n var newMode = element.attr('class').replace(/\\s|active|cp-tab-/g, '');\n\n _this3.wrapper.removeClass('cp-mode-' + mode).addClass('cp-mode-' + newMode);\n\n active.removeClass('active');\n element.addClass('active');\n _this3.mode = newMode;\n\n _this3.updateFromInput();\n });\n this.wrapper.appendTo('.content-wrapper');\n this.built = true;\n this.mode = 'hue';\n }\n }, {\n key: \"reposition\",\n value: function reposition() {\n var ct = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper')[0];\n var offset = this.element[0].getBoundingClientRect();\n var ctOffset = ct.getBoundingClientRect();\n var delta = {\n x: 0,\n y: 0\n };\n\n if (this.options.offset) {\n delta.x = this.options.offset.x || 0;\n delta.y = this.options.offset.y || 0;\n }\n\n this.wrapper.css({\n top: offset.top + offset.height + ct.scrollTop - ctOffset.top + delta.y,\n left: offset.left + ct.scrollLeft - ctOffset.left + delta.x\n });\n }\n }, {\n key: \"iconClick\",\n value: function iconClick(event) {\n if (this.wrapper && this.wrapper.hasClass('cp-visible')) {\n return true;\n }\n\n event && event.preventDefault();\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).find('input');\n setTimeout(function () {\n return input.focus();\n }, 50);\n }\n }, {\n key: \"bodyMove\",\n value: function bodyMove(event) {\n event && event.preventDefault();\n\n if (this.target) {\n this.move(this.target, event);\n }\n }\n }, {\n key: \"bodyClick\",\n value: function bodyClick(event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n\n if (!target.closest('.cp-wrapper').length && !target.is(this.selector)) {\n this.hide();\n }\n }\n }, {\n key: \"bodyDown\",\n value: function bodyDown(event) {\n event && event.preventDefault();\n this.target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n this.move(this.target, event, true);\n }\n }, {\n key: \"targetReset\",\n value: function targetReset(event) {\n event && event.preventDefault();\n this.target = null;\n }\n }, {\n key: \"move\",\n value: function move(target, event) {\n var input = this.element;\n var picker = target.find('.cp-picker');\n var clientRect = target[0].getBoundingClientRect();\n var offsetX = clientRect.left + window.scrollX;\n var offsetY = clientRect.top + window.scrollY;\n var x = Math.round((event ? event.pageX : 0) - offsetX);\n var y = Math.round((event ? event.pageY : 0) - offsetY);\n var wx;\n var wy;\n var r;\n var phi; // Touch support\n\n var touchEvents = event.changedTouches || event.originalEvent && event.originalEvent.changedTouches;\n\n if (event && touchEvents) {\n x = (touchEvents ? touchEvents[0].pageX : 0) - offsetX;\n y = (touchEvents ? touchEvents[0].pageY : 0) - offsetY;\n }\n\n if (event && event.manualOpacity) {\n y = clientRect.height;\n } // Constrain picker to its container\n\n\n if (x < 0) x = 0;\n if (y < 0) y = 0;\n if (x > clientRect.width) x = clientRect.width;\n if (y > clientRect.height) y = clientRect.height; // Constrain color wheel values to the wheel\n\n if (target.parent('.cp-mode-wheel').length && picker.parent('.cp-grid').length) {\n wx = 75 - x;\n wy = 75 - y;\n r = Math.sqrt(wx * wx + wy * wy);\n phi = Math.atan2(wy, wx);\n if (phi < 0) phi += Math.PI * 2;\n\n if (r > 75) {\n x = 75 - 75 * Math.cos(phi);\n y = 75 - 75 * Math.sin(phi);\n }\n\n x = Math.round(x);\n y = Math.round(y);\n } // Move the picker\n\n\n if (target.hasClass('cp-grid')) {\n picker.css({\n top: y,\n left: x\n });\n this.updateFromPicker(input, target);\n } else {\n picker.css({\n top: y\n });\n this.updateFromPicker(input, target);\n }\n }\n }, {\n key: \"updateFromInput\",\n value: function updateFromInput(dontFireEvent, element) {\n element = element ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) : this.element;\n var value = element.val();\n var opacity = value.replace(/\\s/g, '').match(/^rgba?\\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(.+)\\)/);\n var hex;\n var hsb;\n value = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.rgbstr2hex)(value) || value;\n opacity = opacity ? mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(opacity[1], 0, 1) : 1;\n\n if (!(hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.parseHex)(value))) {\n hex = '#ffffff';\n }\n\n hsb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2hsb)(hex);\n\n if (this.built) {\n // opacity\n this.opacity = opacity;\n var sliderHeight = this.opacitySlider.height();\n this.opacitySlider.find('.cp-picker').css({\n 'top': mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - sliderHeight * this.opacity, 0, sliderHeight)\n }); // bg color\n\n var gridHeight = this.grid.height();\n var gridWidth = this.grid.width();\n var r;\n var phi;\n var x;\n var y;\n sliderHeight = this.slider.height();\n\n switch (this.mode) {\n case 'wheel':\n // Set grid position\n r = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.ceil(hsb.s * 0.75), 0, gridHeight / 2);\n phi = hsb.h * Math.PI / 180;\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(75 - Math.cos(phi) * r, 0, gridWidth);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(75 - Math.sin(phi) * r, 0, gridHeight);\n this.grid.css({\n backgroundColor: 'transparent'\n }).find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = 150 - hsb.b / (100 / gridHeight);\n if (hex === '') y = 0;\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update panel color\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: hsb.s,\n b: 100\n })\n });\n break;\n\n case 'saturation':\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(5 * hsb.h / 12, 0, 150);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.s * (sliderHeight / 100), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update UI\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: 100,\n b: hsb.b\n })\n });\n this.grid.find('.cp-grid-inner').css({\n opacity: hsb.s / 100\n });\n break;\n\n case 'brightness':\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(5 * hsb.h / 12, 0, 150);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.s / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.b * (sliderHeight / 100), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update UI\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: hsb.s,\n b: 100\n })\n });\n this.grid.find('.cp-grid-inner').css({\n opacity: 1 - hsb.b / 100\n });\n break;\n\n case 'hue':\n default:\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.ceil(hsb.s / (100 / gridWidth)), 0, gridWidth);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.h / (360 / sliderHeight), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update panel color\n\n this.grid.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: 100,\n b: 100\n })\n });\n break;\n }\n }\n\n if (!dontFireEvent) {\n element.val(this.getValue(hex));\n }\n\n (this.element || element).trigger('change._grav_colorpicker', [element, hex, opacity]);\n }\n }, {\n key: \"updateFromPicker\",\n value: function updateFromPicker(input, target) {\n var getCoords = function getCoords(picker, container) {\n var left, top;\n if (!picker.length || !container) return null;\n left = picker[0].getBoundingClientRect().left;\n top = picker[0].getBoundingClientRect().top;\n return {\n x: left - container[0].getBoundingClientRect().left + picker[0].offsetWidth / 2,\n y: top - container[0].getBoundingClientRect().top + picker[0].offsetHeight / 2\n };\n };\n\n var hex;\n var hue;\n var saturation;\n var brightness;\n var x;\n var y;\n var r;\n var phi; // Panel objects\n\n var grid = this.wrapper.find('.cp-grid');\n var slider = this.wrapper.find('.cp-slider');\n var opacitySlider = this.wrapper.find('.cp-opacity-slider'); // Picker objects\n\n var gridPicker = grid.find('.cp-picker');\n var sliderPicker = slider.find('.cp-picker');\n var opacityPicker = opacitySlider.find('.cp-picker'); // Picker positions\n\n var gridPos = getCoords(gridPicker, grid);\n var sliderPos = getCoords(sliderPicker, slider);\n var opacityPos = getCoords(opacityPicker, opacitySlider); // Sizes\n\n var gridWidth = grid[0].getBoundingClientRect().width;\n var gridHeight = grid[0].getBoundingClientRect().height;\n var sliderHeight = slider[0].getBoundingClientRect().height;\n var opacitySliderHeight = opacitySlider[0].getBoundingClientRect().height;\n var value = this.element.val();\n value = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.rgbstr2hex)(value) || value;\n\n if (!(hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.parseHex)(value))) {\n hex = '#ffffff';\n } // Handle colors\n\n\n if (target.hasClass('cp-grid') || target.hasClass('cp-slider')) {\n // Determine HSB values\n switch (this.mode) {\n case 'wheel':\n // Calculate hue, saturation, and brightness\n x = gridWidth / 2 - gridPos.x;\n y = gridHeight / 2 - gridPos.y;\n r = Math.sqrt(x * x + y * y);\n phi = Math.atan2(y, x);\n if (phi < 0) phi += Math.PI * 2;\n\n if (r > 75) {\n r = 75;\n gridPos.x = 69 - 75 * Math.cos(phi);\n gridPos.y = 69 - 75 * Math.sin(phi);\n }\n\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(r / 0.75, 0, 100);\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(phi * 180 / Math.PI, 0, 360);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: 100\n })\n });\n break;\n\n case 'saturation':\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: 100,\n b: brightness\n })\n });\n grid.find('.cp-grid-inner').css({\n opacity: saturation / 100\n });\n break;\n\n case 'brightness':\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: 100\n })\n });\n grid.find('.cp-grid-inner').css({\n opacity: 1 - brightness / 100\n });\n break;\n\n default:\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(360 - parseInt(sliderPos.y * (360 / sliderHeight), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.floor(gridPos.x * (100 / gridWidth)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n grid.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: 100,\n b: 100\n })\n });\n break;\n }\n } // Handle opacity\n\n\n if (target.hasClass('cp-opacity-slider')) {\n this.opacity = parseFloat(1 - opacityPos.y / opacitySliderHeight).toFixed(2);\n } // Adjust case\n\n\n input.val(this.getValue(hex)); // Handle change event\n\n this.element.trigger('change._grav_colorpicker', [this.element, hex, this.opacity]);\n }\n }, {\n key: \"getValue\",\n value: function getValue(hex) {\n if (this.opacity === 1) {\n return hex;\n }\n\n var rgb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + this.opacity + ')';\n }\n }, {\n key: \"bound\",\n value: function bound(name) {\n var bound = this._bound || (this._bound = {});\n return bound[name] || (bound[name] = mout_function_bind__WEBPACK_IMPORTED_MODULE_2___default()(this[name], this));\n }\n }]);\n\n return ColorpickerField;\n}();\n\n\nvar Instance = new ColorpickerField('[data-grav-colorpicker]');//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWlCLENBQXJCLEVBQXdCO0FBQUUsZUFBT0QsR0FBUDtBQUFhOztBQUN2QyxVQUFJRyxHQUFHLEdBQUczQixzREFBTyxDQUFDd0IsR0FBRCxDQUFqQjtBQUVBLGFBQU8sVUFBVUcsR0FBRyxDQUFDQyxDQUFkLEdBQWtCLElBQWxCLEdBQXlCRCxHQUFHLENBQUNFLENBQTdCLEdBQWlDLElBQWpDLEdBQXdDRixHQUFHLENBQUNHLENBQTVDLEdBQWdELElBQWhELEdBQXVELEtBQUtMLE9BQTVELEdBQXNFLEdBQTdFO0FBQ0g7OztXQUVELGVBQU1xSCxJQUFOLEVBQVk7QUFDUixVQUFJdEcsS0FBSyxHQUFHLEtBQUt1RyxNQUFMLEtBQWdCLEtBQUtBLE1BQUwsR0FBYyxFQUE5QixDQUFaO0FBQ0EsYUFBT3ZHLEtBQUssQ0FBQ3NHLElBQUQsQ0FBTCxLQUFnQnRHLEtBQUssQ0FBQ3NHLElBQUQsQ0FBTCxHQUFjbEoseURBQUksQ0FBQyxLQUFLa0osSUFBTCxDQUFELEVBQWEsSUFBYixDQUFsQyxDQUFQO0FBQ0g7Ozs7Ozs7QUFHRSxJQUFJRSxRQUFRLEdBQUcsSUFBSXBJLGdCQUFKLENBQXFCLHlCQUFyQixDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvY29sb3JwaWNrZXIuanM/YmE5OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGNsYW1wIGZyb20gJ21vdXQvbWF0aC9jbGFtcCc7XG5pbXBvcnQgYmluZCBmcm9tICdtb3V0L2Z1bmN0aW9uL2JpbmQnO1xuaW1wb3J0IHsgcmdic3RyMmhleCwgaHNiMmhleCwgaGV4MmhzYiwgaGV4MnJnYiwgcGFyc2VIZXggfSBmcm9tICcuLi8uLi91dGlscy9jb2xvcnMnO1xuXG5jb25zdCBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gLTE7XG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuXG5jb25zdCBNT1VTRURPV04gPSAnbW91c2Vkb3duIHRvdWNoc3RhcnQgTVNQb2ludGVyRG93biBwb2ludGVyZG93bic7XG5jb25zdCBNT1VTRU1PVkUgPSAnbW91c2Vtb3ZlIHRvdWNobW92ZSBNU1BvaW50ZXJNb3ZlIHBvaW50ZXJtb3ZlJztcbmNvbnN0IE1PVVNFVVAgPSAnbW91c2V1cCB0b3VjaGVuZCBNU1BvaW50ZXJVcCBwb2ludGVydXAnO1xuY29uc3QgRk9DVVNJTiA9IGlzRmlyZWZveCA/ICdmb2N1cycgOiAnZm9jdXNpbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9ycGlja2VyRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgdGhpcy5maWVsZCA9ICQodGhpcy5zZWxlY3Rvcik7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmllbGQuZGF0YSgnZ3Jhdi1jb2xvcnBpY2tlcicpKTtcbiAgICAgICAgdGhpcy5idWlsdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmF0dGFjaCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLm9uKCdjaGFuZ2UuX2dyYXZfY29sb3JwaWNrZXInLCAoZXZlbnQsIGZpZWxkLCBoZXgsIG9wYWNpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYmFja2dyb3VuZENvbG9yID0gaGV4O1xuICAgICAgICAgICAgICAgIGxldCByZ2IgPSBoZXgycmdiKGhleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob3BhY2l0eSA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoJyArIHJnYi5yICsgJywgJyArIHJnYi5nICsgJywgJyArIHJnYi5iICsgJywgJyArIG9wYWNpdHkgKyAnKSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHRhcmdldCA9IGZpZWxkLmNsb3Nlc3QodGhpcy5vcHRpb25zLnVwZGF0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IGZpZWxkLnNpYmxpbmdzKHRoaXMub3B0aW9ucy51cGRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gZmllbGQucGFyZW50KCcuZy1jb2xvcnBpY2tlcicpLmZpbmQodGhpcy5vcHRpb25zLnVwZGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNzcyh7IGJhY2tncm91bmRDb2xvciB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXR0YWNoKCkge1xuICAgICAgICBib2R5Lm9uKEZPQ1VTSU4sIHRoaXMuc2VsZWN0b3IsIChldmVudCkgPT4gdGhpcy5zaG93KGV2ZW50LCBldmVudC5jdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIGJvZHkub24oTU9VU0VET1dOLCB0aGlzLnNlbGVjdG9yICsgJyAuZy1jb2xvcnBpY2tlciwgJyArIHRoaXMuc2VsZWN0b3IgKyAnIC5nLWNvbG9ycGlja2VyIGknLCB0aGlzLmJvdW5kKCdpY29uQ2xpY2snKSk7XG4gICAgICAgIGJvZHkub24oJ2tleWRvd24nLCB0aGlzLnNlbGVjdG9yLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgOTogLy8gdGFiXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDEzOiAvLyBlbnRlclxuICAgICAgICAgICAgICAgIGNhc2UgMjc6IC8vIGVzY1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBvbiBrZXl1cFxuICAgICAgICBib2R5Lm9uKCdrZXl1cCcsIHRoaXMuc2VsZWN0b3IsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGcm9tSW5wdXQodHJ1ZSwgZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIG9uIHBhc3RlXG4gICAgICAgIGJvZHkub24oJ3Bhc3RlJywgdGhpcy5zZWxlY3RvciwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlRnJvbUlucHV0KHRydWUsIGV2ZW50LmN1cnJlbnRUYXJnZXQpLCAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvdyhldmVudCwgdGFyZ2V0KSB7XG4gICAgICAgIHRhcmdldCA9ICQodGFyZ2V0KTtcblxuICAgICAgICBpZiAoIXRoaXMuYnVpbHQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IHRhcmdldDtcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMud3JhcHBlci5hZGRDbGFzcygnY3AtdmlzaWJsZScpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21JbnB1dCgpO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5vbihNT1VTRURPV04sICcuY3AtZ3JpZCwgLmNwLXNsaWRlciwgLmNwLW9wYWNpdHktc2xpZGVyJywgdGhpcy5ib3VuZCgnYm9keURvd24nKSk7XG4gICAgICAgIGJvZHkub24oTU9VU0VNT1ZFLCB0aGlzLmJvdW5kKCdib2R5TW92ZScpKTtcbiAgICAgICAgYm9keS5vbihNT1VTRURPV04sIHRoaXMuYm91bmQoJ2JvZHlDbGljaycpKTtcbiAgICAgICAgYm9keS5vbihNT1VTRVVQLCB0aGlzLmJvdW5kKCd0YXJnZXRSZXNldCcpKTtcbiAgICAgICAgJCgnI2FkbWluLW1haW4gPiAuY29udGVudC13cmFwcGVyJykub24oJ3Njcm9sbCcsIHRoaXMuYm91bmQoJ3JlcG9zaXRpb24nKSk7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmJ1aWx0KSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLndyYXBwZXIucmVtb3ZlQ2xhc3MoJ2NwLXZpc2libGUnKTtcblxuICAgICAgICB0aGlzLndyYXBwZXIudW5kZWxlZ2F0ZShNT1VTRURPV04sICcuY3AtZ3JpZCwgLmNwLXNsaWRlciwgLmNwLW9wYWNpdHktc2xpZGVyJywgdGhpcy5ib3VuZCgnYm9keURvd24nKSk7XG4gICAgICAgIGJvZHkub2ZmKE1PVVNFTU9WRSwgdGhpcy5ib3VuZCgnYm9keU1vdmUnKSk7XG4gICAgICAgIGJvZHkub2ZmKE1PVVNFRE9XTiwgdGhpcy5ib3VuZCgnYm9keUNsaWNrJykpO1xuICAgICAgICBib2R5Lm9mZihNT1VTRVVQLCB0aGlzLmJvdW5kKCd0YXJnZXRSZXNldCcpKTtcbiAgICAgICAgJCgnI2FkbWluLW1haW4gPiAuY29udGVudC13cmFwcGVyJykub24oJ3Njcm9sbCcsIHRoaXMuYm91bmQoJ3JlcG9zaXRpb24nKSk7XG4gICAgfVxuXG4gICAgYnVpbGQoKSB7XG4gICAgICAgIHRoaXMud3JhcHBlciA9ICQoJzxkaXYgY2xhc3M9XCJjcC13cmFwcGVyIGNwLXdpdGgtb3BhY2l0eSBjcC1tb2RlLWh1ZVwiIC8+Jyk7XG4gICAgICAgIHRoaXMuc2xpZGVyID0gJCgnPGRpdiBjbGFzcz1cImNwLXNsaWRlciBjcC1zcHJpdGVcIiAvPicpLmFwcGVuZFRvKHRoaXMud3JhcHBlcikuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1waWNrZXJcIiAvPicpKTtcbiAgICAgICAgdGhpcy5vcGFjaXR5U2xpZGVyID0gJCgnPGRpdiBjbGFzcz1cImNwLW9wYWNpdHktc2xpZGVyIGNwLXNwcml0ZVwiIC8+JykuYXBwZW5kVG8odGhpcy53cmFwcGVyKS5hcHBlbmQoJCgnPGRpdiBjbGFzcz1cImNwLXBpY2tlclwiIC8+JykpO1xuICAgICAgICB0aGlzLmdyaWQgPSAkKCc8ZGl2IGNsYXNzPVwiY3AtZ3JpZCBjcC1zcHJpdGVcIiAvPicpLmFwcGVuZFRvKHRoaXMud3JhcHBlcikuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1ncmlkLWlubmVyXCIgLz4nKSkuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1waWNrZXJcIiAvPicpKTtcblxuICAgICAgICAkKCc8ZGl2IC8+JykuYXBwZW5kVG8odGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKSk7XG5cbiAgICAgICAgbGV0IHRhYnMgPSAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFic1wiIC8+JykuYXBwZW5kVG8odGhpcy53cmFwcGVyKTtcbiAgICAgICAgdGhpcy50YWJzID0ge1xuICAgICAgICAgICAgaHVlOiAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFiLWh1ZSBhY3RpdmVcIiAvPicpLnRleHQoJ0hVRScpLmFwcGVuZFRvKHRhYnMpLFxuICAgICAgICAgICAgYnJpZ2h0bmVzczogJCgnPGRpdiBjbGFzcz1cImNwLXRhYi1icmlnaHRuZXNzXCIgLz4nKS50ZXh0KCdCUkknKS5hcHBlbmRUbyh0YWJzKSxcbiAgICAgICAgICAgIHNhdHVyYXRpb246ICQoJzxkaXYgY2xhc3M9XCJjcC10YWItc2F0dXJhdGlvblwiIC8+JykudGV4dCgnU0FUJykuYXBwZW5kVG8odGFicyksXG4gICAgICAgICAgICB3aGVlbDogJCgnPGRpdiBjbGFzcz1cImNwLXRhYi13aGVlbFwiIC8+JykudGV4dCgnV0hFRUwnKS5hcHBlbmRUbyh0YWJzKSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50OiAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFiLXRyYW5zcFwiIC8+JykudGV4dCgnVFJBTlNQQVJFTlQnKS5hcHBlbmRUbyh0YWJzKVxuICAgICAgICB9O1xuXG4gICAgICAgIHRhYnMub24oTU9VU0VET1dOLCAnPiBkaXYnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKHRoaXMudGFicy50cmFuc3BhcmVudCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2xpZGVySGVpZ2h0ID0gdGhpcy5vcGFjaXR5U2xpZGVyLmhlaWdodCgpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLm9wYWNpdHlTbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpLmNzcyh7ICd0b3AnOiBjbGFtcChzbGlkZXJIZWlnaHQgLSAoc2xpZGVySGVpZ2h0ICogdGhpcy5vcGFjaXR5KSwgMCwgc2xpZGVySGVpZ2h0KSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmUodGhpcy5vcGFjaXR5U2xpZGVyLCB7IG1hbnVhbE9wYWNpdHk6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgYWN0aXZlID0gdGFicy5maW5kKCcuYWN0aXZlJyk7XG4gICAgICAgICAgICBsZXQgbW9kZSA9IGFjdGl2ZS5hdHRyKCdjbGFzcycpLnJlcGxhY2UoL1xcc3xhY3RpdmV8Y3AtdGFiLS9nLCAnJyk7XG4gICAgICAgICAgICBsZXQgbmV3TW9kZSA9IGVsZW1lbnQuYXR0cignY2xhc3MnKS5yZXBsYWNlKC9cXHN8YWN0aXZlfGNwLXRhYi0vZywgJycpO1xuXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIucmVtb3ZlQ2xhc3MoJ2NwLW1vZGUtJyArIG1vZGUpLmFkZENsYXNzKCdjcC1tb2RlLScgKyBuZXdNb2RlKTtcbiAgICAgICAgICAgIGFjdGl2ZS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICBlbGVtZW50LmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgICAgICAgICAgdGhpcy5tb2RlID0gbmV3TW9kZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5hcHBlbmRUbygnLmNvbnRlbnQtd3JhcHBlcicpO1xuXG4gICAgICAgIHRoaXMuYnVpbHQgPSB0cnVlO1xuICAgICAgICB0aGlzLm1vZGUgPSAnaHVlJztcbiAgICB9XG5cbiAgICByZXBvc2l0aW9uKCkge1xuICAgICAgICBsZXQgY3QgPSAkKCcuY29udGVudC13cmFwcGVyJylbMF07XG4gICAgICAgIGxldCBvZmZzZXQgPSB0aGlzLmVsZW1lbnRbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCBjdE9mZnNldCA9IGN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBsZXQgZGVsdGEgPSB7IHg6IDAsIHk6IDAgfTtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9mZnNldCkge1xuICAgICAgICAgICAgZGVsdGEueCA9IHRoaXMub3B0aW9ucy5vZmZzZXQueCB8fCAwO1xuICAgICAgICAgICAgZGVsdGEueSA9IHRoaXMub3B0aW9ucy5vZmZzZXQueSB8fCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53cmFwcGVyLmNzcyh7XG4gICAgICAgICAgICB0b3A6IG9mZnNldC50b3AgKyBvZmZzZXQuaGVpZ2h0ICsgY3Quc2Nyb2xsVG9wIC0gY3RPZmZzZXQudG9wICsgZGVsdGEueSxcbiAgICAgICAgICAgIGxlZnQ6IG9mZnNldC5sZWZ0ICsgY3Quc2Nyb2xsTGVmdCAtIGN0T2Zmc2V0LmxlZnQgKyBkZWx0YS54XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGljb25DbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy53cmFwcGVyICYmIHRoaXMud3JhcHBlci5oYXNDbGFzcygnY3AtdmlzaWJsZScpKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gaW5wdXQuZm9jdXMoKSwgNTApO1xuICAgIH1cblxuICAgIGJvZHlNb3ZlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0KSB7IHRoaXMubW92ZSh0aGlzLnRhcmdldCwgZXZlbnQpOyB9XG4gICAgfVxuXG4gICAgYm9keUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG5cbiAgICAgICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmNwLXdyYXBwZXInKS5sZW5ndGggJiYgIXRhcmdldC5pcyh0aGlzLnNlbGVjdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5RG93bihldmVudCkge1xuICAgICAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMudGFyZ2V0LCBldmVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdGFyZ2V0UmVzZXQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XG4gICAgfVxuXG4gICAgbW92ZSh0YXJnZXQsIGV2ZW50KSB7XG4gICAgICAgIGxldCBpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgbGV0IHBpY2tlciA9IHRhcmdldC5maW5kKCcuY3AtcGlja2VyJyk7XG4gICAgICAgIGxldCBjbGllbnRSZWN0ID0gdGFyZ2V0WzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBsZXQgb2Zmc2V0WCA9IGNsaWVudFJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYO1xuICAgICAgICBsZXQgb2Zmc2V0WSA9IGNsaWVudFJlY3QudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAgIGxldCB4ID0gTWF0aC5yb3VuZCgoZXZlbnQgPyBldmVudC5wYWdlWCA6IDApIC0gb2Zmc2V0WCk7XG4gICAgICAgIGxldCB5ID0gTWF0aC5yb3VuZCgoZXZlbnQgPyBldmVudC5wYWdlWSA6IDApIC0gb2Zmc2V0WSk7XG4gICAgICAgIGxldCB3eDtcbiAgICAgICAgbGV0IHd5O1xuICAgICAgICBsZXQgcjtcbiAgICAgICAgbGV0IHBoaTtcblxuICAgICAgICAvLyBUb3VjaCBzdXBwb3J0XG4gICAgICAgIGxldCB0b3VjaEV2ZW50cyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzIHx8IChldmVudC5vcmlnaW5hbEV2ZW50ICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXMpO1xuICAgICAgICBpZiAoZXZlbnQgJiYgdG91Y2hFdmVudHMpIHtcbiAgICAgICAgICAgIHggPSAodG91Y2hFdmVudHMgPyB0b3VjaEV2ZW50c1swXS5wYWdlWCA6IDApIC0gb2Zmc2V0WDtcbiAgICAgICAgICAgIHkgPSAodG91Y2hFdmVudHMgPyB0b3VjaEV2ZW50c1swXS5wYWdlWSA6IDApIC0gb2Zmc2V0WTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5tYW51YWxPcGFjaXR5KSB7XG4gICAgICAgICAgICB5ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb25zdHJhaW4gcGlja2VyIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgaWYgKHggPCAwKSB4ID0gMDtcbiAgICAgICAgaWYgKHkgPCAwKSB5ID0gMDtcbiAgICAgICAgaWYgKHggPiBjbGllbnRSZWN0LndpZHRoKSB4ID0gY2xpZW50UmVjdC53aWR0aDtcbiAgICAgICAgaWYgKHkgPiBjbGllbnRSZWN0LmhlaWdodCkgeSA9IGNsaWVudFJlY3QuaGVpZ2h0O1xuXG4gICAgICAgIC8vIENvbnN0cmFpbiBjb2xvciB3aGVlbCB2YWx1ZXMgdG8gdGhlIHdoZWVsXG4gICAgICAgIGlmICh0YXJnZXQucGFyZW50KCcuY3AtbW9kZS13aGVlbCcpLmxlbmd0aCAmJiBwaWNrZXIucGFyZW50KCcuY3AtZ3JpZCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgd3ggPSA3NSAtIHg7XG4gICAgICAgICAgICB3eSA9IDc1IC0geTtcbiAgICAgICAgICAgIHIgPSBNYXRoLnNxcnQod3ggKiB3eCArIHd5ICogd3kpO1xuICAgICAgICAgICAgcGhpID0gTWF0aC5hdGFuMih3eSwgd3gpO1xuXG4gICAgICAgICAgICBpZiAocGhpIDwgMCkgcGhpICs9IE1hdGguUEkgKiAyO1xuICAgICAgICAgICAgaWYgKHIgPiA3NSkge1xuICAgICAgICAgICAgICAgIHggPSA3NSAtICg3NSAqIE1hdGguY29zKHBoaSkpO1xuICAgICAgICAgICAgICAgIHkgPSA3NSAtICg3NSAqIE1hdGguc2luKHBoaSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB4ID0gTWF0aC5yb3VuZCh4KTtcbiAgICAgICAgICAgIHkgPSBNYXRoLnJvdW5kKHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92ZSB0aGUgcGlja2VyXG4gICAgICAgIGlmICh0YXJnZXQuaGFzQ2xhc3MoJ2NwLWdyaWQnKSkge1xuICAgICAgICAgICAgcGlja2VyLmNzcyh7XG4gICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZyb21QaWNrZXIoaW5wdXQsIHRhcmdldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaWNrZXIuY3NzKHtcbiAgICAgICAgICAgICAgICB0b3A6IHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGcm9tUGlja2VyKGlucHV0LCB0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRnJvbUlucHV0KGRvbnRGaXJlRXZlbnQsIGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQgPyAkKGVsZW1lbnQpIDogdGhpcy5lbGVtZW50O1xuICAgICAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbCgpO1xuICAgICAgICBsZXQgb3BhY2l0eSA9IHZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykubWF0Y2goL15yZ2JhP1xcKFswLTldezEsM30sWzAtOV17MSwzfSxbMC05XXsxLDN9LCguKylcXCkvKTtcbiAgICAgICAgbGV0IGhleDtcbiAgICAgICAgbGV0IGhzYjtcblxuICAgICAgICB2YWx1ZSA9IHJnYnN0cjJoZXgodmFsdWUpIHx8IHZhbHVlO1xuICAgICAgICBvcGFjaXR5ID0gb3BhY2l0eSA/IGNsYW1wKG9wYWNpdHlbMV0sIDAsIDEpIDogMTtcblxuICAgICAgICBpZiAoIShoZXggPSBwYXJzZUhleCh2YWx1ZSkpKSB7IGhleCA9ICcjZmZmZmZmJzsgfVxuICAgICAgICBoc2IgPSBoZXgyaHNiKGhleCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYnVpbHQpIHtcbiAgICAgICAgICAgIC8vIG9wYWNpdHlcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IG9wYWNpdHk7XG4gICAgICAgICAgICB2YXIgc2xpZGVySGVpZ2h0ID0gdGhpcy5vcGFjaXR5U2xpZGVyLmhlaWdodCgpO1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5U2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyAndG9wJzogY2xhbXAoc2xpZGVySGVpZ2h0IC0gKHNsaWRlckhlaWdodCAqIHRoaXMub3BhY2l0eSksIDAsIHNsaWRlckhlaWdodCkgfSk7XG5cbiAgICAgICAgICAgIC8vIGJnIGNvbG9yXG4gICAgICAgICAgICBsZXQgZ3JpZEhlaWdodCA9IHRoaXMuZ3JpZC5oZWlnaHQoKTtcbiAgICAgICAgICAgIGxldCBncmlkV2lkdGggPSB0aGlzLmdyaWQud2lkdGgoKTtcbiAgICAgICAgICAgIGxldCByO1xuICAgICAgICAgICAgbGV0IHBoaTtcbiAgICAgICAgICAgIGxldCB4O1xuICAgICAgICAgICAgbGV0IHk7XG5cbiAgICAgICAgICAgIHNsaWRlckhlaWdodCA9IHRoaXMuc2xpZGVyLmhlaWdodCgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3doZWVsJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGdyaWQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgciA9IGNsYW1wKE1hdGguY2VpbChoc2IucyAqIDAuNzUpLCAwLCBncmlkSGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgICAgICAgIHBoaSA9IGhzYi5oICogTWF0aC5QSSAvIDE4MDtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGNsYW1wKDc1IC0gTWF0aC5jb3MocGhpKSAqIHIsIDAsIGdyaWRXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcCg3NSAtIE1hdGguc2luKHBoaSkgKiByLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmNzcyh7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyB9KS5maW5kKCcuY3AtcGlja2VyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNsaWRlciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB5ID0gMTUwIC0gKGhzYi5iIC8gKDEwMCAvIGdyaWRIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhleCA9PT0gJycpIHkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5maW5kKCcuY3AtcGlja2VyJykuY3NzKHsgdG9wOiB5IH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwYW5lbCBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoOiBoc2IuaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBoc2IucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3NhdHVyYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZ3JpZCBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB4ID0gY2xhbXAoKDUgKiBoc2IuaCkgLyAxMiwgMCwgMTUwKTtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGNsYW1wKGdyaWRIZWlnaHQgLSBNYXRoLmNlaWwoaHNiLmIgLyAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogeFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2xpZGVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChzbGlkZXJIZWlnaHQgLSAoaHNiLnMgKiAoc2xpZGVySGVpZ2h0IC8gMTAwKSksIDAsIHNsaWRlckhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyB0b3A6IHkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGhzYi5oLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiBoc2IuYlxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IGhzYi5zIC8gMTAwIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2JyaWdodG5lc3MnOlxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZ3JpZCBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB4ID0gY2xhbXAoKDUgKiBoc2IuaCkgLyAxMiwgMCwgMTUwKTtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGNsYW1wKGdyaWRIZWlnaHQgLSBNYXRoLmNlaWwoaHNiLnMgLyAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogeFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2xpZGVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChzbGlkZXJIZWlnaHQgLSAoaHNiLmIgKiAoc2xpZGVySGVpZ2h0IC8gMTAwKSksIDAsIHNsaWRlckhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyB0b3A6IHkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGhzYi5oLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IGhzYi5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IDEgLSAoaHNiLmIgLyAxMDApIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdodWUnOlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBncmlkIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHggPSBjbGFtcChNYXRoLmNlaWwoaHNiLnMgLyAoMTAwIC8gZ3JpZFdpZHRoKSksIDAsIGdyaWRXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChncmlkSGVpZ2h0IC0gTWF0aC5jZWlsKGhzYi5iIC8gKDEwMCAvIGdyaWRIZWlnaHQpKSwgMCwgZ3JpZEhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtcGlja2VyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNsaWRlciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB5ID0gY2xhbXAoc2xpZGVySGVpZ2h0IC0gKGhzYi5oIC8gKDM2MCAvIHNsaWRlckhlaWdodCkpLCAwLCBzbGlkZXJIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5maW5kKCcuY3AtcGlja2VyJykuY3NzKHsgdG9wOiB5IH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwYW5lbCBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHNiLmgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkb250RmlyZUV2ZW50KSB7IGVsZW1lbnQudmFsKHRoaXMuZ2V0VmFsdWUoaGV4KSk7IH1cblxuICAgICAgICAodGhpcy5lbGVtZW50IHx8IGVsZW1lbnQpLnRyaWdnZXIoJ2NoYW5nZS5fZ3Jhdl9jb2xvcnBpY2tlcicsIFtlbGVtZW50LCBoZXgsIG9wYWNpdHldKTtcblxuICAgIH1cblxuICAgIHVwZGF0ZUZyb21QaWNrZXIoaW5wdXQsIHRhcmdldCkge1xuICAgICAgICB2YXIgZ2V0Q29vcmRzID0gZnVuY3Rpb24ocGlja2VyLCBjb250YWluZXIpIHtcblxuICAgICAgICAgICAgdmFyIGxlZnQsIHRvcDtcbiAgICAgICAgICAgIGlmICghcGlja2VyLmxlbmd0aCB8fCAhY29udGFpbmVyKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGxlZnQgPSBwaWNrZXJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcbiAgICAgICAgICAgIHRvcCA9IHBpY2tlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogbGVmdCAtIGNvbnRhaW5lclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgKHBpY2tlclswXS5vZmZzZXRXaWR0aCAvIDIpLFxuICAgICAgICAgICAgICAgIHk6IHRvcCAtIGNvbnRhaW5lclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyAocGlja2VyWzBdLm9mZnNldEhlaWdodCAvIDIpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGhleDtcbiAgICAgICAgbGV0IGh1ZTtcbiAgICAgICAgbGV0IHNhdHVyYXRpb247XG4gICAgICAgIGxldCBicmlnaHRuZXNzO1xuICAgICAgICBsZXQgeDtcbiAgICAgICAgbGV0IHk7XG4gICAgICAgIGxldCByO1xuICAgICAgICBsZXQgcGhpO1xuXG4gICAgICAgIC8vIFBhbmVsIG9iamVjdHNcbiAgICAgICAgbGV0IGdyaWQgPSB0aGlzLndyYXBwZXIuZmluZCgnLmNwLWdyaWQnKTtcbiAgICAgICAgbGV0IHNsaWRlciA9IHRoaXMud3JhcHBlci5maW5kKCcuY3Atc2xpZGVyJyk7XG4gICAgICAgIGxldCBvcGFjaXR5U2xpZGVyID0gdGhpcy53cmFwcGVyLmZpbmQoJy5jcC1vcGFjaXR5LXNsaWRlcicpO1xuXG4gICAgICAgIC8vIFBpY2tlciBvYmplY3RzXG4gICAgICAgIGxldCBncmlkUGlja2VyID0gZ3JpZC5maW5kKCcuY3AtcGlja2VyJyk7XG4gICAgICAgIGxldCBzbGlkZXJQaWNrZXIgPSBzbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpO1xuICAgICAgICBsZXQgb3BhY2l0eVBpY2tlciA9IG9wYWNpdHlTbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpO1xuXG4gICAgICAgIC8vIFBpY2tlciBwb3NpdGlvbnNcbiAgICAgICAgbGV0IGdyaWRQb3MgPSBnZXRDb29yZHMoZ3JpZFBpY2tlciwgZ3JpZCk7XG4gICAgICAgIGxldCBzbGlkZXJQb3MgPSBnZXRDb29yZHMoc2xpZGVyUGlja2VyLCBzbGlkZXIpO1xuICAgICAgICBsZXQgb3BhY2l0eVBvcyA9IGdldENvb3JkcyhvcGFjaXR5UGlja2VyLCBvcGFjaXR5U2xpZGVyKTtcblxuICAgICAgICAvLyBTaXplc1xuICAgICAgICBsZXQgZ3JpZFdpZHRoID0gZ3JpZFswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgbGV0IGdyaWRIZWlnaHQgPSBncmlkWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgbGV0IHNsaWRlckhlaWdodCA9IHNsaWRlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGxldCBvcGFjaXR5U2xpZGVySGVpZ2h0ID0gb3BhY2l0eVNsaWRlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICB2YWx1ZSA9IHJnYnN0cjJoZXgodmFsdWUpIHx8IHZhbHVlO1xuICAgICAgICBpZiAoIShoZXggPSBwYXJzZUhleCh2YWx1ZSkpKSB7IGhleCA9ICcjZmZmZmZmJzsgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBjb2xvcnNcbiAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnY3AtZ3JpZCcpIHx8IHRhcmdldC5oYXNDbGFzcygnY3Atc2xpZGVyJykpIHtcblxuICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIEhTQiB2YWx1ZXNcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2hlZWwnOlxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgaHVlLCBzYXR1cmF0aW9uLCBhbmQgYnJpZ2h0bmVzc1xuICAgICAgICAgICAgICAgICAgICB4ID0gKGdyaWRXaWR0aCAvIDIpIC0gZ3JpZFBvcy54O1xuICAgICAgICAgICAgICAgICAgICB5ID0gKGdyaWRIZWlnaHQgLyAyKSAtIGdyaWRQb3MueTtcbiAgICAgICAgICAgICAgICAgICAgciA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5KTtcbiAgICAgICAgICAgICAgICAgICAgcGhpID0gTWF0aC5hdGFuMih5LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBoaSA8IDApIHBoaSArPSBNYXRoLlBJICogMjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIgPiA3NSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgciA9IDc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZFBvcy54ID0gNjkgLSAoNzUgKiBNYXRoLmNvcyhwaGkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWRQb3MueSA9IDY5IC0gKDc1ICogTWF0aC5zaW4ocGhpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2F0dXJhdGlvbiA9IGNsYW1wKHIgLyAwLjc1LCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBodWUgPSBjbGFtcChwaGkgKiAxODAgLyBNYXRoLlBJLCAwLCAzNjApO1xuICAgICAgICAgICAgICAgICAgICBicmlnaHRuZXNzID0gY2xhbXAoMTAwIC0gTWF0aC5mbG9vcihzbGlkZXJQb3MueSAqICgxMDAgLyBzbGlkZXJIZWlnaHQpKSwgMCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgaGV4ID0gaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBoOiBodWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzOiBzYXR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgYjogYnJpZ2h0bmVzc1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgVUlcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBzYXR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnc2F0dXJhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWUsIHNhdHVyYXRpb24sIGFuZCBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IGNsYW1wKHBhcnNlSW50KGdyaWRQb3MueCAqICgzNjAgLyBncmlkV2lkdGgpLCAxMCksIDAsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIHNhdHVyYXRpb24gPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKHNsaWRlclBvcy55ICogKDEwMCAvIHNsaWRlckhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBicmlnaHRuZXNzID0gY2xhbXAoMTAwIC0gTWF0aC5mbG9vcihncmlkUG9zLnkgKiAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBVSVxuICAgICAgICAgICAgICAgICAgICBzbGlkZXIuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IHNhdHVyYXRpb24gLyAxMDAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnYnJpZ2h0bmVzcyc6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWUsIHNhdHVyYXRpb24sIGFuZCBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IGNsYW1wKHBhcnNlSW50KGdyaWRQb3MueCAqICgzNjAgLyBncmlkV2lkdGgpLCAxMCksIDAsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIHNhdHVyYXRpb24gPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKGdyaWRQb3MueSAqICgxMDAgLyBncmlkSGVpZ2h0KSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3MgPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKHNsaWRlclBvcy55ICogKDEwMCAvIHNsaWRlckhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBVSVxuICAgICAgICAgICAgICAgICAgICBzbGlkZXIuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYjogMTAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IDEgLSAoYnJpZ2h0bmVzcyAvIDEwMCkgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGh1ZSwgc2F0dXJhdGlvbiwgYW5kIGJyaWdodG5lc3NcbiAgICAgICAgICAgICAgICAgICAgaHVlID0gY2xhbXAoMzYwIC0gcGFyc2VJbnQoc2xpZGVyUG9zLnkgKiAoMzYwIC8gc2xpZGVySGVpZ2h0KSwgMTApLCAwLCAzNjApO1xuICAgICAgICAgICAgICAgICAgICBzYXR1cmF0aW9uID0gY2xhbXAoTWF0aC5mbG9vcihncmlkUG9zLnggKiAoMTAwIC8gZ3JpZFdpZHRoKSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3MgPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKGdyaWRQb3MueSAqICgxMDAgLyBncmlkSGVpZ2h0KSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGhleCA9IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgczogc2F0dXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGI6IGJyaWdodG5lc3NcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIGdyaWQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIG9wYWNpdHlcbiAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnY3Atb3BhY2l0eS1zbGlkZXInKSkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gcGFyc2VGbG9hdCgxIC0gKG9wYWNpdHlQb3MueSAvIG9wYWNpdHlTbGlkZXJIZWlnaHQpKS50b0ZpeGVkKDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRqdXN0IGNhc2VcbiAgICAgICAgaW5wdXQudmFsKHRoaXMuZ2V0VmFsdWUoaGV4KSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIGNoYW5nZSBldmVudFxuICAgICAgICB0aGlzLmVsZW1lbnQudHJpZ2dlcignY2hhbmdlLl9ncmF2X2NvbG9ycGlja2VyJywgW3RoaXMuZWxlbWVudCwgaGV4LCB0aGlzLm9wYWNpdHldKTtcblxuICAgIH1cblxuICAgIGdldFZhbHVlKGhleCkge1xuICAgICAgICBpZiAodGhpcy5vcGFjaXR5ID09PSAxKSB7IHJldHVybiBoZXg7IH1cbiAgICAgICAgbGV0IHJnYiA9IGhleDJyZ2IoaGV4KTtcblxuICAgICAgICByZXR1cm4gJ3JnYmEoJyArIHJnYi5yICsgJywgJyArIHJnYi5nICsgJywgJyArIHJnYi5iICsgJywgJyArIHRoaXMub3BhY2l0eSArICcpJztcbiAgICB9XG5cbiAgICBib3VuZChuYW1lKSB7XG4gICAgICAgIGxldCBib3VuZCA9IHRoaXMuX2JvdW5kIHx8ICh0aGlzLl9ib3VuZCA9IHt9KTtcbiAgICAgICAgcmV0dXJuIGJvdW5kW25hbWVdIHx8IChib3VuZFtuYW1lXSA9IGJpbmQodGhpc1tuYW1lXSwgdGhpcykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBDb2xvcnBpY2tlckZpZWxkKCdbZGF0YS1ncmF2LWNvbG9ycGlja2VyXScpO1xuIl0sIm5hbWVzIjpbIiQiLCJjbGFtcCIsImJpbmQiLCJyZ2JzdHIyaGV4IiwiaHNiMmhleCIsImhleDJoc2IiLCJoZXgycmdiIiwicGFyc2VIZXgiLCJpc0ZpcmVmb3giLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJib2R5IiwiTU9VU0VET1dOIiwiTU9VU0VNT1ZFIiwiTU9VU0VVUCIsIkZPQ1VTSU4iLCJDb2xvcnBpY2tlckZpZWxkIiwic2VsZWN0b3IiLCJmaWVsZCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJkYXRhIiwiYnVpbHQiLCJhdHRhY2giLCJ1cGRhdGUiLCJvbiIsImV2ZW50IiwiaGV4Iiwib3BhY2l0eSIsImJhY2tncm91bmRDb2xvciIsInJnYiIsInIiLCJnIiwiYiIsInRhcmdldCIsImNsb3Nlc3QiLCJsZW5ndGgiLCJzaWJsaW5ncyIsInBhcmVudCIsImZpbmQiLCJjc3MiLCJzaG93IiwiY3VycmVudFRhcmdldCIsImJvdW5kIiwia2V5Q29kZSIsImhpZGUiLCJibHVyIiwidXBkYXRlRnJvbUlucHV0Iiwic2V0VGltZW91dCIsImJ1aWxkIiwiZWxlbWVudCIsInJlcG9zaXRpb24iLCJ3cmFwcGVyIiwiYWRkQ2xhc3MiLCJyZW1vdmVDbGFzcyIsInVuZGVsZWdhdGUiLCJvZmYiLCJzbGlkZXIiLCJhcHBlbmRUbyIsImFwcGVuZCIsIm9wYWNpdHlTbGlkZXIiLCJncmlkIiwidGFicyIsImh1ZSIsInRleHQiLCJicmlnaHRuZXNzIiwic2F0dXJhdGlvbiIsIndoZWVsIiwidHJhbnNwYXJlbnQiLCJpcyIsInNsaWRlckhlaWdodCIsImhlaWdodCIsIm1vdmUiLCJtYW51YWxPcGFjaXR5IiwiYWN0aXZlIiwibW9kZSIsImF0dHIiLCJyZXBsYWNlIiwibmV3TW9kZSIsImN0Iiwib2Zmc2V0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY3RPZmZzZXQiLCJkZWx0YSIsIngiLCJ5IiwidG9wIiwic2Nyb2xsVG9wIiwibGVmdCIsInNjcm9sbExlZnQiLCJoYXNDbGFzcyIsInByZXZlbnREZWZhdWx0IiwiaW5wdXQiLCJmb2N1cyIsInBpY2tlciIsImNsaWVudFJlY3QiLCJvZmZzZXRYIiwid2luZG93Iiwic2Nyb2xsWCIsIm9mZnNldFkiLCJzY3JvbGxZIiwiTWF0aCIsInJvdW5kIiwicGFnZVgiLCJwYWdlWSIsInd4Iiwid3kiLCJwaGkiLCJ0b3VjaEV2ZW50cyIsImNoYW5nZWRUb3VjaGVzIiwib3JpZ2luYWxFdmVudCIsIndpZHRoIiwic3FydCIsImF0YW4yIiwiUEkiLCJjb3MiLCJzaW4iLCJ1cGRhdGVGcm9tUGlja2VyIiwiZG9udEZpcmVFdmVudCIsInZhbHVlIiwidmFsIiwibWF0Y2giLCJoc2IiLCJncmlkSGVpZ2h0IiwiZ3JpZFdpZHRoIiwiY2VpbCIsInMiLCJoIiwiZ2V0VmFsdWUiLCJ0cmlnZ2VyIiwiZ2V0Q29vcmRzIiwiY29udGFpbmVyIiwib2Zmc2V0V2lkdGgiLCJvZmZzZXRIZWlnaHQiLCJncmlkUGlja2VyIiwic2xpZGVyUGlja2VyIiwib3BhY2l0eVBpY2tlciIsImdyaWRQb3MiLCJzbGlkZXJQb3MiLCJvcGFjaXR5UG9zIiwib3BhY2l0eVNsaWRlckhlaWdodCIsImZsb29yIiwicGFyc2VJbnQiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIm5hbWUiLCJfYm91bmQiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/colorpicker.js\n");
/***/ }),
/***/ "./app/forms/fields/cron.js":
/*!**********************************!*\
!*** ./app/forms/fields/cron.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CronField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cron_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/cron-ui */ \"./app/utils/cron-ui.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar CronField = /*#__PURE__*/function () {\n function CronField() {\n var _this = this;\n\n _classCallCheck(this, CronField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"cron\"]').each(function (index, cron) {\n return _this.addCron(cron);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(CronField, [{\n key: \"addCron\",\n value: function addCron(cron) {\n cron = jquery__WEBPACK_IMPORTED_MODULE_0___default()(cron);\n this.items = this.items.add(cron);\n cron.find('.cron-selector').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n var input = container.closest('[data-grav-field]').find('input');\n container.jqCron({\n numeric_zero_pad: true,\n enabled_minute: true,\n multiple_dom: true,\n multiple_month: true,\n multiple_mins: true,\n multiple_dow: true,\n multiple_time_hours: true,\n multiple_time_minutes: true,\n default_period: 'hour',\n default_value: input.val() || '* * * * *',\n no_reset_button: false,\n bind_to: input,\n bind_method: {\n set: function set($element, value) {\n $element.val(value);\n }\n },\n texts: {\n en: {\n empty: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY\"],\n empty_minutes: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY\"],\n empty_time_hours: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_HOUR\"],\n empty_time_minutes: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_MINUTE\"],\n empty_day_of_week: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_DAY_OF_WEEK\"],\n empty_day_of_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_DAY_OF_MONTH\"],\n empty_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_MONTH\"],\n name_minute: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.MINUTE\"],\n name_hour: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.HOUR\"],\n name_day: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.DAY\"],\n name_week: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.WEEK\"],\n name_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.MONTH\"],\n name_year: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.YEAR\"],\n text_period: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_PERIOD\"],\n text_mins: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_MINS\"],\n text_time: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_TIME\"],\n text_dow: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_DOW\"],\n text_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_MONTH\"],\n text_dom: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_DOM\"],\n error1: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR1\"],\n error2: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR2\"],\n error3: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR3\"],\n error4: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR4\"],\n weekdays: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE.DAYS_OF_THE_WEEK,\n months: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE.MONTHS_OF_THE_YEAR\n }\n }\n });\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var crons = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-field=\"cron\"]');\n\n if (!crons.length) {\n return;\n }\n\n crons.each(function (index, list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n\n if (!~_this2.items.index(list)) {\n _this2.addCron(list);\n }\n });\n }\n }]);\n\n return CronField;\n}();\n\n\nvar Instance = new CronField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUVuRCxpRkFoQlg7QUFpQkFvRCxjQUFBQSxRQUFRLEVBQUVwRCxnRkFqQlY7QUFrQkFxRCxjQUFBQSxVQUFVLEVBQUVyRCxrRkFsQlo7QUFtQkFzRCxjQUFBQSxRQUFRLEVBQUV0RCxnRkFuQlY7QUFvQkF1RCxjQUFBQSxNQUFNLEVBQUV2RCw4RUFwQlI7QUFxQkF3RCxjQUFBQSxNQUFNLEVBQUV4RCw4RUFyQlI7QUFzQkF5RCxjQUFBQSxNQUFNLEVBQUV6RCw4RUF0QlI7QUF1QkEwRCxjQUFBQSxNQUFNLEVBQUUxRCw4RUF2QlI7QUF3QkEyRCxjQUFBQSxRQUFRLEVBQUUzRCxnRkF4QlY7QUF5QkE0RCxjQUFBQSxNQUFNLEVBQUU1RCxrRkFBQTtBQXpCUjtBQUREO0FBbEJNLFNBQWpCO0FBZ0RILE9BcEREO0FBcURIOzs7V0FFRCx1QkFBYzZELEtBQWQsRUFBcUJDO0FBQU07QUFBM0IsTUFBcUQ7QUFBQTs7QUFDakQsVUFBSUMsS0FBSyxHQUFHaEUsNkNBQUMsQ0FBQytELE1BQUQsQ0FBRCxDQUFVbkQsSUFBVixDQUFlLDBCQUFmLENBQVo7O0FBQ0EsVUFBSSxDQUFDb0QsS0FBSyxDQUFDQyxNQUFYLEVBQW1CO0FBQUU7QUFBUzs7QUFFOUJELE1BQUFBLEtBQUssQ0FBQzVELElBQU4sQ0FBVyxVQUFDQyxLQUFELEVBQVE2RCxJQUFSLEVBQWlCO0FBQ3hCQSxRQUFBQSxJQUFJLEdBQUdsRSw2Q0FBQyxDQUFDa0UsSUFBRCxDQUFSOztBQUNBLFlBQUksQ0FBQyxDQUFDLE1BQUksQ0FBQy9ELEtBQUwsQ0FBV0UsS0FBWCxDQUFpQjZELElBQWpCLENBQU4sRUFBOEI7QUFDMUIsZ0JBQUksQ0FBQzNELE9BQUwsQ0FBYTJELElBQWI7QUFDSDtBQUNKLE9BTEQ7QUFNSDs7Ozs7OztBQUdFLElBQUlDLFFBQVEsR0FBRyxJQUFJakUsU0FBSixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvY3Jvbi5qcz9jNDc4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2Nyb24tdWknO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcm9uRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLml0ZW1zID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJjcm9uXCJdJykuZWFjaCgoaW5kZXgsIGNyb24pID0+IHRoaXMuYWRkQ3Jvbihjcm9uKSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgYWRkQ3Jvbihjcm9uKSB7XG4gICAgICAgIGNyb24gPSAkKGNyb24pO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5hZGQoY3Jvbik7XG5cbiAgICAgICAgY3Jvbi5maW5kKCcuY3Jvbi1zZWxlY3RvcicpLmVhY2goKGluZGV4LCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gY29udGFpbmVyLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtZmllbGRdJykuZmluZCgnaW5wdXQnKTtcblxuICAgICAgICAgICAgY29udGFpbmVyLmpxQ3Jvbih7XG4gICAgICAgICAgICAgICAgbnVtZXJpY196ZXJvX3BhZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmFibGVkX21pbnV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV9kb206IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfbW9udGg6IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfbWluczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV9kb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfdGltZV9ob3VyczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV90aW1lX21pbnV0ZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdF9wZXJpb2Q6ICdob3VyJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlOiBpbnB1dC52YWwoKSB8fCAnKiAqICogKiAqJyxcbiAgICAgICAgICAgICAgICBub19yZXNldF9idXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJpbmRfdG86IGlucHV0LFxuICAgICAgICAgICAgICAgIGJpbmRfbWV0aG9kOiB7XG4gICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24oJGVsZW1lbnQsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0ZXh0czoge1xuICAgICAgICAgICAgICAgICAgICBlbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHk6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUlknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X21pbnV0ZXM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUlknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X3RpbWVfaG91cnM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUllfSE9VUiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlfdGltZV9taW51dGVzOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLkVWRVJZX01JTlVURSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlfZGF5X29mX3dlZWs6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUllfREFZX09GX1dFRUsnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X2RheV9vZl9tb250aDogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5FVkVSWV9EQVlfT0ZfTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X21vbnRoOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLkVWRVJZX01PTlRIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lX21pbnV0ZTogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuTUlOVVRFJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2hvdXI6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ05JQ0VUSU1FLkhPVVInXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfZGF5OiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydOSUNFVElNRS5EQVknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfd2VlazogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuV0VFSyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9tb250aDogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfeWVhcjogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuWUVBUiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9wZXJpb2Q6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uVEVYVF9QRVJJT0QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfbWluczogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5URVhUX01JTlMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfdGltZTogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5URVhUX1RJTUUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfZG93OiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfRE9XJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X21vbnRoOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfZG9tOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfRE9NJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjE6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IxJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjI6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IyJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjQ6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1I0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5czogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnREFZU19PRl9USEVfV0VFSyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhzOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydNT05USFNfT0ZfVEhFX1lFQVInXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgY3JvbnMgPSAkKHRhcmdldCkuZmluZCgnW2RhdGEtZ3Jhdi1maWVsZD1cImNyb25cIl0nKTtcbiAgICAgICAgaWYgKCFjcm9ucy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY3JvbnMuZWFjaCgoaW5kZXgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgIGxpc3QgPSAkKGxpc3QpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChsaXN0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQ3JvbihsaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IENyb25GaWVsZCgpO1xuIl0sIm5hbWVzIjpbIiQiLCJ0cmFuc2xhdGlvbnMiLCJDcm9uRmllbGQiLCJpdGVtcyIsImVhY2giLCJpbmRleCIsImNyb24iLCJhZGRDcm9uIiwib24iLCJfb25BZGRlZE5vZGVzIiwiYmluZCIsImFkZCIsImZpbmQiLCJjb250YWluZXIiLCJpbnB1dCIsImNsb3Nlc3QiLCJqcUNyb24iLCJudW1lcmljX3plcm9fcGFkIiwiZW5hYmxlZF9taW51dGUiLCJtdWx0aXBsZV9kb20iLCJtdWx0aXBsZV9tb250aCIsIm11bHRpcGxlX21pbnMiLCJtdWx0aXBsZV9kb3ciLCJtdWx0aXBsZV90aW1lX2hvdXJzIiwibXVsdGlwbGVfdGltZV9taW51dGVzIiwiZGVmYXVsdF9wZXJpb2QiLCJkZWZhdWx0X3ZhbHVlIiwidmFsIiwibm9fcmVzZXRfYnV0dG9uIiwiYmluZF90byIsImJpbmRfbWV0aG9kIiwic2V0IiwiJGVsZW1lbnQiLCJ2YWx1ZSIsInRleHRzIiwiZW4iLCJlbXB0eSIsIkdSQVZfQ09SRSIsImVtcHR5X21pbnV0ZXMiLCJlbXB0eV90aW1lX2hvdXJzIiwiZW1wdHlfdGltZV9taW51dGVzIiwiZW1wdHlfZGF5X29mX3dlZWsiLCJlbXB0eV9kYXlfb2ZfbW9udGgiLCJlbXB0eV9tb250aCIsIm5hbWVfbWludXRlIiwibmFtZV9ob3VyIiwibmFtZV9kYXkiLCJuYW1lX3dlZWsiLCJuYW1lX21vbnRoIiwibmFtZV95ZWFyIiwidGV4dF9wZXJpb2QiLCJ0ZXh0X21pbnMiLCJ0ZXh0X3RpbWUiLCJ0ZXh0X2RvdyIsInRleHRfbW9udGgiLCJ0ZXh0X2RvbSIsImVycm9yMSIsImVycm9yMiIsImVycm9yMyIsImVycm9yNCIsIndlZWtkYXlzIiwibW9udGhzIiwiZXZlbnQiLCJ0YXJnZXQiLCJjcm9ucyIsImxlbmd0aCIsImxpc3QiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/cron.js\n");
/***/ }),
/***/ "./app/forms/fields/datetime.js":
/*!**************************************!*\
!*** ./app/forms/fields/datetime.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DateTimeField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/bootstrap-datetimepicker */ \"./app/utils/bootstrap-datetimepicker.js\");\n/* harmony import */ var _utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar DateTimeField = /*#__PURE__*/function () {\n function DateTimeField(options) {\n var _this = this;\n\n _classCallCheck(this, DateTimeField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-datetime]').each(function (index, field) {\n return _this.addItem(field);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(DateTimeField, [{\n key: \"defaults\",\n get: function get() {\n return {\n showTodayButton: true,\n showClear: true,\n locale: grav_config__WEBPACK_IMPORTED_MODULE_1__.config.language || 'en',\n icons: {\n time: 'fa fa-clock-o',\n date: 'fa fa-calendar-o',\n up: 'fa fa-chevron-up',\n down: 'fa fa-chevron-down',\n previous: 'fa fa-chevron-left',\n next: 'fa fa-chevron-right',\n today: 'fa fa-bullseye',\n clear: 'fa fa-trash-o',\n close: 'fa fa-remove'\n }\n };\n }\n }, {\n key: \"addItem\",\n value: function addItem(list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n this.items = this.items.add(list);\n\n if (list.data('DateTimePicker')) {\n return;\n }\n\n var options = Object.assign({}, this.options, list.data('grav-datetime') || {});\n list.datetimepicker(options).on('dp.show dp.update', this._disableDecades);\n list.siblings('.field-icons').on('click', function () {\n return list.mousedown().focus();\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-datetime]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"_disableDecades\",\n value: function _disableDecades() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.datepicker-years .picker-switch').removeAttr('title').on('click', function (e) {\n return e.stopPropagation();\n });\n }\n }]);\n\n return DateTimeField;\n}();\n\n\nvar Instance = new DateTimeField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0JBQUksQ0FBQ0MsT0FBTCxDQUFhRCxLQUFiO0FBQ0g7QUFDSixPQUxEO0FBTUg7OztXQUVELDJCQUFrQjtBQUNkVixNQUFBQSw2Q0FBQyxDQUFDLGtDQUFELENBQUQsQ0FBc0MwQyxVQUF0QyxDQUFpRCxPQUFqRCxFQUEwRDlCLEVBQTFELENBQTZELE9BQTdELEVBQXNFLFVBQUMrQixDQUFEO0FBQUEsZUFBT0EsQ0FBQyxDQUFDQyxlQUFGLEVBQVA7QUFBQSxPQUF0RTtBQUNIOzs7Ozs7O0FBR0UsSUFBSUMsUUFBUSxHQUFHLElBQUkzQyxhQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9kYXRldGltZS5qcz9kMWMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGVUaW1lRmllbGQge1xuXG4gICAgZ2V0IGRlZmF1bHRzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvd1RvZGF5QnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0NsZWFyOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiBjb25maWcubGFuZ3VhZ2UgfHwgJ2VuJyxcbiAgICAgICAgICAgIGljb25zOiB7XG4gICAgICAgICAgICAgICAgdGltZTogJ2ZhIGZhLWNsb2NrLW8nLFxuICAgICAgICAgICAgICAgIGRhdGU6ICdmYSBmYS1jYWxlbmRhci1vJyxcbiAgICAgICAgICAgICAgICB1cDogJ2ZhIGZhLWNoZXZyb24tdXAnLFxuICAgICAgICAgICAgICAgIGRvd246ICdmYSBmYS1jaGV2cm9uLWRvd24nLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzOiAnZmEgZmEtY2hldnJvbi1sZWZ0JyxcbiAgICAgICAgICAgICAgICBuZXh0OiAnZmEgZmEtY2hldnJvbi1yaWdodCcsXG4gICAgICAgICAgICAgICAgdG9kYXk6ICdmYSBmYS1idWxsc2V5ZScsXG4gICAgICAgICAgICAgICAgY2xlYXI6ICdmYSBmYS10cmFzaC1vJyxcbiAgICAgICAgICAgICAgICBjbG9zZTogJ2ZhIGZhLXJlbW92ZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZGF0ZXRpbWVdJykuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB0aGlzLmFkZEl0ZW0oZmllbGQpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcblxuICAgIH1cblxuICAgIGFkZEl0ZW0obGlzdCkge1xuICAgICAgICBsaXN0ID0gJChsaXN0KTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuYWRkKGxpc3QpO1xuXG4gICAgICAgIGlmIChsaXN0LmRhdGEoJ0RhdGVUaW1lUGlja2VyJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIGxpc3QuZGF0YSgnZ3Jhdi1kYXRldGltZScpIHx8IHt9KTtcbiAgICAgICAgbGlzdC5kYXRldGltZXBpY2tlcihvcHRpb25zKS5vbignZHAuc2hvdyBkcC51cGRhdGUnLCB0aGlzLl9kaXNhYmxlRGVjYWRlcyk7XG4gICAgICAgIGxpc3Quc2libGluZ3MoJy5maWVsZC1pY29ucycpLm9uKCdjbGljaycsICgpID0+IGxpc3QubW91c2Vkb3duKCkuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBmaWVsZHMgPSAkKHRhcmdldCkuZmluZCgnW2RhdGEtZ3Jhdi1kYXRldGltZV0nKTtcbiAgICAgICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoIX50aGlzLml0ZW1zLmluZGV4KGZpZWxkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbShmaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kaXNhYmxlRGVjYWRlcygpIHtcbiAgICAgICAgJCgnLmRhdGVwaWNrZXIteWVhcnMgLnBpY2tlci1zd2l0Y2gnKS5yZW1vdmVBdHRyKCd0aXRsZScpLm9uKCdjbGljaycsIChlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRGF0ZVRpbWVGaWVsZCgpO1xuIl0sIm5hbWVzIjpbIiQiLCJjb25maWciLCJEYXRlVGltZUZpZWxkIiwib3B0aW9ucyIsIml0ZW1zIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdHMiLCJlYWNoIiwiaW5kZXgiLCJmaWVsZCIsImFkZEl0ZW0iLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwic2hvd1RvZGF5QnV0dG9uIiwic2hvd0NsZWFyIiwibG9jYWxlIiwibGFuZ3VhZ2UiLCJpY29ucyIsInRpbWUiLCJkYXRlIiwidXAiLCJkb3duIiwicHJldmlvdXMiLCJuZXh0IiwidG9kYXkiLCJjbGVhciIsImNsb3NlIiwibGlzdCIsImFkZCIsImRhdGEiLCJkYXRldGltZXBpY2tlciIsIl9kaXNhYmxlRGVjYWRlcyIsInNpYmxpbmdzIiwibW91c2Vkb3duIiwiZm9jdXMiLCJldmVudCIsInRhcmdldCIsImZpZWxkcyIsImZpbmQiLCJsZW5ndGgiLCJyZW1vdmVBdHRyIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/datetime.js\n");
/***/ }),
/***/ "./app/forms/fields/editor.js":
/*!************************************!*\
!*** ./app/forms/fields/editor.js ***!
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EditorField),\n/* harmony export */ \"Toolbar\": () => (/* binding */ Toolbar),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editor_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor/buttons */ \"./app/forms/fields/editor/buttons.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! codemirror */ \"./node_modules/codemirror/lib/codemirror.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var watchjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! watchjs */ \"./node_modules/watchjs/src/watch.js\");\n/* harmony import */ var watchjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(watchjs__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/mode/css/css */ \"./node_modules/codemirror/mode/css/css.js\");\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! codemirror/mode/gfm/gfm */ \"./node_modules/codemirror/mode/gfm/gfm.js\");\n/* harmony import */ var codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! codemirror/mode/htmlmixed/htmlmixed */ \"./node_modules/codemirror/mode/htmlmixed/htmlmixed.js\");\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! codemirror/mode/javascript/javascript */ \"./node_modules/codemirror/mode/javascript/javascript.js\");\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! codemirror/mode/markdown/markdown */ \"./node_modules/codemirror/mode/markdown/markdown.js\");\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! codemirror/mode/php/php */ \"./node_modules/codemirror/mode/php/php.js\");\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! codemirror/mode/sass/sass */ \"./node_modules/codemirror/mode/sass/sass.js\");\n/* harmony import */ var codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! codemirror/mode/twig/twig */ \"./node_modules/codemirror/mode/twig/twig.js\");\n/* harmony import */ var codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! codemirror/mode/xml/xml */ \"./node_modules/codemirror/mode/xml/xml.js\");\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! codemirror/mode/yaml/yaml */ \"./node_modules/codemirror/mode/yaml/yaml.js\");\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! codemirror/addon/edit/continuelist */ \"./node_modules/codemirror/addon/edit/continuelist.js\");\n/* harmony import */ var codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! codemirror/addon/mode/overlay */ \"./node_modules/codemirror/addon/mode/overlay.js\");\n/* harmony import */ var codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! codemirror/addon/selection/active-line */ \"./node_modules/codemirror/addon/selection/active-line.js\");\n/* harmony import */ var codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! codemirror/addon/lint/lint */ \"./node_modules/codemirror/addon/lint/lint.js\");\n/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var codemirror_addon_lint_lint_css__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! codemirror/addon/lint/lint.css */ \"./node_modules/codemirror/addon/lint/lint.css\");\n/* harmony import */ var codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! codemirror/addon/lint/css-lint */ \"./node_modules/codemirror/addon/lint/css-lint.js\");\n/* harmony import */ var codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! codemirror/addon/lint/javascript-lint */ \"./node_modules/codemirror/addon/lint/javascript-lint.js\");\n/* harmony import */ var codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! codemirror/addon/lint/json-lint */ \"./node_modules/codemirror/addon/lint/json-lint.js\");\n/* harmony import */ var codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! codemirror/addon/lint/yaml-lint */ \"./node_modules/codemirror/addon/lint/yaml-lint.js\");\n/* harmony import */ var codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n__webpack_require__.g.jsyaml = js_yaml__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; // Modes\n\n\n\n\n\n\n\n\n\n\n // Add-ons\n\n\n\n\n\n\n\n\n\n\nvar IS_MOUSEDOWN = false;\nvar ThemesMap = ['paper'];\nvar Defaults = {\n codemirror: {\n mode: 'htmlmixed',\n theme: 'paper',\n lineWrapping: true,\n dragDrop: true,\n autoCloseTags: true,\n matchTags: true,\n autoCloseBrackets: true,\n matchBrackets: true,\n indentUnit: 4,\n indentWithTabs: false,\n tabSize: 4,\n hintOptions: {\n completionSingle: false\n },\n extraKeys: {\n 'Enter': 'newlineAndIndentContinueMarkdownList'\n }\n }\n};\n\nvar EditorField = /*#__PURE__*/function () {\n function EditorField(options) {\n var _this = this;\n\n _classCallCheck(this, EditorField);\n\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.editors = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, Defaults, options);\n this.buttons = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n this.buttonStrategies = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__.strategies;\n (0,watchjs__WEBPACK_IMPORTED_MODULE_3__.watch)(_editor_buttons__WEBPACK_IMPORTED_MODULE_1__[\"default\"], function\n /* key, modifier, prev, next */\n () {\n _this.editors.each(function (index, editor) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).data('toolbar').renderButtons();\n });\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-editor]').each(function (index, editor) {\n return _this.addEditor(editor);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n body.trigger('grav-editor-ready');\n });\n body.on('mutation._grav', this._onAddedNodes.bind(this));\n body.on('mouseup._grav', function () {\n if (!IS_MOUSEDOWN) {\n return true;\n }\n\n body.unbind('mousemove._grav');\n IS_MOUSEDOWN = false;\n });\n body.on('mousedown._grav', '.grav-editor-resizer', function (event) {\n event && event.preventDefault();\n IS_MOUSEDOWN = true;\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.siblings('.grav-editor-content');\n var editor = container.find('.CodeMirror');\n var codemirror = container.find('textarea').data('codemirror');\n body.on('mousemove._grav', function (event) {\n editor.css('height', Math.max(100, event.pageY - container.offset().top));\n codemirror.refresh();\n });\n });\n }\n\n _createClass(EditorField, [{\n key: \"addButton\",\n value: function addButton(button, options) {\n if (options && (options.before || options.after)) {\n var index = this.buttons.navigation.findIndex(function (obj) {\n var key = Object.keys(obj).shift();\n return obj[key].identifier === (options.before || options.after);\n });\n\n if (!~index) {\n options = 'end';\n } else {\n this.buttons.navigation.splice(options.before ? index : index + 1, 0, button);\n }\n }\n\n if (options === 'start') {\n this.buttons.navigation.splice(0, 0, button);\n }\n\n if (!options || options === 'end') {\n this.buttons.navigation.push(button);\n }\n }\n }, {\n key: \"addEditor\",\n value: function addEditor(textarea) {\n textarea = jquery__WEBPACK_IMPORTED_MODULE_0___default()(textarea);\n var options = Object.assign({}, this.options.codemirror, textarea.data('grav-editor').codemirror);\n var theme = options.theme || 'paper';\n this.editors = this.editors.add(textarea);\n\n if (theme && !~ThemesMap.indexOf(theme)) {\n ThemesMap.push(theme); // let themeCSS = `https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/theme/${theme}.min.css`;\n // $('head').append($('<link rel=\"stylesheet\" type=\"text/css\" />').attr('href', themeCSS));\n }\n\n if (options.mode === 'yaml') {\n Object.assign(options.extraKeys, {\n Tab: function Tab(cm) {\n cm.replaceSelection(' ', 'end');\n }\n });\n }\n\n var editor = codemirror__WEBPACK_IMPORTED_MODULE_2___default().fromTextArea(textarea.get(0), options);\n textarea.data('codemirror', editor);\n textarea.data('toolbar', new Toolbar(textarea));\n textarea.addClass('code-mirrored');\n\n if (options.toolbar === false) {\n textarea.data('toolbar').ui.navigation.addClass('grav-editor-hide-toolbar');\n }\n\n editor.on('change', function () {\n return editor.save();\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var editors = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-editor]');\n\n if (!editors.length) {\n return;\n }\n\n editors.each(function (index, editor) {\n editor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor);\n\n if (!~_this2.editors.index(editor)) {\n _this2.addEditor(editor);\n }\n });\n }\n }]);\n\n return EditorField;\n}();\n\n\nvar Toolbar = /*#__PURE__*/function () {\n function Toolbar(editor) {\n _classCallCheck(this, Toolbar);\n\n this.editor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor);\n this.codemirror = this.editor.data('codemirror');\n this.buttons = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__[\"default\"].navigation;\n this.ui = {\n navigation: jquery__WEBPACK_IMPORTED_MODULE_0___default()(Toolbar.templates().navigation)\n };\n this.editor.parent('.grav-editor-content').before(this.ui.navigation).after(this.ui.states);\n this.renderButtons();\n }\n\n _createClass(Toolbar, [{\n key: \"renderButtons\",\n value: function renderButtons() {\n var _this3 = this;\n\n var map = {\n 'actions': 'navigation',\n 'modes': 'states'\n };\n ['actions', 'modes'].forEach(function (type) {\n _this3.ui.navigation.find(\".grav-editor-\".concat(type)).empty().append('<ul />');\n\n _editor_buttons__WEBPACK_IMPORTED_MODULE_1__[\"default\"][map[type]].forEach(function (button) {\n return _this3.renderButton(button, type);\n });\n });\n }\n }, {\n key: \"renderButton\",\n value: function renderButton(button, type) {\n var _this4 = this;\n\n var location = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n Object.keys(button).forEach(function (key) {\n var obj = button[key];\n\n if (!obj.modes) {\n obj.modes = [];\n }\n\n if (!~_this4.codemirror.options.ignore.indexOf(key) && (!obj.modes.length || obj.modes.indexOf(_this4.codemirror.options.mode) > -1)) {\n var hint = obj.title ? \"data-hint=\\\"\".concat(obj.title, \"\\\"\") : '';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<li class=\\\"grav-editor-button-\".concat(key, \"\\\"><a class=\\\"hint--top\\\" \").concat(hint, \">\").concat(obj.label, \"</a></li>\"));\n\n (location || _this4.ui.navigation.find(\".grav-editor-\".concat(type, \" ul:not(.dropdown-menu)\"))).append(element);\n\n if (obj.shortcut) {\n _this4.addShortcut(obj.identifier, obj.shortcut, element);\n }\n\n obj.action && obj.action.call(obj.action, {\n codemirror: _this4.codemirror,\n button: element,\n textarea: _this4.editor,\n ui: _this4.ui\n });\n\n if (obj.children) {\n var childrenContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul class=\"dropdown-menu\" />');\n element.addClass('button-group').find('a').wrap('<div class=\"dropdown-toggle\" data-toggle=\"dropdown\"></div>');\n element.find('a').append(' <i class=\"fa fa-caret-down\"></i>');\n element.append(childrenContainer);\n obj.children.forEach(function (child) {\n return _this4.renderButton(child, type, childrenContainer);\n });\n }\n }\n });\n }\n }, {\n key: \"addShortcut\",\n value: function addShortcut(identifier, shortcut, element) {\n var _this5 = this;\n\n var map = {};\n\n if (!Array.isArray(shortcut)) {\n shortcut = [shortcut];\n }\n\n shortcut.forEach(function (key) {\n map[key] = function () {\n element.trigger(\"click.editor.\".concat(identifier), [_this5.codemirror]);\n };\n });\n this.codemirror.addKeyMap(map);\n }\n }], [{\n key: \"templates\",\n value: function templates() {\n return {\n navigation: \"\\n <div class=\\\"grav-editor-toolbar\\\">\\n <div class=\\\"grav-editor-actions\\\"></div>\\n <div class=\\\"grav-editor-modes\\\"></div>\\n </div>\\n \"\n };\n }\n }]);\n\n return Toolbar;\n}();\nvar Instance = new EditorField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDUCxNQUFSLENBQWVjLGlCQUFmO0FBQ0ExQyxZQUFBQSxHQUFHLENBQUN5QyxRQUFKLENBQWFoQixPQUFiLENBQXFCLFVBQUNtQixLQUFEO0FBQUEscUJBQVcsTUFBSSxDQUFDZixZQUFMLENBQWtCZSxLQUFsQixFQUF5QmxCLElBQXpCLEVBQStCZ0IsaUJBQS9CLENBQVg7QUFBQSxhQUFyQjtBQUNIO0FBQ0o7QUFDSixPQTNCRDtBQTRCSDtBQWpFTDtBQUFBO0FBQUEsV0FtRUkscUJBQVl0QyxVQUFaLEVBQXdCaUMsUUFBeEIsRUFBa0NGLE9BQWxDLEVBQTJDO0FBQUE7O0FBQ3ZDLFVBQUlYLEdBQUcsR0FBRyxFQUFWOztBQUNBLFVBQUksQ0FBQ3FCLEtBQUssQ0FBQ0MsT0FBTixDQUFjVCxRQUFkLENBQUwsRUFBOEI7QUFDMUJBLFFBQUFBLFFBQVEsR0FBRyxDQUFDQSxRQUFELENBQVg7QUFDSDs7QUFFREEsTUFBQUEsUUFBUSxDQUFDWixPQUFULENBQWlCLFVBQUN4QixHQUFELEVBQVM7QUFDdEJ1QixRQUFBQSxHQUFHLENBQUN2QixHQUFELENBQUgsR0FBVyxZQUFNO0FBQ2JrQyxVQUFBQSxPQUFPLENBQUMzRCxPQUFSLHdCQUFnQzRCLFVBQWhDLEdBQThDLENBQUMsTUFBSSxDQUFDOUQsVUFBTixDQUE5QztBQUNILFNBRkQ7QUFHSCxPQUpEO0FBTUEsV0FBS0EsVUFBTCxDQUFnQnlHLFNBQWhCLENBQTBCdkIsR0FBMUI7QUFDSDtBQWhGTDtBQUFBO0FBQUEsV0FDSSxxQkFBbUI7QUFDZixhQUFPO0FBQ0gxQixRQUFBQSxVQUFVO0FBRFAsT0FBUDtBQVFIO0FBVkw7O0FBQUE7QUFBQTtBQW1GTyxJQUFJa0QsUUFBUSxHQUFHLElBQUlyRixXQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9lZGl0b3IuanM/MzJkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IEJ1dHRvbnMsIHsgc3RyYXRlZ2llcyBhcyBidXR0b25TdHJhdGVnaWVzIH0gZnJvbSAnLi9lZGl0b3IvYnV0dG9ucyc7XG5pbXBvcnQgY29kZW1pcnJvciBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IHdhdGNoIH0gZnJvbSAnd2F0Y2hqcyc7XG5pbXBvcnQganN5YW1sIGZyb20gJ2pzLXlhbWwnO1xuXG5nbG9iYWwuanN5YW1sID0ganN5YW1sO1xuXG4vLyBNb2Rlc1xuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvY3NzL2Nzcyc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS9nZm0vZ2ZtJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL2h0bWxtaXhlZC9odG1sbWl4ZWQnO1xuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvamF2YXNjcmlwdC9qYXZhc2NyaXB0JztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL21hcmtkb3duL21hcmtkb3duJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL3BocC9waHAnO1xuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvc2Fzcy9zYXNzJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL3R3aWcvdHdpZyc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS94bWwveG1sJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL3lhbWwveWFtbCc7XG5cbi8vIEFkZC1vbnNcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9lZGl0L2NvbnRpbnVlbGlzdCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vbW9kZS9vdmVybGF5JztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9zZWxlY3Rpb24vYWN0aXZlLWxpbmUnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2xpbnQvbGludCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vbGludC9saW50LmNzcyc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vbGludC9jc3MtbGludCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vbGludC9qYXZhc2NyaXB0LWxpbnQnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2xpbnQvanNvbi1saW50JztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9saW50L3lhbWwtbGludCc7XG5cbmxldCBJU19NT1VTRURPV04gPSBmYWxzZTtcbmNvbnN0IFRoZW1lc01hcCA9IFsncGFwZXInXTtcbmNvbnN0IERlZmF1bHRzID0ge1xuICAgIGNvZGVtaXJyb3I6IHtcbiAgICAgICAgbW9kZTogJ2h0bWxtaXhlZCcsXG4gICAgICAgIHRoZW1lOiAncGFwZXInLFxuICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsXG4gICAgICAgIGRyYWdEcm9wOiB0cnVlLFxuICAgICAgICBhdXRvQ2xvc2VUYWdzOiB0cnVlLFxuICAgICAgICBtYXRjaFRhZ3M6IHRydWUsXG4gICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiB0cnVlLFxuICAgICAgICBtYXRjaEJyYWNrZXRzOiB0cnVlLFxuICAgICAgICBpbmRlbnRVbml0OiA0LFxuICAgICAgICBpbmRlbnRXaXRoVGFiczogZmFsc2UsXG4gICAgICAgIHRhYlNpemU6IDQsXG4gICAgICAgIGhpbnRPcHRpb25zOiB7IGNvbXBsZXRpb25TaW5nbGU6IGZhbHNlIH0sXG4gICAgICAgIGV4dHJhS2V5czogeyAnRW50ZXInOiAnbmV3bGluZUFuZEluZGVudENvbnRpbnVlTWFya2Rvd25MaXN0JyB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRpdG9yRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgbGV0IGJvZHkgPSAkKCdib2R5Jyk7XG4gICAgICAgIHRoaXMuZWRpdG9ycyA9ICQoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdHMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmJ1dHRvbnMgPSBCdXR0b25zO1xuICAgICAgICB0aGlzLmJ1dHRvblN0cmF0ZWdpZXMgPSBidXR0b25TdHJhdGVnaWVzO1xuXG4gICAgICAgIHdhdGNoKEJ1dHRvbnMsICgvKiBrZXksIG1vZGlmaWVyLCBwcmV2LCBuZXh0ICovKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvcnMuZWFjaCgoaW5kZXgsIGVkaXRvcikgPT4gJChlZGl0b3IpLmRhdGEoJ3Rvb2xiYXInKS5yZW5kZXJCdXR0b25zKCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkKCdbZGF0YS1ncmF2LWVkaXRvcl0nKS5lYWNoKChpbmRleCwgZWRpdG9yKSA9PiB0aGlzLmFkZEVkaXRvcihlZGl0b3IpKTtcblxuICAgICAgICAkKCgpID0+IHsgYm9keS50cmlnZ2VyKCdncmF2LWVkaXRvci1yZWFkeScpOyB9KTtcbiAgICAgICAgYm9keS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgYm9keS5vbignbW91c2V1cC5fZ3JhdicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghSVNfTU9VU0VET1dOKSB7IHJldHVybiB0cnVlOyB9XG4gICAgICAgICAgICBib2R5LnVuYmluZCgnbW91c2Vtb3ZlLl9ncmF2Jyk7XG4gICAgICAgICAgICBJU19NT1VTRURPV04gPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJvZHkub24oJ21vdXNlZG93bi5fZ3JhdicsICcuZ3Jhdi1lZGl0b3ItcmVzaXplcicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIElTX01PVVNFRE9XTiA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRhcmdldC5zaWJsaW5ncygnLmdyYXYtZWRpdG9yLWNvbnRlbnQnKTtcbiAgICAgICAgICAgIGxldCBlZGl0b3IgPSBjb250YWluZXIuZmluZCgnLkNvZGVNaXJyb3InKTtcbiAgICAgICAgICAgIGxldCBjb2RlbWlycm9yID0gY29udGFpbmVyLmZpbmQoJ3RleHRhcmVhJykuZGF0YSgnY29kZW1pcnJvcicpO1xuXG4gICAgICAgICAgICBib2R5Lm9uKCdtb3VzZW1vdmUuX2dyYXYnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBlZGl0b3IuY3NzKCdoZWlnaHQnLCBNYXRoLm1heCgxMDAsIGV2ZW50LnBhZ2VZIC0gY29udGFpbmVyLm9mZnNldCgpLnRvcCkpO1xuICAgICAgICAgICAgICAgIGNvZGVtaXJyb3IucmVmcmVzaCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEJ1dHRvbihidXR0b24sIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgKG9wdGlvbnMuYmVmb3JlIHx8IG9wdGlvbnMuYWZ0ZXIpKSB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmJ1dHRvbnMubmF2aWdhdGlvbi5maW5kSW5kZXgoKG9iaikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyhvYmopLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ialtrZXldLmlkZW50aWZpZXIgPT09IChvcHRpb25zLmJlZm9yZSB8fCBvcHRpb25zLmFmdGVyKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIX5pbmRleCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSAnZW5kJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25zLm5hdmlnYXRpb24uc3BsaWNlKG9wdGlvbnMuYmVmb3JlID8gaW5kZXggOiBpbmRleCArIDEsIDAsIGJ1dHRvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zID09PSAnc3RhcnQnKSB7IHRoaXMuYnV0dG9ucy5uYXZpZ2F0aW9uLnNwbGljZSgwLCAwLCBidXR0b24pOyB9XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCBvcHRpb25zID09PSAnZW5kJykgeyB0aGlzLmJ1dHRvbnMubmF2aWdhdGlvbi5wdXNoKGJ1dHRvbik7IH1cbiAgICB9XG5cbiAgICBhZGRFZGl0b3IodGV4dGFyZWEpIHtcbiAgICAgICAgdGV4dGFyZWEgPSAkKHRleHRhcmVhKTtcbiAgICAgICAgbGV0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuY29kZW1pcnJvcixcbiAgICAgICAgICAgIHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yJykuY29kZW1pcnJvclxuICAgICAgICApO1xuICAgICAgICBsZXQgdGhlbWUgPSBvcHRpb25zLnRoZW1lIHx8ICdwYXBlcic7XG5cbiAgICAgICAgdGhpcy5lZGl0b3JzID0gdGhpcy5lZGl0b3JzLmFkZCh0ZXh0YXJlYSk7XG4gICAgICAgIGlmICh0aGVtZSAmJiAhflRoZW1lc01hcC5pbmRleE9mKHRoZW1lKSkge1xuICAgICAgICAgICAgVGhlbWVzTWFwLnB1c2godGhlbWUpO1xuICAgICAgICAgICAgLy8gbGV0IHRoZW1lQ1NTID0gYGh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2NvZGVtaXJyb3IvNS4xMi4wL3RoZW1lLyR7dGhlbWV9Lm1pbi5jc3NgO1xuICAgICAgICAgICAgLy8gJCgnaGVhZCcpLmFwcGVuZCgkKCc8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgLz4nKS5hdHRyKCdocmVmJywgdGhlbWVDU1MpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT09ICd5YW1sJykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb25zLmV4dHJhS2V5cywgeyBUYWI6IGZ1bmN0aW9uKGNtKSB7IGNtLnJlcGxhY2VTZWxlY3Rpb24oJyAgICAnLCAnZW5kJyk7IH19KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlZGl0b3IgPSBjb2RlbWlycm9yLmZyb21UZXh0QXJlYSh0ZXh0YXJlYS5nZXQoMCksIG9wdGlvbnMpO1xuICAgICAgICB0ZXh0YXJlYS5kYXRhKCdjb2RlbWlycm9yJywgZWRpdG9yKTtcbiAgICAgICAgdGV4dGFyZWEuZGF0YSgndG9vbGJhcicsIG5ldyBUb29sYmFyKHRleHRhcmVhKSk7XG4gICAgICAgIHRleHRhcmVhLmFkZENsYXNzKCdjb2RlLW1pcnJvcmVkJyk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhciA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRleHRhcmVhLmRhdGEoJ3Rvb2xiYXInKS51aS5uYXZpZ2F0aW9uLmFkZENsYXNzKCdncmF2LWVkaXRvci1oaWRlLXRvb2xiYXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVkaXRvci5vbignY2hhbmdlJywgKCkgPT4gZWRpdG9yLnNhdmUoKSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBlZGl0b3JzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLWdyYXYtZWRpdG9yXScpO1xuICAgICAgICBpZiAoIWVkaXRvcnMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGVkaXRvcnMuZWFjaCgoaW5kZXgsIGVkaXRvcikgPT4ge1xuICAgICAgICAgICAgZWRpdG9yID0gJChlZGl0b3IpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5lZGl0b3JzLmluZGV4KGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEVkaXRvcihlZGl0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUb29sYmFyIHtcbiAgICBzdGF0aWMgdGVtcGxhdGVzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmF2aWdhdGlvbjogYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmF2LWVkaXRvci10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmF2LWVkaXRvci1hY3Rpb25zXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmF2LWVkaXRvci1tb2Rlc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGVkaXRvcikge1xuICAgICAgICB0aGlzLmVkaXRvciA9ICQoZWRpdG9yKTtcbiAgICAgICAgdGhpcy5jb2RlbWlycm9yID0gdGhpcy5lZGl0b3IuZGF0YSgnY29kZW1pcnJvcicpO1xuICAgICAgICB0aGlzLmJ1dHRvbnMgPSBCdXR0b25zLm5hdmlnYXRpb247XG4gICAgICAgIHRoaXMudWkgPSB7XG4gICAgICAgICAgICBuYXZpZ2F0aW9uOiAkKFRvb2xiYXIudGVtcGxhdGVzKCkubmF2aWdhdGlvbilcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmVkaXRvci5wYXJlbnQoJy5ncmF2LWVkaXRvci1jb250ZW50JylcbiAgICAgICAgICAgIC5iZWZvcmUodGhpcy51aS5uYXZpZ2F0aW9uKVxuICAgICAgICAgICAgLmFmdGVyKHRoaXMudWkuc3RhdGVzKTtcblxuICAgICAgICB0aGlzLnJlbmRlckJ1dHRvbnMoKTtcbiAgICB9XG5cbiAgICByZW5kZXJCdXR0b25zKCkge1xuICAgICAgICBsZXQgbWFwID0geyAnYWN0aW9ucyc6ICduYXZpZ2F0aW9uJywgJ21vZGVzJzogJ3N0YXRlcyd9O1xuXG4gICAgICAgIFsnYWN0aW9ucycsICdtb2RlcyddLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudWkubmF2aWdhdGlvbi5maW5kKGAuZ3Jhdi1lZGl0b3ItJHt0eXBlfWApLmVtcHR5KCkuYXBwZW5kKCc8dWwgLz4nKTtcbiAgICAgICAgICAgIEJ1dHRvbnNbbWFwW3R5cGVdXS5mb3JFYWNoKChidXR0b24pID0+IHRoaXMucmVuZGVyQnV0dG9uKGJ1dHRvbiwgdHlwZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXJCdXR0b24oYnV0dG9uLCB0eXBlLCBsb2NhdGlvbiA9IG51bGwpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoYnV0dG9uKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGxldCBvYmogPSBidXR0b25ba2V5XTtcbiAgICAgICAgICAgIGlmICghb2JqLm1vZGVzKSB7IG9iai5tb2RlcyA9IFtdOyB9XG4gICAgICAgICAgICBpZiAoIX50aGlzLmNvZGVtaXJyb3Iub3B0aW9ucy5pZ25vcmUuaW5kZXhPZihrZXkpICYmICghb2JqLm1vZGVzLmxlbmd0aCB8fCBvYmoubW9kZXMuaW5kZXhPZih0aGlzLmNvZGVtaXJyb3Iub3B0aW9ucy5tb2RlKSA+IC0xKSkge1xuICAgICAgICAgICAgICAgIGxldCBoaW50ID0gb2JqLnRpdGxlID8gYGRhdGEtaGludD1cIiR7b2JqLnRpdGxlfVwiYCA6ICcnO1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJChgPGxpIGNsYXNzPVwiZ3Jhdi1lZGl0b3ItYnV0dG9uLSR7a2V5fVwiPjxhIGNsYXNzPVwiaGludC0tdG9wXCIgJHtoaW50fT4ke29iai5sYWJlbH08L2E+PC9saT5gKTtcbiAgICAgICAgICAgICAgICAobG9jYXRpb24gfHwgdGhpcy51aS5uYXZpZ2F0aW9uLmZpbmQoYC5ncmF2LWVkaXRvci0ke3R5cGV9IHVsOm5vdCguZHJvcGRvd24tbWVudSlgKSkuYXBwZW5kKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9iai5zaG9ydGN1dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFNob3J0Y3V0KG9iai5pZGVudGlmaWVyLCBvYmouc2hvcnRjdXQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9iai5hY3Rpb24gJiYgb2JqLmFjdGlvbi5jYWxsKG9iai5hY3Rpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvcjogdGhpcy5jb2RlbWlycm9yLFxuICAgICAgICAgICAgICAgICAgICBidXR0b246IGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRleHRhcmVhOiB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgdWk6IHRoaXMudWlcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChvYmouY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuQ29udGFpbmVyID0gJCgnPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIC8+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkQ2xhc3MoJ2J1dHRvbi1ncm91cCcpLmZpbmQoJ2EnKS53cmFwKCc8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoJ2EnKS5hcHBlbmQoJyA8aSBjbGFzcz1cImZhIGZhLWNhcmV0LWRvd25cIj48L2k+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kKGNoaWxkcmVuQ29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgb2JqLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB0aGlzLnJlbmRlckJ1dHRvbihjaGlsZCwgdHlwZSwgY2hpbGRyZW5Db250YWluZXIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZFNob3J0Y3V0KGlkZW50aWZpZXIsIHNob3J0Y3V0LCBlbGVtZW50KSB7XG4gICAgICAgIGxldCBtYXAgPSB7fTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNob3J0Y3V0KSkge1xuICAgICAgICAgICAgc2hvcnRjdXQgPSBbc2hvcnRjdXRdO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hvcnRjdXQuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBtYXBba2V5XSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnRyaWdnZXIoYGNsaWNrLmVkaXRvci4ke2lkZW50aWZpZXJ9YCwgW3RoaXMuY29kZW1pcnJvcl0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb2RlbWlycm9yLmFkZEtleU1hcChtYXApO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBFZGl0b3JGaWVsZCgpO1xuIl0sIm5hbWVzIjpbIiQiLCJCdXR0b25zIiwic3RyYXRlZ2llcyIsImJ1dHRvblN0cmF0ZWdpZXMiLCJjb2RlbWlycm9yIiwid2F0Y2giLCJqc3lhbWwiLCJnbG9iYWwiLCJJU19NT1VTRURPV04iLCJUaGVtZXNNYXAiLCJEZWZhdWx0cyIsIm1vZGUiLCJ0aGVtZSIsImxpbmVXcmFwcGluZyIsImRyYWdEcm9wIiwiYXV0b0Nsb3NlVGFncyIsIm1hdGNoVGFncyIsImF1dG9DbG9zZUJyYWNrZXRzIiwibWF0Y2hCcmFja2V0cyIsImluZGVudFVuaXQiLCJpbmRlbnRXaXRoVGFicyIsInRhYlNpemUiLCJoaW50T3B0aW9ucyIsImNvbXBsZXRpb25TaW5nbGUiLCJleHRyYUtleXMiLCJFZGl0b3JGaWVsZCIsIm9wdGlvbnMiLCJib2R5IiwiZWRpdG9ycyIsIk9iamVjdCIsImFzc2lnbiIsImJ1dHRvbnMiLCJlYWNoIiwiaW5kZXgiLCJlZGl0b3IiLCJkYXRhIiwicmVuZGVyQnV0dG9ucyIsImFkZEVkaXRvciIsInRyaWdnZXIiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwidW5iaW5kIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJjb250YWluZXIiLCJzaWJsaW5ncyIsImZpbmQiLCJjc3MiLCJNYXRoIiwibWF4IiwicGFnZVkiLCJvZmZzZXQiLCJ0b3AiLCJyZWZyZXNoIiwiYnV0dG9uIiwiYmVmb3JlIiwiYWZ0ZXIiLCJuYXZpZ2F0aW9uIiwiZmluZEluZGV4Iiwib2JqIiwia2V5Iiwia2V5cyIsInNoaWZ0IiwiaWRlbnRpZmllciIsInNwbGljZSIsInB1c2giLCJ0ZXh0YXJlYSIsImFkZCIsImluZGV4T2YiLCJUYWIiLCJjbSIsInJlcGxhY2VTZWxlY3Rpb24iLCJmcm9tVGV4dEFyZWEiLCJnZXQiLCJUb29sYmFyIiwiYWRkQ2xhc3MiLCJ0b29sYmFyIiwidWkiLCJzYXZlIiwibGVuZ3RoIiwidGVtcGxhdGVzIiwicGFyZW50Iiwic3RhdGVzIiwibWFwIiwiZm9yRWFjaCIsInR5cGUiLCJlbXB0eSIsImFwcGVuZCIsInJlbmRlckJ1dHRvbiIsImxvY2F0aW9uIiwibW9kZXMiLCJpZ25vcmUiLCJoaW50IiwidGl0bGUiLCJlbGVtZW50IiwibGFiZWwiLCJzaG9ydGN1dCIsImFkZFNob3J0Y3V0IiwiYWN0aW9uIiwiY2FsbCIsImNoaWxkcmVuIiwiY2hpbGRyZW5Db250YWluZXIiLCJ3cmFwIiwiY2hpbGQiLCJBcnJheSIsImlzQXJyYXkiLCJhZGRLZXlNYXAiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/editor.js\n");
/***/ }),
/***/ "./app/forms/fields/editor/buttons.js":
/*!********************************************!*\
!*** ./app/forms/fields/editor/buttons.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"strategies\": () => (/* binding */ strategies),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/request */ \"./app/utils/request.js\");\n\n\n\n\nvar replacer = function replacer(_ref) {\n var name = _ref.name,\n replace = _ref.replace,\n codemirror = _ref.codemirror,\n button = _ref.button,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'replaceSelections' : _ref$mode,\n runner = _ref.runner;\n button.on(\"click.editor.\".concat(name), function () {\n strategies[mode]({\n token: '$1',\n template: replace,\n codemirror: codemirror,\n runner: runner\n });\n });\n};\n\nvar strategies = {\n replaceSelections: function replaceSelections(_ref2) {\n var template = _ref2.template,\n token = _ref2.token,\n codemirror = _ref2.codemirror,\n runner = _ref2.runner;\n var replacements = [];\n var ranges = [];\n var selections = codemirror.getSelections();\n var list = codemirror.listSelections();\n var accumulator = {};\n selections.forEach(function (selection, index) {\n var markup = template.replace(token, selection);\n var cursor = markup.indexOf('$cur');\n var _list$index$anchor = list[index].anchor,\n line = _list$index$anchor.line,\n ch = _list$index$anchor.ch;\n markup = markup.replace('$cur', '');\n markup = runner ? runner(selection, markup, list) : markup;\n replacements.push(markup);\n\n if (!accumulator[line]) {\n accumulator[line] = 0;\n }\n\n ch += accumulator[line] + (cursor === -1 ? markup.length : cursor);\n var range = {\n ch: ch,\n line: line\n };\n ranges.push({\n anchor: range,\n head: range\n });\n accumulator[line] += markup.length - selection.length;\n });\n codemirror.replaceSelections(replacements);\n codemirror.setSelections(ranges);\n codemirror.focus();\n },\n replaceLine: function replaceLine(_ref3) {\n var template = _ref3.template,\n token = _ref3.token,\n codemirror = _ref3.codemirror,\n runner = _ref3.runner;\n var list = codemirror.listSelections();\n var range;\n list.forEach(function (selection) {\n var lines = {\n min: Math.min(selection.anchor.line, selection.head.line),\n max: Math.max(selection.anchor.line, selection.head.line)\n };\n codemirror.eachLine(lines.min, lines.max + 1, function (handler) {\n var markup = template.replace(token, handler.text);\n var line = codemirror.getLineNumber(handler);\n markup = runner ? runner(handler, markup) : markup;\n codemirror.replaceRange(markup, {\n line: line,\n ch: 0\n }, {\n line: line,\n ch: markup.length\n });\n range = {\n line: line,\n ch: markup.length\n };\n });\n });\n codemirror.setSelection(range, range, 'end');\n codemirror.focus();\n },\n replaceRange: function replaceRange() {}\n};\n\nvar flipDisabled = function flipDisabled(codemirror, button, type) {\n var hasHistory = codemirror.historySize()[type];\n var element = button.find('a');\n button[hasHistory ? 'removeClass' : 'addClass']('button-disabled');\n\n if (!hasHistory) {\n element.attr('title-disabled', element.attr('title'));\n element.attr('data-hint-disabled', element.attr('data-hint'));\n element.removeAttr('title').removeAttr('data-hint');\n } else {\n element.attr('title', element.attr('title-disabled'));\n element.attr('data-hint', element.attr('data-hint-disabled'));\n element.removeAttr('title-disabled').removeAttr('data-hint-disabled');\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n navigation: [{\n undo: {\n identifier: 'undo',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UNDO,\n label: '<i class=\"fa fa-fw fa-undo\"></i>',\n modes: [],\n action: function action(_ref4) {\n var codemirror = _ref4.codemirror,\n button = _ref4.button,\n textarea = _ref4.textarea;\n button.addClass('button-disabled');\n codemirror.on('change', function () {\n return flipDisabled(codemirror, button, 'undo');\n });\n button.on('click.editor.undo', function () {\n codemirror.undo();\n });\n }\n }\n }, {\n redo: {\n identifier: 'redo',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.REDO,\n label: '<i class=\"fa fa-fw fa-repeat\"></i>',\n modes: [],\n action: function action(_ref5) {\n var codemirror = _ref5.codemirror,\n button = _ref5.button,\n textarea = _ref5.textarea;\n button.addClass('button-disabled');\n codemirror.on('change', function () {\n return flipDisabled(codemirror, button, 'redo');\n });\n button.on('click.editor.redo', function () {\n codemirror.redo();\n });\n }\n }\n }, {\n headers: {\n identifier: 'headers',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.HEADERS,\n label: '<i class=\"fa fa-fw fa-header\"></i>',\n modes: ['gfm', 'markdown'],\n children: [{\n h1: {\n identifier: 'h1',\n label: '<i class=\"fa fa-fw fa-header\"></i>1',\n modes: ['gfm', 'markdown'],\n action: function action(_ref6) {\n var codemirror = _ref6.codemirror,\n button = _ref6.button,\n textarea = _ref6.textarea;\n replacer({\n name: 'h1',\n replace: '# $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h2: {\n identifier: 'h2',\n label: '<i class=\"fa fa-fw fa-header\"></i>2',\n modes: ['gfm', 'markdown'],\n action: function action(_ref7) {\n var codemirror = _ref7.codemirror,\n button = _ref7.button,\n textarea = _ref7.textarea;\n replacer({\n name: 'h2',\n replace: '## $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h3: {\n identifier: 'h3',\n label: '<i class=\"fa fa-fw fa-header\"></i>3',\n modes: ['gfm', 'markdown'],\n action: function action(_ref8) {\n var codemirror = _ref8.codemirror,\n button = _ref8.button,\n textarea = _ref8.textarea;\n replacer({\n name: 'h3',\n replace: '### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h4: {\n identifier: 'h4',\n label: '<i class=\"fa fa-fw fa-header\"></i>4',\n modes: ['gfm', 'markdown'],\n action: function action(_ref9) {\n var codemirror = _ref9.codemirror,\n button = _ref9.button,\n textarea = _ref9.textarea;\n replacer({\n name: 'h4',\n replace: '#### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h5: {\n identifier: 'h5',\n label: '<i class=\"fa fa-fw fa-header\"></i>5',\n modes: ['gfm', 'markdown'],\n action: function action(_ref10) {\n var codemirror = _ref10.codemirror,\n button = _ref10.button,\n textarea = _ref10.textarea;\n replacer({\n name: 'h5',\n replace: '##### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h6: {\n identifier: 'h6',\n label: '<i class=\"fa fa-fw fa-header\"></i>6',\n modes: ['gfm', 'markdown'],\n action: function action(_ref11) {\n var codemirror = _ref11.codemirror,\n button = _ref11.button,\n textarea = _ref11.textarea;\n replacer({\n name: 'h6',\n replace: '###### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }]\n }\n }, {\n bold: {\n identifier: 'bold',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.BOLD,\n label: '<i class=\"fa fa-fw fa-bold\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-B', 'Cmd-B'],\n action: function action(_ref12) {\n var codemirror = _ref12.codemirror,\n button = _ref12.button,\n textarea = _ref12.textarea;\n replacer({\n name: 'bold',\n replace: '**$1$cur**',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n italic: {\n identifier: 'italic',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ITALIC,\n label: '<i class=\"fa fa-fw fa-italic\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-I', 'Cmd-I'],\n action: function action(_ref13) {\n var codemirror = _ref13.codemirror,\n button = _ref13.button,\n textarea = _ref13.textarea;\n replacer({\n name: 'italic',\n replace: '_$1$cur_',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n strike: {\n identifier: 'strike',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.STRIKETHROUGH,\n label: '<i class=\"fa fa-fw fa-strikethrough\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref14) {\n var codemirror = _ref14.codemirror,\n button = _ref14.button,\n textarea = _ref14.textarea;\n replacer({\n name: 'strike',\n replace: '~~$1$cur~~',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n delimiter: {\n identifier: 'delimiter',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.SUMMARY_DELIMITER,\n label: '<i class=\"fa fa-fw fa-minus\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref15) {\n var codemirror = _ref15.codemirror,\n button = _ref15.button,\n textarea = _ref15.textarea;\n replacer({\n name: 'delimiter',\n replace: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.site.delimiter, \"$1\"),\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n link: {\n identifier: 'link',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.LINK,\n label: '<i class=\"fa fa-fw fa-link\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-K', 'Cmd-K'],\n action: function action(_ref16) {\n var codemirror = _ref16.codemirror,\n button = _ref16.button,\n textarea = _ref16.textarea;\n replacer({\n name: 'link',\n replace: '[$1]($cur)',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n image: {\n identifier: 'image',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.IMAGE,\n label: '<i class=\"fa fa-fw fa-picture-o\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref17) {\n var codemirror = _ref17.codemirror,\n button = _ref17.button,\n textarea = _ref17.textarea;\n replacer({\n name: 'image',\n replace: '![$1]($cur)',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n blockquote: {\n identifier: 'blockquote',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.BLOCKQUOTE,\n label: '<i class=\"fa fa-fw fa-quote-right\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref18) {\n var codemirror = _ref18.codemirror,\n button = _ref18.button,\n textarea = _ref18.textarea;\n replacer({\n name: 'blockquote',\n replace: '> $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n listUl: {\n identifier: 'listUl',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UNORDERED_LIST,\n label: '<i class=\"fa fa-fw fa-list-ul\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref19) {\n var codemirror = _ref19.codemirror,\n button = _ref19.button,\n textarea = _ref19.textarea;\n replacer({\n name: 'listUl',\n replace: '* $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n listOl: {\n identifier: 'listOl',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ORDERED_LIST,\n label: '<i class=\"fa fa-fw fa-list-ol\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref20) {\n var codemirror = _ref20.codemirror,\n button = _ref20.button,\n textarea = _ref20.textarea;\n replacer({\n name: 'listOl',\n replace: '. $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine',\n runner: function runner(line, markup) {\n var lineNo = codemirror.getLineNumber(line);\n var previousLine = codemirror.getLine(lineNo - 1) || '';\n var match = previousLine.match(/^(\\d+)\\./);\n var prefix = 1 + (match ? Number(match[1]) : 0);\n return \"\".concat(prefix).concat(markup);\n }\n });\n }\n }\n }],\n states: [{\n code: {\n identifier: 'editor',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.EDITOR,\n label: '<i class=\"fa fa-fw fa-code\"></i>',\n action: function action(_ref21) {\n var codemirror = _ref21.codemirror,\n button = _ref21.button,\n textarea = _ref21.textarea,\n ui = _ref21.ui;\n\n if (textarea.data('grav-editor-mode') === 'editor') {\n button.addClass('editor-active');\n }\n\n button.on('click.states.editor', function () {\n button.siblings().removeClass('editor-active');\n button.addClass('editor-active');\n textarea.data('grav-editor-mode', 'editor');\n var previewContainer = textarea.data('grav-editor-preview-container');\n var content = textarea.parent('.grav-editor-content');\n content.addClass('is-active');\n ui.navigation.find('.grav-editor-actions').css('visibility', 'visible');\n\n if (previewContainer) {\n previewContainer.removeClass('is-active');\n }\n });\n }\n }\n }, {\n preview: {\n identifier: 'preview',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.PREVIEW,\n label: '<i class=\"fa fa-fw fa-eye\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref22) {\n var codemirror = _ref22.codemirror,\n button = _ref22.button,\n textarea = _ref22.textarea,\n ui = _ref22.ui;\n\n if (textarea.data('grav-editor-mode') === 'preview') {\n button.addClass('editor-active');\n }\n\n button.on('click.states.preview', function () {\n var previewContainer = textarea.data('grav-editor-preview-container');\n var content = textarea.parent('.grav-editor-content');\n button.siblings().removeClass('editor-active');\n button.addClass('editor-active');\n textarea.data('grav-editor-mode', 'preview');\n\n if (!previewContainer) {\n previewContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"grav-editor-preview\" />');\n content.after(previewContainer);\n textarea.data('grav-editor-preview-container', previewContainer);\n }\n\n previewContainer.css({\n height: content.height()\n });\n previewContainer.addClass('is-active');\n content.removeClass('is-active');\n ui.navigation.find('.grav-editor-actions').css('visibility', 'hidden');\n var url = \"\".concat(textarea.data('grav-urlpreview'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"processmarkdown\");\n var params = textarea.closest('form').serializeArray();\n var body = {};\n params.map(function (obj) {\n body[obj.name] = obj.value;\n });\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: body\n }, function (response) {\n return previewContainer.html(response.preview);\n });\n });\n }\n }\n }, {\n fullscreen: {\n identifier: 'fullscreen',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FULLSCREEN,\n label: '<i class=\"fa fa-fw fa-expand\"></i>',\n action: function action(_ref23) {\n var codemirror = _ref23.codemirror,\n button = _ref23.button,\n textarea = _ref23.textarea;\n button.on('click.editor.fullscreen', function () {\n var container = textarea.closest('.grav-editor');\n var wrapper = codemirror.getWrapperElement();\n var contentWrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper');\n\n if (!container.hasClass('grav-editor-fullscreen')) {\n textarea.data('fullScreenRestore', {\n scrollTop: __webpack_require__.g.pageYOffset,\n scrollLeft: __webpack_require__.g.pageXOffset,\n width: wrapper.style.width,\n height: wrapper.style.height\n });\n wrapper.style.width = '';\n wrapper.style.height = textarea.parent('.grav-editor-content').height() + 'px';\n __webpack_require__.g.document.documentElement.style.overflow = 'hidden';\n var hints = container.find('.grav-editor-toolbar .hint--top');\n\n if (hints) {\n hints.removeClass('hint--top').addClass('hint--bottom');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(hints[hints.length - 1]).addClass('hint--bottom-left');\n }\n\n if (contentWrapper) {\n contentWrapper.css('overflow', 'visible');\n }\n } else {\n __webpack_require__.g.document.documentElement.style.overflow = '';\n var state = textarea.data('fullScreenRestore');\n wrapper.style.width = state.width;\n wrapper.style.height = state.height;\n __webpack_require__.g.scrollTo(state.scrollLeft, state.scrollTop);\n\n var _hints = container.find('.grav-editor-toolbar .hint--bottom');\n\n if (_hints) {\n _hints.removeClass('hint--bottom').addClass('hint--top');\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(_hints[_hints.length - 1]).removeClass('hint--bottom-left');\n }\n\n if (contentWrapper) {\n contentWrapper.css('overflow', 'auto');\n }\n }\n\n container.toggleClass('grav-editor-fullscreen');\n setTimeout(function () {\n codemirror.refresh(); // this.preview.parent().css('height', this.code.height());\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('resize');\n }, 5);\n });\n }\n }\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2VkaXRvci9idXR0b25zLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUksUUFBUSxHQUFHLFNBQVhBLFFBQVcsT0FBK0U7QUFBQSxNQUE1RUMsSUFBNEUsUUFBNUVBLElBQTRFO0FBQUEsTUFBdEVDLE9BQXNFLFFBQXRFQSxPQUFzRTtBQUFBLE1BQTdEQyxVQUE2RCxRQUE3REEsVUFBNkQ7QUFBQSxNQUFqREMsTUFBaUQsUUFBakRBLE1BQWlEO0FBQUEsdUJBQXpDQyxJQUF5QztBQUFBLE1BQXpDQSxJQUF5QywwQkFBbEMsbUJBQWtDO0FBQUEsTUFBYkMsTUFBYSxRQUFiQSxNQUFhO0FBQzFGRixFQUFBQSxNQUFNLENBQUNHLEVBQVAsd0JBQTBCTixJQUExQixHQUFrQyxZQUFNO0FBQ3BDTyxJQUFBQSxVQUFVLENBQUNILElBQUQsQ0FBVixDQUFpQjtBQUFFSSxNQUFBQSxLQUFLLEVBQUUsSUFBVDtBQUFlQyxNQUFBQSxRQUFRLEVBQUVSLE9BQXpCO0FBQWtDQyxNQUFBQSxVQUFVLEVBQVZBLFVBQWxDO0FBQThDRyxNQUFBQSxNQUFNLEVBQU5BO0FBQTlDLEtBQWpCO0FBQ0gsR0FGRDtBQUdILENBSkQ7O0FBTU8sSUFBSUUsVUFBVSxHQUFHO0FBQ3BCRyxFQUFBQSxpQkFEb0Isb0NBQ3VDO0FBQUEsUUFBdkNELFFBQXVDLFNBQXZDQSxRQUF1QztBQUFBLFFBQTdCRCxLQUE2QixTQUE3QkEsS0FBNkI7QUFBQSxRQUF0Qk4sVUFBc0IsU0FBdEJBLFVBQXNCO0FBQUEsUUFBVkcsTUFBVSxTQUFWQSxNQUFVO0FBQ3ZELFFBQUlNLFlBQVksR0FBRyxFQUFuQjtBQUNBLFFBQUlDLE1BQU0sR0FBRyxFQUFiO0FBQ0EsUUFBSUMsVUFBVSxHQUFHWCxVQUFVLENBQUNZLGFBQVgsRUFBakI7QUFDQSxRQUFJQyxJQUFJLEdBQUdiLFVBQVUsQ0FBQ2MsY0FBWCxFQUFYO0FBQ0EsUUFBSUMsV0FB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LFNBQVMsQ0FBQ2hGLElBQVYsQ0FBZSxvQ0FBZixDQUFaOztBQUVBLGdCQUFJK0YsTUFBSixFQUFXO0FBQ1BBLGNBQUFBLE1BQUssQ0FBQ3RDLFdBQU4sQ0FBa0IsY0FBbEIsRUFBa0M1QyxRQUFsQyxDQUEyQyxXQUEzQzs7QUFDQW5FLGNBQUFBLDZDQUFDLENBQUNxSixNQUFLLENBQUNBLE1BQUssQ0FBQ3BILE1BQU4sR0FBZSxDQUFoQixDQUFOLENBQUQsQ0FBMkI4RSxXQUEzQixDQUF1QyxtQkFBdkM7QUFDSDs7QUFDRCxnQkFBSTBCLGNBQUosRUFBb0I7QUFBRUEsY0FBQUEsY0FBYyxDQUFDdEIsR0FBZixDQUFtQixVQUFuQixFQUErQixNQUEvQjtBQUF5QztBQUNsRTs7QUFFRG1CLFVBQUFBLFNBQVMsQ0FBQ2tCLFdBQVYsQ0FBc0Isd0JBQXRCO0FBRUFDLFVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2JsSixZQUFBQSxVQUFVLENBQUNtSixPQUFYLEdBRGEsQ0FFYjs7QUFDQTFKLFlBQUFBLDZDQUFDLENBQUM0SSxxQkFBRCxDQUFELENBQVVlLE9BQVYsQ0FBa0IsUUFBbEI7QUFDSCxXQUpTLEVBSVAsQ0FKTyxDQUFWO0FBS0gsU0FoREQ7QUFpREg7QUF0RE87QUFEYixHQWhFSztBQW5ORyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvZWRpdG9yL2J1dHRvbnMuanM/ODhkMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi8uLi8uLi91dGlscy9yZXF1ZXN0JztcblxubGV0IHJlcGxhY2VyID0gKHsgbmFtZSwgcmVwbGFjZSwgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlID0gJ3JlcGxhY2VTZWxlY3Rpb25zJywgcnVubmVyIH0pID0+IHtcbiAgICBidXR0b24ub24oYGNsaWNrLmVkaXRvci4ke25hbWV9YCwgKCkgPT4ge1xuICAgICAgICBzdHJhdGVnaWVzW21vZGVdKHsgdG9rZW46ICckMScsIHRlbXBsYXRlOiByZXBsYWNlLCBjb2RlbWlycm9yLCBydW5uZXIgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgbGV0IHN0cmF0ZWdpZXMgPSB7XG4gICAgcmVwbGFjZVNlbGVjdGlvbnMoeyB0ZW1wbGF0ZSwgdG9rZW4sIGNvZGVtaXJyb3IsIHJ1bm5lciB9KSB7XG4gICAgICAgIGxldCByZXBsYWNlbWVudHMgPSBbXTtcbiAgICAgICAgbGV0IHJhbmdlcyA9IFtdO1xuICAgICAgICBsZXQgc2VsZWN0aW9ucyA9IGNvZGVtaXJyb3IuZ2V0U2VsZWN0aW9ucygpO1xuICAgICAgICBsZXQgbGlzdCA9IGNvZGVtaXJyb3IubGlzdFNlbGVjdGlvbnMoKTtcbiAgICAgICAgbGV0IGFjY3VtdWxhdG9yID0ge307XG5cbiAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKChzZWxlY3Rpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBsZXQgbWFya3VwID0gdGVtcGxhdGUucmVwbGFjZSh0b2tlbiwgc2VsZWN0aW9uKTtcblxuICAgICAgICAgICAgbGV0IGN1cnNvciA9IG1hcmt1cC5pbmRleE9mKCckY3VyJyk7XG4gICAgICAgICAgICBsZXQgeyBsaW5lLCBjaCB9ID0gbGlzdFtpbmRleF0uYW5jaG9yO1xuXG4gICAgICAgICAgICBtYXJrdXAgPSBtYXJrdXAucmVwbGFjZSgnJGN1cicsICcnKTtcbiAgICAgICAgICAgIG1hcmt1cCA9IHJ1bm5lciA/IHJ1bm5lcihzZWxlY3Rpb24sIG1hcmt1cCwgbGlzdCkgOiBtYXJrdXA7XG4gICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaChtYXJrdXApO1xuXG4gICAgICAgICAgICBpZiAoIWFjY3VtdWxhdG9yW2xpbmVdKSB7IGFjY3VtdWxhdG9yW2xpbmVdID0gMDsgfVxuXG4gICAgICAgICAgICBjaCArPSBhY2N1bXVsYXRvcltsaW5lXSArIChjdXJzb3IgPT09IC0xID8gbWFya3VwLmxlbmd0aCA6IGN1cnNvcik7XG4gICAgICAgICAgICBsZXQgcmFuZ2UgPSB7IGNoLCBsaW5lIH07XG5cbiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHsgYW5jaG9yOiByYW5nZSwgaGVhZDogcmFuZ2UgfSk7XG4gICAgICAgICAgICBhY2N1bXVsYXRvcltsaW5lXSArPSBtYXJrdXAubGVuZ3RoIC0gc2VsZWN0aW9uLmxlbmd0aDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29kZW1pcnJvci5yZXBsYWNlU2VsZWN0aW9ucyhyZXBsYWNlbWVudHMpO1xuICAgICAgICBjb2RlbWlycm9yLnNldFNlbGVjdGlvbnMocmFuZ2VzKTtcbiAgICAgICAgY29kZW1pcnJvci5mb2N1cygpO1xuICAgIH0sXG4gICAgcmVwbGFjZUxpbmUoeyB0ZW1wbGF0ZSwgdG9rZW4sIGNvZGVtaXJyb3IsIHJ1bm5lciB9KSB7XG4gICAgICAgIGxldCBsaXN0ID0gY29kZW1pcnJvci5saXN0U2VsZWN0aW9ucygpO1xuICAgICAgICBsZXQgcmFuZ2U7XG5cbiAgICAgICAgbGlzdC5mb3JFYWNoKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGxldCBsaW5lcyA9IHtcbiAgICAgICAgICAgICAgICBtaW46IE1hdGgubWluKHNlbGVjdGlvbi5hbmNob3IubGluZSwgc2VsZWN0aW9uLmhlYWQubGluZSksXG4gICAgICAgICAgICAgICAgbWF4OiBNYXRoLm1heChzZWxlY3Rpb24uYW5jaG9yLmxpbmUsIHNlbGVjdGlvbi5oZWFkLmxpbmUpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb2RlbWlycm9yLmVhY2hMaW5lKGxpbmVzLm1pbiwgbGluZXMubWF4ICsgMSwgKGhhbmRsZXIpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbWFya3VwID0gdGVtcGxhdGUucmVwbGFjZSh0b2tlbiwgaGFuZGxlci50ZXh0KTtcbiAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGNvZGVtaXJyb3IuZ2V0TGluZU51bWJlcihoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBtYXJrdXAgPSBydW5uZXIgPyBydW5uZXIoaGFuZGxlciwgbWFya3VwKSA6IG1hcmt1cDtcbiAgICAgICAgICAgICAgICBjb2RlbWlycm9yLnJlcGxhY2VSYW5nZShtYXJrdXAsIHsgbGluZSwgY2g6IDAgfSwgeyBsaW5lLCBjaDogbWFya3VwLmxlbmd0aCB9KTtcbiAgICAgICAgICAgICAgICByYW5nZSA9IHsgbGluZSwgY2g6IG1hcmt1cC5sZW5ndGggfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb2RlbWlycm9yLnNldFNlbGVjdGlvbihyYW5nZSwgcmFuZ2UsICdlbmQnKTtcbiAgICAgICAgY29kZW1pcnJvci5mb2N1cygpO1xuICAgIH0sXG4gICAgcmVwbGFjZVJhbmdlKCkge31cbn07XG5cbmNvbnN0IGZsaXBEaXNhYmxlZCA9IChjb2RlbWlycm9yLCBidXR0b24sIHR5cGUpID0+IHtcbiAgICBsZXQgaGFzSGlzdG9yeSA9IGNvZGVtaXJyb3IuaGlzdG9yeVNpemUoKVt0eXBlXTtcbiAgICBsZXQgZWxlbWVudCA9IGJ1dHRvbi5maW5kKCdhJyk7XG4gICAgYnV0dG9uW2hhc0hpc3RvcnkgPyAncmVtb3ZlQ2xhc3MnIDogJ2FkZENsYXNzJ10oJ2J1dHRvbi1kaXNhYmxlZCcpO1xuXG4gICAgaWYgKCFoYXNIaXN0b3J5KSB7XG4gICAgICAgIGVsZW1lbnQuYXR0cigndGl0bGUtZGlzYWJsZWQnLCBlbGVtZW50LmF0dHIoJ3RpdGxlJykpO1xuICAgICAgICBlbGVtZW50LmF0dHIoJ2RhdGEtaGludC1kaXNhYmxlZCcsIGVsZW1lbnQuYXR0cignZGF0YS1oaW50JykpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoJ3RpdGxlJykucmVtb3ZlQXR0cignZGF0YS1oaW50Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5hdHRyKCd0aXRsZScsIGVsZW1lbnQuYXR0cigndGl0bGUtZGlzYWJsZWQnKSk7XG4gICAgICAgIGVsZW1lbnQuYXR0cignZGF0YS1oaW50JywgZWxlbWVudC5hdHRyKCdkYXRhLWhpbnQtZGlzYWJsZWQnKSk7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cigndGl0bGUtZGlzYWJsZWQnKS5yZW1vdmVBdHRyKCdkYXRhLWhpbnQtZGlzYWJsZWQnKTtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmF2aWdhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgICB1bmRvOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ3VuZG8nLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVORE8sXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXVuZG9cIj48L2k+JyxcbiAgICAgICAgICAgICAgICBtb2RlczogW10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYX0pIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCdidXR0b24tZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvci5vbignY2hhbmdlJywgKCkgPT4gZmxpcERpc2FibGVkKGNvZGVtaXJyb3IsIGJ1dHRvbiwgJ3VuZG8nKSk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5vbignY2xpY2suZWRpdG9yLnVuZG8nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlbWlycm9yLnVuZG8oKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICByZWRvOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ3JlZG8nLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlJFRE8sXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXJlcGVhdFwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhfSkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uYWRkQ2xhc3MoJ2J1dHRvbi1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgICAgICBjb2RlbWlycm9yLm9uKCdjaGFuZ2UnLCAoKSA9PiBmbGlwRGlzYWJsZWQoY29kZW1pcnJvciwgYnV0dG9uLCAncmVkbycpKTtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLm9uKCdjbGljay5lZGl0b3IucmVkbycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVtaXJyb3IucmVkbygpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaGVhZGVycycsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSEVBREVSUyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaGVhZGVyXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+MScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2gxJywgcmVwbGFjZTogJyMgJDEnLCBjb2RlbWlycm9yLCBidXR0b24sIG1vZGU6ICdyZXBsYWNlTGluZScgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoMjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdoMicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhlYWRlclwiPjwvaT4yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnaDInLCByZXBsYWNlOiAnIyMgJDEnLCBjb2RlbWlycm9yLCBidXR0b24sIG1vZGU6ICdyZXBsYWNlTGluZScgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoMzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdoMycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhlYWRlclwiPjwvaT4zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnaDMnLCByZXBsYWNlOiAnIyMjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+NCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2g0JywgcmVwbGFjZTogJyMjIyMgJDEnLCBjb2RlbWlycm9yLCBidXR0b24sIG1vZGU6ICdyZXBsYWNlTGluZScgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoNToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdoNScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhlYWRlclwiPjwvaT41JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnaDUnLCByZXBsYWNlOiAnIyMjIyMgJDEnLCBjb2RlbWlycm9yLCBidXR0b24sIG1vZGU6ICdyZXBsYWNlTGluZScgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoNjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdoNicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhlYWRlclwiPjwvaT42JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnaDYnLCByZXBsYWNlOiAnIyMjIyMjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYm9sZDoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdib2xkJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5CT0xELFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1ib2xkXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgc2hvcnRjdXQ6IFsnQ3RybC1CJywgJ0NtZC1CJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2JvbGQnLCByZXBsYWNlOiAnKiokMSRjdXIqKicsIGNvZGVtaXJyb3IsIGJ1dHRvbiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGl0YWxpYzoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLklUQUxJQyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaXRhbGljXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgc2hvcnRjdXQ6IFsnQ3RybC1JJywgJ0NtZC1JJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2l0YWxpYycsIHJlcGxhY2U6ICdfJDEkY3VyXycsIGNvZGVtaXJyb3IsIGJ1dHRvbiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHN0cmlrZToge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdzdHJpa2UnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlNUUklLRVRIUk9VR0gsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXN0cmlrZXRocm91Z2hcIj48L2k+JyxcbiAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnc3RyaWtlJywgcmVwbGFjZTogJ35+JDEkY3Vyfn4nLCBjb2RlbWlycm9yLCBidXR0b24gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBkZWxpbWl0ZXI6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnZGVsaW1pdGVyJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5TVU1NQVJZX0RFTElNSVRFUixcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtbWludXNcIj48L2k+JyxcbiAgICAgICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZXIoeyBuYW1lOiAnZGVsaW1pdGVyJywgcmVwbGFjZTogYCR7Y29uZmlnLnNpdGUuZGVsaW1pdGVyfSQxYCwgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgbGluazoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdsaW5rJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5MSU5LLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1saW5rXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgc2hvcnRjdXQ6IFsnQ3RybC1LJywgJ0NtZC1LJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2xpbmsnLCByZXBsYWNlOiAnWyQxXSgkY3VyKScsIGNvZGVtaXJyb3IsIGJ1dHRvbiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2ltYWdlJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JTUFHRSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtcGljdHVyZS1vXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2ltYWdlJywgcmVwbGFjZTogJyFbJDFdKCRjdXIpJywgY29kZW1pcnJvciwgYnV0dG9uIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgYmxvY2txdW90ZToge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdibG9ja3F1b3RlJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5CTE9DS1FVT1RFLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1xdW90ZS1yaWdodFwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdibG9ja3F1b3RlJywgcmVwbGFjZTogJz4gJDEnLCBjb2RlbWlycm9yLCBidXR0b24sIG1vZGU6ICdyZXBsYWNlTGluZScgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBsaXN0VWw6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnbGlzdFVsJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VTk9SREVSRURfTElTVCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtbGlzdC11bFwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdsaXN0VWwnLCByZXBsYWNlOiAnKiAkMScsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZTogJ3JlcGxhY2VMaW5lJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGxpc3RPbDoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdsaXN0T2wnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk9SREVSRURfTElTVCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtbGlzdC1vbFwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbGlzdE9sJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2U6ICcuICQxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVtaXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAncmVwbGFjZUxpbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnVubmVyOiBmdW5jdGlvbihsaW5lLCBtYXJrdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGluZU5vID0gY29kZW1pcnJvci5nZXRMaW5lTnVtYmVyKGxpbmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c0xpbmUgPSBjb2RlbWlycm9yLmdldExpbmUobGluZU5vIC0gMSkgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hdGNoID0gcHJldmlvdXNMaW5lLm1hdGNoKC9eKFxcZCspXFwuLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeCA9IDEgKyAobWF0Y2ggPyBOdW1iZXIobWF0Y2hbMV0pIDogMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cHJlZml4fSR7bWFya3VwfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhdGVzOiBbe1xuICAgICAgICBjb2RlOiB7XG4gICAgICAgICAgICBpZGVudGlmaWVyOiAnZWRpdG9yJyxcbiAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkVESVRPUixcbiAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1jb2RlXCI+PC9pPicsXG4gICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhLCB1aSB9KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yLW1vZGUnKSA9PT0gJ2VkaXRvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCdlZGl0b3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnV0dG9uLm9uKCdjbGljay5zdGF0ZXMuZWRpdG9yJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uc2libGluZ3MoKS5yZW1vdmVDbGFzcygnZWRpdG9yLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uYWRkQ2xhc3MoJ2VkaXRvci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItbW9kZScsICdlZGl0b3InKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZpZXdDb250YWluZXIgPSB0ZXh0YXJlYS5kYXRhKCdncmF2LWVkaXRvci1wcmV2aWV3LWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29udGVudCA9IHRleHRhcmVhLnBhcmVudCgnLmdyYXYtZWRpdG9yLWNvbnRlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFkZENsYXNzKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgdWkubmF2aWdhdGlvbi5maW5kKCcuZ3Jhdi1lZGl0b3ItYWN0aW9ucycpLmNzcygndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Q29udGFpbmVyLnJlbW92ZUNsYXNzKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBwcmV2aWV3OiB7XG4gICAgICAgICAgICBpZGVudGlmaWVyOiAncHJldmlldycsXG4gICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5QUkVWSUVXLFxuICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWV5ZVwiPjwvaT4nLFxuICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhLCB1aSB9KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yLW1vZGUnKSA9PT0gJ3ByZXZpZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnZWRpdG9yLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBidXR0b24ub24oJ2NsaWNrLnN0YXRlcy5wcmV2aWV3JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlld0NvbnRhaW5lciA9IHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yLXByZXZpZXctY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb250ZW50ID0gdGV4dGFyZWEucGFyZW50KCcuZ3Jhdi1lZGl0b3ItY29udGVudCcpO1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uc2libGluZ3MoKS5yZW1vdmVDbGFzcygnZWRpdG9yLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uYWRkQ2xhc3MoJ2VkaXRvci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItbW9kZScsICdwcmV2aWV3Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Q29udGFpbmVyID0gJCgnPGRpdiBjbGFzcz1cImdyYXYtZWRpdG9yLXByZXZpZXdcIiAvPicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5hZnRlcihwcmV2aWV3Q29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yLXByZXZpZXctY29udGFpbmVyJywgcHJldmlld0NvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Q29udGFpbmVyLmNzcyh7IGhlaWdodDogY29udGVudC5oZWlnaHQoKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld0NvbnRhaW5lci5hZGRDbGFzcygnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQucmVtb3ZlQ2xhc3MoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB1aS5uYXZpZ2F0aW9uLmZpbmQoJy5ncmF2LWVkaXRvci1hY3Rpb25zJykuY3NzKCd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBgJHt0ZXh0YXJlYS5kYXRhKCdncmF2LXVybHByZXZpZXcnKX0vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1wcm9jZXNzbWFya2Rvd25gO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gdGV4dGFyZWEuY2xvc2VzdCgnZm9ybScpLnNlcmlhbGl6ZUFycmF5KCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBib2R5ID0ge307XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcy5tYXAoKG9iaikgPT4geyBib2R5W29iai5uYW1lXSA9IG9iai52YWx1ZTsgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICAgICAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiBwcmV2aWV3Q29udGFpbmVyLmh0bWwocmVzcG9uc2UucHJldmlldykpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBmdWxsc2NyZWVuOiB7XG4gICAgICAgICAgICBpZGVudGlmaWVyOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GVUxMU0NSRUVOLFxuICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWV4cGFuZFwiPjwvaT4nLFxuICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLm9uKCdjbGljay5lZGl0b3IuZnVsbHNjcmVlbicsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRleHRhcmVhLmNsb3Nlc3QoJy5ncmF2LWVkaXRvcicpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgd3JhcHBlciA9IGNvZGVtaXJyb3IuZ2V0V3JhcHBlckVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnRXcmFwcGVyID0gJCgnLmNvbnRlbnQtd3JhcHBlcicpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyLmhhc0NsYXNzKCdncmF2LWVkaXRvci1mdWxsc2NyZWVuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRhcmVhLmRhdGEoJ2Z1bGxTY3JlZW5SZXN0b3JlJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogZ2xvYmFsLnBhZ2VZT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IGdsb2JhbC5wYWdlWE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd3JhcHBlci5zdHlsZS53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHdyYXBwZXIuc3R5bGUuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS53aWR0aCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYS5wYXJlbnQoJy5ncmF2LWVkaXRvci1jb250ZW50JykuaGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGludHMgPSBjb250YWluZXIuZmluZCgnLmdyYXYtZWRpdG9yLXRvb2xiYXIgLmhpbnQtLXRvcCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGludHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50cy5yZW1vdmVDbGFzcygnaGludC0tdG9wJykuYWRkQ2xhc3MoJ2hpbnQtLWJvdHRvbScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGludHNbaGludHMubGVuZ3RoIC0gMV0pLmFkZENsYXNzKCdoaW50LS1ib3R0b20tbGVmdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRXcmFwcGVyKSB7IGNvbnRlbnRXcmFwcGVyLmNzcygnb3ZlcmZsb3cnLCAndmlzaWJsZScpOyB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RhdGUgPSB0ZXh0YXJlYS5kYXRhKCdmdWxsU2NyZWVuUmVzdG9yZScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnN0eWxlLndpZHRoID0gc3RhdGUud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnN0eWxlLmhlaWdodCA9IHN0YXRlLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC5zY3JvbGxUbyhzdGF0ZS5zY3JvbGxMZWZ0LCBzdGF0ZS5zY3JvbGxUb3ApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGludHMgPSBjb250YWluZXIuZmluZCgnLmdyYXYtZWRpdG9yLXRvb2xiYXIgLmhpbnQtLWJvdHRvbScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGludHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50cy5yZW1vdmVDbGFzcygnaGludC0tYm90dG9tJykuYWRkQ2xhc3MoJ2hpbnQtLXRvcCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGludHNbaGludHMubGVuZ3RoIC0gMV0pLnJlbW92ZUNsYXNzKCdoaW50LS1ib3R0b20tbGVmdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRXcmFwcGVyKSB7IGNvbnRlbnRXcmFwcGVyLmNzcygnb3ZlcmZsb3cnLCAnYXV0bycpOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIudG9nZ2xlQ2xhc3MoJ2dyYXYtZWRpdG9yLWZ1bGxzY3JlZW4nKTtcblxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVtaXJyb3IucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5wcmV2aWV3LnBhcmVudCgpLmNzcygnaGVpZ2h0JywgdGhpcy5jb2RlLmhlaWdodCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoZ2xvYmFsKS50cmlnZ2VyKCdyZXNpemUnKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgNSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwidHJhbnNsYXRpb25zIiwicmVxdWVzdCIsInJlcGxhY2VyIiwibmFtZSIsInJlcGxhY2UiLCJjb2RlbWlycm9yIiwiYnV0dG9uIiwibW9kZSIsInJ1bm5lciIsIm9uIiwic3RyYXRlZ2llcyIsInRva2VuIiwidGVtcGxhdGUiLCJyZXBsYWNlU2VsZWN0aW9ucyIsInJlcGxhY2VtZW50cyIsInJhbmdlcyIsInNlbGVjdGlvbnMiLCJnZXRTZWxlY3Rpb25zIiwibGlzdCIsImxpc3RTZWxlY3Rpb25zIiwiYWNjdW11bGF0b3IiLCJmb3JFYWNoIiwic2VsZWN0aW9uIiwiaW5kZXgiLCJtYXJrdXAiLCJjdXJzb3IiLCJpbmRleE9mIiwiYW5jaG9yIiwibGluZSIsImNoIiwicHVzaCIsImxlbmd0aCIsInJhbmdlIiwiaGVhZCIsInNldFNlbGVjdGlvbnMiLCJmb2N1cyIsInJlcGxhY2VMaW5lIiwibGluZXMiLCJtaW4iLCJNYXRoIiwibWF4IiwiZWFjaExpbmUiLCJoYW5kbGVyIiwidGV4dCIsImdldExpbmVOdW1iZXIiLCJyZXBsYWNlUmFuZ2UiLCJzZXRTZWxlY3Rpb24iLCJmbGlwRGlzYWJsZWQiLCJ0eXBlIiwiaGFzSGlzdG9yeSIsImhpc3RvcnlTaXplIiwiZWxlbWVudCIsImZpbmQiLCJhdHRyIiwicmVtb3ZlQXR0ciIsIm5hdmlnYXRpb24iLCJ1bmRvIiwiaWRlbnRpZmllciIsInRpdGxlIiwiUExVR0lOX0FETUlOIiwiVU5ETyIsImxhYmVsIiwibW9kZXMiLCJhY3Rpb24iLCJ0ZXh0YXJlYSIsImFkZENsYXNzIiwicmVkbyIsIlJFRE8iLCJoZWFkZXJzIiwiSEVBREVSUyIsImNoaWxkcmVuIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiYm9sZCIsIkJPTEQiLCJzaG9ydGN1dCIsIml0YWxpYyIsIklUQUxJQyIsInN0cmlrZSIsIlNUUklLRVRIUk9VR0giLCJkZWxpbWl0ZXIiLCJTVU1NQVJZX0RFTElNSVRFUiIsInNpdGUiLCJsaW5rIiwiTElOSyIsImltYWdlIiwiSU1BR0UiLCJibG9ja3F1b3RlIiwiQkxPQ0tRVU9URSIsImxpc3RVbCIsIlVOT1JERVJFRF9MSVNUIiwibGlzdE9sIiwiT1JERVJFRF9MSVNUIiwibGluZU5vIiwicHJldmlvdXNMaW5lIiwiZ2V0TGluZSIsIm1hdGNoIiwicHJlZml4IiwiTnVtYmVyIiwic3RhdGVzIiwiY29kZSIsIkVESVRPUiIsInVpIiwiZGF0YSIsInNpYmxpbmdzIiwicmVtb3ZlQ2xhc3MiLCJwcmV2aWV3Q29udGFpbmVyIiwiY29udGVudCIsInBhcmVudCIsImNzcyIsInByZXZpZXciLCJQUkVWSUVXIiwiYWZ0ZXIiLCJoZWlnaHQiLCJ1cmwiLCJwYXJhbV9zZXAiLCJwYXJhbXMiLCJjbG9zZXN0Iiwic2VyaWFsaXplQXJyYXkiLCJib2R5IiwibWFwIiwib2JqIiwidmFsdWUiLCJtZXRob2QiLCJyZXNwb25zZSIsImh0bWwiLCJmdWxsc2NyZWVuIiwiRlVMTFNDUkVFTiIsImNvbnRhaW5lciIsIndyYXBwZXIiLCJnZXRXcmFwcGVyRWxlbWVudCIsImNvbnRlbnRXcmFwcGVyIiwiaGFzQ2xhc3MiLCJzY3JvbGxUb3AiLCJnbG9iYWwiLCJwYWdlWU9mZnNldCIsInNjcm9sbExlZnQiLCJwYWdlWE9mZnNldCIsIndpZHRoIiwic3R5bGUiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsIm92ZXJmbG93IiwiaGludHMiLCJzdGF0ZSIsInNjcm9sbFRvIiwidG9nZ2xlQ2xhc3MiLCJzZXRUaW1lb3V0IiwicmVmcmVzaCIsInRyaWdnZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/editor/buttons.js\n");
/***/ }),
/***/ "./app/forms/fields/elements.js":
/*!**************************************!*\
!*** ./app/forms/fields/elements.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[data-grav-elements] select', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var id = target.closest('[data-grav-elements]').data('gravElements');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id^=\\\"\".concat(id, \"_\\\"]\")).css('display', 'none');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(id, \"__\").concat(value, \"\\\"]\")).css('display', 'inherit');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2VsZW1lbnRzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsUUFBZixFQUF5Qiw2QkFBekIsRUFBd0QsVUFBQ0MsS0FBRCxFQUFXO0FBQ2pFLE1BQU1DLE1BQU0sR0FBR0osNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxhQUFQLENBQWhCO0FBQ0EsTUFBTUMsS0FBSyxHQUFHRixNQUFNLENBQUNHLEdBQVAsRUFBZDtBQUNBLE1BQU1DLEVBQUUsR0FBR0osTUFBTSxDQUFDSyxPQUFQLENBQWUsc0JBQWYsRUFBdUNDLElBQXZDLENBQTRDLGNBQTVDLENBQVg7QUFFQVYsRUFBQUEsNkNBQUMsa0JBQVVRLEVBQVYsVUFBRCxDQUFvQkcsR0FBcEIsQ0FBd0IsU0FBeEIsRUFBbUMsTUFBbkM7QUFDQVgsRUFBQUEsNkNBQUMsaUJBQVNRLEVBQVQsZUFBZ0JGLEtBQWhCLFNBQUQsQ0FBNEJLLEdBQTVCLENBQWdDLFNBQWhDLEVBQTJDLFNBQTNDO0FBQ0QsQ0FQRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2VsZW1lbnRzLmpzP2EwZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICdbZGF0YS1ncmF2LWVsZW1lbnRzXSBzZWxlY3QnLCAoZXZlbnQpID0+IHtcbiAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgY29uc3QgdmFsdWUgPSB0YXJnZXQudmFsKCk7XG4gIGNvbnN0IGlkID0gdGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWdyYXYtZWxlbWVudHNdJykuZGF0YSgnZ3JhdkVsZW1lbnRzJyk7XG5cbiAgJChgW2lkXj1cIiR7aWR9X1wiXWApLmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICQoYFtpZD1cIiR7aWR9X18ke3ZhbHVlfVwiXWApLmNzcygnZGlzcGxheScsICdpbmhlcml0Jyk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwidmFsIiwiaWQiLCJjbG9zZXN0IiwiZGF0YSIsImNzcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/elements.js\n");
/***/ }),
/***/ "./app/forms/fields/filepicker.js":
/*!****************************************!*\
!*** ./app/forms/fields/filepicker.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FilePickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n // const insertTextAt = (string, index, text) => [string.slice(0, index), text, string.slice(index)].join('');\n\nvar FilePickerField = /*#__PURE__*/function () {\n function FilePickerField(options) {\n var _this = this;\n\n _classCallCheck(this, FilePickerField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-filepicker]').each(function (index, element) {\n return _this.addItem(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(FilePickerField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-filepicker]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"addItem\",\n value: function addItem(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n this.items = this.items.add(element);\n var tag = element.prop('tagName').toLowerCase();\n var isInput = tag === 'input' || tag === 'select';\n var field = isInput ? element : element.find('input, select');\n var folder = '';\n var thumbs = {};\n var onDemand = field.closest('[data-ondemand]').length > 0;\n\n if (!field.length || field.get(0).selectize) {\n return;\n }\n\n var getData = function getData(field, callback) {\n var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n var url = grav_config__WEBPACK_IMPORTED_MODULE_1__.config.current_url + \".json/task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getFilesInFolder\");\n var parent = field.closest('[data-grav-filepicker]');\n var name = parent.data('name');\n var value = parent.data('value');\n var params = JSON.stringify(grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params || '{}');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n name: name,\n params: params\n }\n }, function (response) {\n if (typeof response.files === 'undefined') {\n return;\n }\n\n var data = [];\n thumbs = response.thumbs || {};\n\n for (var i = 0; i < response.files.length; i++) {\n if (mode === 'selected' && response.files[i] !== value) {\n continue;\n }\n\n data.push({\n 'name': response.files[i],\n 'status': 'available',\n thumb: thumbs[response.files[i]] || ''\n });\n }\n\n for (var _i = 0; _i < response.pending.length; _i++) {\n if (mode === 'selected' && response.pending[_i] !== value) {\n continue;\n }\n\n data.push({\n 'name': response.pending[_i],\n 'status': 'pending',\n thumb: thumbs[response.pending[_i]] || ''\n });\n }\n\n folder = response.folder;\n callback(data, value);\n });\n };\n\n var imagesPreview = field.closest('[data-preview-images]').length > 0;\n var selectedIsRendered = false;\n\n var renderOption = function renderOption(item, escape) {\n var image = '';\n\n if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\\.(jpg|jpeg|png|gif|webp)$/i)) {\n // const fallback2x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@2x');\n // const fallback3x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@3x');\n var source = thumbs[item.name] || \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/../\").concat(folder, \"/\").concat(item.name); // onerror=\"if(this.src==='${fallback2x}'){this.src='${fallback3x}';}else{this.src='${fallback2x}'}\"\n\n image = \"<img class=\\\"filepicker-field-image\\\" src=\\\"\".concat(source, \"\\\" />\");\n }\n\n return \"<div>\\n <span class=\\\"title\\\">\\n \".concat(image, \" <span class=\\\"name filepicker-field-name\\\">\").concat(escape(item.name), \"</span>\\n </span>\\n </div>\");\n };\n\n field.selectize({\n plugins: ['required-fix'],\n valueField: 'name',\n labelField: 'name',\n searchField: 'name',\n optgroups: [{\n $order: 1,\n value: 'pending',\n label: 'Pending'\n }, {\n $order: 2,\n value: 'available',\n label: 'Available'\n }],\n optgroupField: 'status',\n // lockOptgroupOrder: true,\n create: false,\n preload: false,\n // 'focus',\n render: {\n option: function option(item, escape) {\n return renderOption(item, escape);\n },\n item: function item(_item, escape) {\n return renderOption(_item, escape);\n }\n },\n onInitialize: function onInitialize() {\n if (!onDemand) {\n this.load(function (callback) {\n return getData(field, function (data) {\n return callback(data);\n }, 'selected');\n });\n }\n },\n onLoad: function\n /* data */\n onLoad() {\n if (!selectedIsRendered) {\n var name = this.getValue();\n this.updateOption(name, {\n name: name\n });\n selectedIsRendered = true;\n }\n },\n onFocus: function onFocus() {\n this.load(function (callback) {\n return getData(field, function (data) {\n return callback(data);\n });\n });\n }\n });\n }\n }]);\n\n return FilePickerField;\n}();\n\n\nvar Instance = new FilePickerField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2ZpbGVwaWNrZXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7Q0FHQTs7SUFFcUJJO0FBRWpCLDJCQUFZQyxPQUFaLEVBQXFCO0FBQUE7O0FBQUE7O0FBQ2pCLFNBQUtDLEtBQUwsR0FBYU4sNkNBQUMsRUFBZDtBQUNBLFNBQUtLLE9BQUwsR0FBZUUsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLQyxRQUF2QixFQUFpQ0osT0FBakMsQ0FBZjtBQUVBTCxJQUFBQSw2Q0FBQyxDQUFDLHdCQUFELENBQUQsQ0FBNEJVLElBQTVCLENBQWlDLFVBQUNDLEtBQUQsRUFBUUMsT0FBUjtBQUFBLGFBQW9CLEtBQUksQ0FBQ0MsT0FBTCxDQUFhRCxPQUFiLENBQXBCO0FBQUEsS0FBakM7QUFDQVosSUFBQUEsNkNBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVWMsRUFBVixDQUFhLGdCQUFiLEVBQStCLEtBQUtDLGFBQUwsQ0FBbUJDLElBQW5CLENBQXdCLElBQXhCLENBQS9CO0FBQ0g7Ozs7V0FFRCx1QkFBY0MsS0FBZCxFQUFxQkM7QUFBTTtBQUEzQixNQUFxRDtBQUFBOztBQUNqRCxVQUFJQyxNQUFNLEdBQUduQiw2Q0FBQyxDQUFDa0IsTUFBRCxDQUFELENBQVVFLElBQVYsQ0FBZSx3QkFBZixDQUFiOztBQUNBLFVBQUksQ0FBQ0QsTUFBTSxDQUFDRSxNQUFaLEVBQW9CO0FBQUU7QUFBUzs7QUFFL0JGLE1BQUFBLE1BQU0sQ0FBQ1QsSUFBUCxDQUFZLFVBQUNDLEtBQUQsRUFBUVcsS0FBUixFQUFrQjtBQUMxQkEsUUFBQUEsS0FBSyxHQUFHdEIsNkNBQUMsQ0FBQ3NCLEtBQUQsQ0FBVDs7QUFDQSxZQUFJLENBQUMsQ0FBQyxNQUFJLENBQUNoQixLQUFMLENBQVdLLEtBQVgsQ0FBaUJXLEtBQWpCLENBQU4sRUFBK0I7QUFDM0IsZ0JBQUksQ0FBQ1QsT0FBTCxDQUFhUyxLQUFiO0FBQ0g7QUFDSixPQUxEO0FBTUg7OztXQUVELGlCQUFRVixPQUFSLEVBQWlCO0FBQ2JBLE1BQUFBLE9BQU8sR0FBR1osNkNBQUMsQ0FBQ1ksT0FBRCxDQUFYO0FBQ0EsV0FBS04sS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV2lCLEdBQVgsQ0FBZVgsT0FBZixDQUFiO0FBRUEsVUFBSVksR0FBRyxHQUFHWixPQUFPLENBQUNhLElBQVIsQ0FBYSxTQUFiLEVBQXdCQyxXQUF4QixFQUFWO0FBQ0EsVUFBSUMsT0FBTyxHQUFHSCxHQUFHLEtBQUssT0FBUixJQUFtQkEsR0FBRyxLQUFLLFFBQXpDO0FBRUEsVUFBSUYsS0FBSyxHQUFJSyxPQUFPLEdBQUdmLE9BQUgsR0FBYUEsT0FBTyxDQUFDUSxJQUFSLENBQWEsZUFBYixDQUFqQztBQUVBLFVBQUlRLE1BQU0sR0FBRyxFQUFiO0FBQ0EsVUFBSUMsTUFBTSxHQUFHLEVBQWI7QUFFQSxVQUFJQyxRQUFRLEdBQUdSLEtBQUssQ0FBQ1MsT0FBTixDQUFjLGlCQUFkLEVBQWlDVixNQUFqQyxHQUEwQyxDQUF6RDs7QUFFQSxVQUFJLENBQUNDLEtBQUssQ0FBQ0QsTUFBUCxJQUFpQkMsS0FBSyxDQUFDVSxHQUFOLENBQVUsQ0FBVixFQUFhQyxTQUFsQyxFQUE2QztBQUFFO0FBQVM7O0FBRXhELFVBQUlDLE9BQU8sR0FBRyxTQUFTQSxPQUFULENBQWlCWixLQUFqQixFQUF3QmEsUUFBeEIsRUFBZ0Q7QUFBQSxZQUFkQyxJQUFjLHVFQUFQLEtBQU87QUFDMUQsWUFBSUMsR0FBRyxHQUFHcEMsMkRBQUEsdUJBQWtDQSx5REFBbEMscUJBQVY7QUFDQSxZQUFJdUMsTUFBTSxHQUFHbEIsS0FBSyxDQUFDUyxPQUFOLENBQWMsd0JBQWQsQ0FBYjtBQUNBLFlBQUlVLElBQUksR0FBR0QsTUFBTSxDQUFDRSxJQUFQLENBQVksTUFBWixDQUFYO0FBQ0EsWUFBSUMsS0FBSyxHQUFHSCxNQUFNLENBQUNFLElBQVAsQ0FBWSxPQUFaLENBQVo7QUFDQSxZQUFJRSxNQUFNLEdBQUdDLElBQUksQ0FBQ0MsU0FBTCxDQUFlNUMsbURBQVUsSUFBSSxJQUE3QixDQUFiO0FBRUFDLFFBQUFBLDBEQUFPLENBQUNrQyxHQUFELEVBQU07QUFDVFUsVUFBQUEsTUFBTSxFQUFFLE1BREM7QUFFVEMsVUFBQUEsSUFBSSxFQUFFO0FBQUVQLFlBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRRyxZQUFBQSxNQUFNLEVBQU5BO0FBQVI7QUFGRyxTQUFOLEVBR0osVUFBQ0ssUUFBRCxFQUFjO0FBQ2IsY0FBSSxPQUFPQSxRQUFRLENBQUNDLEtBQWhCLEtBQTBCLFdBQTlCLEVBQTJDO0FBQ3ZDO0FBQ0g7O0FBRUQsY0FBSVIsSUFBSSxHQUFHLEVBQVg7QUFDQWIsVUFBQUEsTUFBTSxHQUFHb0IsUUFBUSxDQUFDcEIsTUFBVCxJQUFtQixFQUE1Qjs7QUFFQSxlQUFLLElBQUlzQixDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHRixRQUFRLENBQUNDLEtBQVQsQ0FBZTdCLE1BQW5DLEVBQTJDOEIsQ0FBQyxFQUE1QyxFQUFnRDtBQUM1QyxnQkFBSWYsSUFBSSxLQUFLLFVBQVQsSUFBdUJhLFFBQVEsQ0FBQ0MsS0FBVCxDQUFlQyxDQUFmLE1BQXNCUixLQUFqRCxFQUF3RDtBQUFFO0FBQVc7O0FBQ3JFRCxZQUFBQSxJQUFJLENBQUNVLElBQUwsQ0FBVTtBQUFFLHNCQUFRSCxRQUFRLENBQUNDLEtBQVQsQ0FBZUMsQ0FBZixDQUFWO0FBQTZCLHdCQUFVLFdBQXZDO0FBQW9ERSxjQUFBQSxLQUFLLEVBQUV4QixNQUFNLENBQUNvQixRQUFRLENBQUNDLEtBQVQsQ0FBZUMsQ0FBZixDQUFELENBQU4sSUFBNkI7QUFBeEYsYUFBVjtBQUNIOztBQUVELGVBQUssSUFBSUEsRUFBQyxHQUFHLENBQWIsRUFBZ0JBLEVBQUMsR0FBR0YsUUFBUSxDQUFDSyxPQUFULENBQWlCakMsTUFBckMsRUFBNkM4QixFQUFDLEVBQTlDLEVBQWtEO0FBQzlDLGdCQUFJZixJQUFJLEtBQUssVUFBVCxJQUF1QmEsUUFBUSxDQUFDSyxPQUFULENBQWlCSCxFQUFqQixNQUF3QlIsS0FBbkQsRUFBMEQ7QUFBRTtBQUFXOztBQUN2RUQsWUFBQUEsSUFBSSxDQUFDVSxJQUFMLENBQVU7QUFBRSxzQkFBUUgsUUFBUSxDQUFDSyxPQUFULENBQWlCSCxFQUFqQixDQUFWO0FBQStCLHdCQUFVLFNBQXpDO0FBQW9ERSxjQUFBQSxLQUFLLEVBQUV4QixNQUFNLENBQUNvQixRQUFRLENBQUNLLE9BQVQsQ0FBaUJILEVBQWpCLENBQUQsQ0FBTixJQUErQjtBQUExRixhQUFWO0FBQ0g7O0FBRUR2QixVQUFBQSxNQUFNLEdBQUdxQixRQUFRLENBQUNyQixNQUFsQjtBQUNBTyxVQUFBQSxRQUFRLENBQUNPLElBQUQsRUFBT0MsS0FBUCxDQUFSO0FBQ0gsU0F2Qk0sQ0FBUDtBQXdCSCxPQS9CRDs7QUFpQ0EsVUFBSVksYUFBYSxHQUFHakMsS0FBSyxDQUFDUyxPQUFOLENBQWMsdUJBQWQsRUFBdUNWLE1BQXZDLEdBQWdELENBQXBFO0FBQ0EsVUFBSW1DLGtCQUFrQixHQUFHLEtBQXpCOztBQUVBLFVBQUlDLFlBQVksR0FBRyxTQUFTQSxZQUFULENBQXNCQyxJQUF0QixFQUE0QkMsTUFBNUIsRUFBb0M7QUFDbkQsWUFBSUMsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsWUFBSUwsYUFBYSxJQUFJM0IsTUFBakIsS0FBNEIsQ0FBQzhCLElBQUksQ0FBQ0csTUFBTixJQUFnQkgsSUFBSSxDQUFDRyxNQUFMLEtBQWdCLFdBQTVELEtBQTRFSCxJQUFJLENBQUNqQixJQUFMLENBQVVxQixLQUFWLENBQWdCLDZCQUFoQixDQUFoRixFQUFnSTtBQUM1SDtBQUNBO0FBQ0EsY0FBTUMsTUFBTSxHQUFHbEMsTUFBTSxDQUFDNkIsSUFBSSxDQUFDakIsSUFBTixDQUFOLGNBQXdCeEMsaUVBQXhCLGlCQUF1RDJCLE1BQXZELGNBQWlFOEIsSUFBSSxDQUFDakIsSUFBdEUsQ0FBZixDQUg0SCxDQUs1SDs7QUFDQW1CLFVBQUFBLEtBQUsseURBQStDRyxNQUEvQyxVQUFMO0FBQ0g7O0FBRUQsNEdBRWtCSCxLQUZsQix5REFFb0VELE1BQU0sQ0FBQ0QsSUFBSSxDQUFDakIsSUFBTixDQUYxRTtBQUtILE9BaEJEOztBQWtCQW5CLE1BQUFBLEtBQUssQ0FBQ1csU0FBTixDQUFnQjtBQUNaZ0MsUUFBQUEsT0FBTyxFQUFFLENBQUMsY0FBRCxDQURHO0FBRVpDLFFBQUFBLFVBQVUsRUFBRSxNQUZBO0FBR1pDLFFBQUFBLFVBQVUsRUFBRSxNQUhBO0FBSVpDLFFBQUFBLFdBQVcsRUFBRSxNQUpEO0FBS1pDLFFBQUFBLFNBQVMsRUFBRSxDQUNQO0FBQUNDLFVBQUFBLE1BQU0sRUFBRSxDQUFUO0FBQVkzQixVQUFBQSxLQUFLLEVBQUUsU0FBbkI7QUFBOEI0QixVQUFBQSxLQUFLLEVBQUU7QUFBckMsU0FETyxFQUVQO0FBQUNELFVBQUFBLE1BQU0sRUFBRSxDQUFUO0FBQVkzQixVQUFBQSxLQUFLLEVBQUUsV0FBbkI7QUFBZ0M0QixVQUFBQSxLQUFLLEVBQUU7QUFBdkMsU0FGTyxDQUxDO0FBU1pDLFFBQUFBLGFBQWEsRUFBRSxRQVRIO0FBVVo7QUFDQUMsUUFBQUEsTUFBTSxFQUFFLEtBWEk7QUFZWkMsUUFBQUEsT0FBTyxFQUFFLEtBWkc7QUFZSTtBQUNoQkMsUUFBQUEsTUFBTSxFQUFFO0FBQ0pDLFVBQUFBLE1BQU0sRUFBRSxnQkFBU2xCLElBQVQsRUFBZUMsTUFBZixFQUF1QjtBQUMzQixtQkFBT0YsWUFBWSxDQUFDQyxJQUFELEVBQU9DLE1BQVAsQ0FBbkI7QUFDSCxXQUhHO0FBS0pELFVBQUFBLElBQUksRUFBRSxjQUFTQSxLQUFULEVBQWVDLE1BQWYsRUFBdUI7QUFDekIsbUJBQU9GLFlBQVksQ0FBQ0MsS0FBRCxFQUFPQyxNQUFQLENBQW5CO0FBQ0g7QUFQRyxTQWJJO0FBdUJaa0IsUUFBQUEsWUFBWSxFQUFFLHdCQUFXO0FBQ3JCLGNBQUksQ0FBQy9DLFFBQUwsRUFBZTtBQUNYLGlCQUFLZ0QsSUFBTCxDQUFVLFVBQUMzQyxRQUFEO0FBQUEscUJBQWNELE9BQU8sQ0FBQ1osS0FBRCxFQUFRLFVBQUNvQixJQUFEO0FBQUEsdUJBQVVQLFFBQVEsQ0FBQ08sSUFBRCxDQUFsQjtBQUFBLGVBQVIsRUFBa0MsVUFBbEMsQ0FBckI7QUFBQSxhQUFWO0FBQ0g7QUFDSixTQTNCVztBQTZCWnFDLFFBQUFBLE1BQU0sRUFBRTtBQUFTO0FBQVQsaUJBQXFCO0FBQ3pCLGNBQUksQ0FBQ3ZCLGtCQUFMLEVBQXlCO0FBQ3JCLGdCQUFJZixJQUFJLEdBQUcsS0FBS3VDLFFBQUwsRUFBWDtBQUNBLGlCQUFLQyxZQUFMLENBQWtCeEMsSUFBbEIsRUFBd0I7QUFBRUEsY0FBQUEsSUFBSSxFQUFKQTtBQUFGLGFBQXhCO0FBRUFlLFlBQUFBLGtCQUFrQixHQUFHLElBQXJCO0FBQ0g7QUFDSixTQXBDVztBQXNDWjBCLFFBQUFBLE9BQU8sRUFBRSxtQkFBVztBQUNoQixlQUFLSixJQUFMLENBQVUsVUFBQzNDLFFBQUQ7QUFBQSxtQkFBY0QsT0FBTyxDQUFDWixLQUFELEVBQVEsVUFBQ29CLElBQUQ7QUFBQSxxQkFBVVAsUUFBUSxDQUFDTyxJQUFELENBQWxCO0FBQUEsYUFBUixDQUFyQjtBQUFBLFdBQVY7QUFDSDtBQXhDVyxPQUFoQjtBQTBDSDs7Ozs7OztBQUdFLElBQUl5QyxRQUFRLEdBQUcsSUFBSS9FLGVBQUosRUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2ZpbGVwaWNrZXIuanM/NzEzZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB1cmlfcGFyYW1zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdCc7XG5cbi8vIGNvbnN0IGluc2VydFRleHRBdCA9IChzdHJpbmcsIGluZGV4LCB0ZXh0KSA9PiBbc3RyaW5nLnNsaWNlKDAsIGluZGV4KSwgdGV4dCwgc3RyaW5nLnNsaWNlKGluZGV4KV0uam9pbignJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVQaWNrZXJGaWVsZCB7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmlsZXBpY2tlcl0nKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4gdGhpcy5hZGRJdGVtKGVsZW1lbnQpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBfb25BZGRlZE5vZGVzKGV2ZW50LCB0YXJnZXQvKiAsIHJlY29yZCwgaW5zdGFuY2UgKi8pIHtcbiAgICAgICAgbGV0IGZpZWxkcyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS1ncmF2LWZpbGVwaWNrZXJdJyk7XG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmFkZChlbGVtZW50KTtcblxuICAgICAgICBsZXQgdGFnID0gZWxlbWVudC5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgbGV0IGlzSW5wdXQgPSB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JztcblxuICAgICAgICBsZXQgZmllbGQgPSAoaXNJbnB1dCA/IGVsZW1lbnQgOiBlbGVtZW50LmZpbmQoJ2lucHV0LCBzZWxlY3QnKSk7XG5cbiAgICAgICAgbGV0IGZvbGRlciA9ICcnO1xuICAgICAgICBsZXQgdGh1bWJzID0ge307XG5cbiAgICAgICAgbGV0IG9uRGVtYW5kID0gZmllbGQuY2xvc2VzdCgnW2RhdGEtb25kZW1hbmRdJykubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoIWZpZWxkLmxlbmd0aCB8fCBmaWVsZC5nZXQoMCkuc2VsZWN0aXplKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBnZXREYXRhID0gZnVuY3Rpb24gZ2V0RGF0YShmaWVsZCwgY2FsbGJhY2ssIG1vZGUgPSAnYWxsJykge1xuICAgICAgICAgICAgbGV0IHVybCA9IGNvbmZpZy5jdXJyZW50X3VybCArIGAuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldEZpbGVzSW5Gb2xkZXJgO1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGZpZWxkLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtZmlsZXBpY2tlcl0nKTtcbiAgICAgICAgICAgIGxldCBuYW1lID0gcGFyZW50LmRhdGEoJ25hbWUnKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHBhcmVudC5kYXRhKCd2YWx1ZScpO1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHVyaV9wYXJhbXMgfHwgJ3t9Jyk7XG5cbiAgICAgICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICAgICAgYm9keTogeyBuYW1lLCBwYXJhbXMgfVxuICAgICAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZS5maWxlcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gW107XG4gICAgICAgICAgICAgICAgdGh1bWJzID0gcmVzcG9uc2UudGh1bWJzIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZS5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3NlbGVjdGVkJyAmJiByZXNwb25zZS5maWxlc1tpXSAhPT0gdmFsdWUpIHsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsgJ25hbWUnOiByZXNwb25zZS5maWxlc1tpXSwgJ3N0YXR1cyc6ICdhdmFpbGFibGUnLCB0aHVtYjogdGh1bWJzW3Jlc3BvbnNlLmZpbGVzW2ldXSB8fCAnJyB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlLnBlbmRpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdzZWxlY3RlZCcgJiYgcmVzcG9uc2UucGVuZGluZ1tpXSAhPT0gdmFsdWUpIHsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsgJ25hbWUnOiByZXNwb25zZS5wZW5kaW5nW2ldLCAnc3RhdHVzJzogJ3BlbmRpbmcnLCB0aHVtYjogdGh1bWJzW3Jlc3BvbnNlLnBlbmRpbmdbaV1dIHx8ICcnIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvbGRlciA9IHJlc3BvbnNlLmZvbGRlcjtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhkYXRhLCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgaW1hZ2VzUHJldmlldyA9IGZpZWxkLmNsb3Nlc3QoJ1tkYXRhLXByZXZpZXctaW1hZ2VzXScpLmxlbmd0aCA+IDA7XG4gICAgICAgIGxldCBzZWxlY3RlZElzUmVuZGVyZWQgPSBmYWxzZTtcblxuICAgICAgICBsZXQgcmVuZGVyT3B0aW9uID0gZnVuY3Rpb24gcmVuZGVyT3B0aW9uKGl0ZW0sIGVzY2FwZSkge1xuICAgICAgICAgICAgbGV0IGltYWdlID0gJyc7XG4gICAgICAgICAgICBpZiAoaW1hZ2VzUHJldmlldyAmJiBmb2xkZXIgJiYgKCFpdGVtLnN0YXR1cyB8fCBpdGVtLnN0YXR1cyA9PT0gJ2F2YWlsYWJsZScpICYmIGl0ZW0ubmFtZS5tYXRjaCgvXFwuKGpwZ3xqcGVnfHBuZ3xnaWZ8d2VicCkkL2kpKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgZmFsbGJhY2syeCA9IGluc2VydFRleHRBdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9Ly4uLyR7Zm9sZGVyfS8ke2l0ZW0ubmFtZX1gLCAtNCwgJ0AyeCcpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGZhbGxiYWNrM3ggPSBpbnNlcnRUZXh0QXQoYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8uLi8ke2ZvbGRlcn0vJHtpdGVtLm5hbWV9YCwgLTQsICdAM3gnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB0aHVtYnNbaXRlbS5uYW1lXSB8fCBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9Ly4uLyR7Zm9sZGVyfS8ke2l0ZW0ubmFtZX1gO1xuXG4gICAgICAgICAgICAgICAgLy8gb25lcnJvcj1cImlmKHRoaXMuc3JjPT09JyR7ZmFsbGJhY2syeH0nKXt0aGlzLnNyYz0nJHtmYWxsYmFjazN4fSc7fWVsc2V7dGhpcy5zcmM9JyR7ZmFsbGJhY2syeH0nfVwiXG4gICAgICAgICAgICAgICAgaW1hZ2UgPSBgPGltZyBjbGFzcz1cImZpbGVwaWNrZXItZmllbGQtaW1hZ2VcIiBzcmM9XCIke3NvdXJjZX1cIiAvPmA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2ltYWdlfSA8c3BhbiBjbGFzcz1cIm5hbWUgZmlsZXBpY2tlci1maWVsZC1uYW1lXCI+JHtlc2NhcGUoaXRlbS5uYW1lKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH07XG5cbiAgICAgICAgZmllbGQuc2VsZWN0aXplKHtcbiAgICAgICAgICAgIHBsdWdpbnM6IFsncmVxdWlyZWQtZml4J10sXG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICBsYWJlbEZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICBzZWFyY2hGaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgb3B0Z3JvdXBzOiBbXG4gICAgICAgICAgICAgICAgeyRvcmRlcjogMSwgdmFsdWU6ICdwZW5kaW5nJywgbGFiZWw6ICdQZW5kaW5nJ30sXG4gICAgICAgICAgICAgICAgeyRvcmRlcjogMiwgdmFsdWU6ICdhdmFpbGFibGUnLCBsYWJlbDogJ0F2YWlsYWJsZSd9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgb3B0Z3JvdXBGaWVsZDogJ3N0YXR1cycsXG4gICAgICAgICAgICAvLyBsb2NrT3B0Z3JvdXBPcmRlcjogdHJ1ZSxcbiAgICAgICAgICAgIGNyZWF0ZTogZmFsc2UsXG4gICAgICAgICAgICBwcmVsb2FkOiBmYWxzZSwgLy8gJ2ZvY3VzJyxcbiAgICAgICAgICAgIHJlbmRlcjoge1xuICAgICAgICAgICAgICAgIG9wdGlvbjogZnVuY3Rpb24oaXRlbSwgZXNjYXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJPcHRpb24oaXRlbSwgZXNjYXBlKTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaXRlbTogZnVuY3Rpb24oaXRlbSwgZXNjYXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJPcHRpb24oaXRlbSwgZXNjYXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBvbkluaXRpYWxpemU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICghb25EZW1hbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKChjYWxsYmFjaykgPT4gZ2V0RGF0YShmaWVsZCwgKGRhdGEpID0+IGNhbGxiYWNrKGRhdGEpLCAnc2VsZWN0ZWQnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgb25Mb2FkOiBmdW5jdGlvbigvKiBkYXRhICovKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzZWxlY3RlZElzUmVuZGVyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9uKG5hbWUsIHsgbmFtZSB9KTtcblxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElzUmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG9uRm9jdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZCgoY2FsbGJhY2spID0+IGdldERhdGEoZmllbGQsIChkYXRhKSA9PiBjYWxsYmFjayhkYXRhKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRmlsZVBpY2tlckZpZWxkKCk7XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInVyaV9wYXJhbXMiLCJyZXF1ZXN0IiwiRmlsZVBpY2tlckZpZWxkIiwib3B0aW9ucyIsIml0ZW1zIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdHMiLCJlYWNoIiwiaW5kZXgiLCJlbGVtZW50IiwiYWRkSXRlbSIsIm9uIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJldmVudCIsInRhcmdldCIsImZpZWxkcyIsImZpbmQiLCJsZW5ndGgiLCJmaWVsZCIsImFkZCIsInRhZyIsInByb3AiLCJ0b0xvd2VyQ2FzZSIsImlzSW5wdXQiLCJmb2xkZXIiLCJ0aHVtYnMiLCJvbkRlbWFuZCIsImNsb3Nlc3QiLCJnZXQiLCJzZWxlY3RpemUiLCJnZXREYXRhIiwiY2FsbGJhY2siLCJtb2RlIiwidXJsIiwiY3VycmVudF91cmwiLCJwYXJhbV9zZXAiLCJwYXJlbnQiLCJuYW1lIiwiZGF0YSIsInZhbHVlIiwicGFyYW1zIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsImZpbGVzIiwiaSIsInB1c2giLCJ0aHVtYiIsInBlbmRpbmciLCJpbWFnZXNQcmV2aWV3Iiwic2VsZWN0ZWRJc1JlbmRlcmVkIiwicmVuZGVyT3B0aW9uIiwiaXRlbSIsImVzY2FwZSIsImltYWdlIiwic3RhdHVzIiwibWF0Y2giLCJzb3VyY2UiLCJiYXNlX3VybF9yZWxhdGl2ZSIsInBsdWdpbnMiLCJ2YWx1ZUZpZWxkIiwibGFiZWxGaWVsZCIsInNlYXJjaEZpZWxkIiwib3B0Z3JvdXBzIiwiJG9yZGVyIiwibGFiZWwiLCJvcHRncm91cEZpZWxkIiwiY3JlYXRlIiwicHJlbG9hZCIsInJlbmRlciIsIm9wdGlvbiIsIm9uSW5pdGlhbGl6ZSIsImxvYWQiLCJvbkxvYWQiLCJnZXRWYWx1ZSIsInVwZGF0ZU9wdGlvbiIsIm9uRm9jdXMiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/filepicker.js\n");
/***/ }),
/***/ "./app/forms/fields/files.js":
/*!***********************************!*\
!*** ./app/forms/fields/files.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FilesField),\n/* harmony export */ \"UriToMarkdown\": () => (/* binding */ UriToMarkdown),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dropzone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dropzone */ \"./node_modules/dropzone/dist/dropzone.js\");\n/* harmony import */ var dropzone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dropzone__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n // import EXIF from 'exif-js';\n\n\n // translations\n\nvar Dictionary = {\n dictCancelUpload: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD,\n dictCancelUploadConfirmation: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD_CONFIRMATION,\n dictDefaultMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_DEFAULT_MESSAGE,\n dictFallbackMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_MESSAGE,\n dictFallbackText: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_TEXT,\n dictFileTooBig: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FILE_TOO_BIG,\n dictInvalidFileType: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_INVALID_FILE_TYPE,\n dictMaxFilesExceeded: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_MAX_FILES_EXCEEDED,\n dictRemoveFile: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_REMOVE_FILE,\n dictResponseError: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_RESPONSE_ERROR\n};\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().autoDiscover) = false;\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().options.gravPageDropzone) = {};\n\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().confirm) = function (question, accepted, rejected) {\n var doc = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n var modalSelector = '[data-remodal-id=\"delete-media\"]';\n\n var removeEvents = function removeEvents() {\n doc.off('confirmation', modalSelector, accept);\n doc.off('cancellation', modalSelector, reject);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(modalSelector).find('.remodal-confirm').removeClass('pointer-events-disabled');\n };\n\n var accept = function accept() {\n accepted && accepted();\n removeEvents();\n };\n\n var reject = function reject() {\n rejected && rejected();\n removeEvents();\n };\n\n (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()(modalSelector).data('remodal')].open();\n doc.on('confirmation', modalSelector, accept);\n doc.on('cancellation', modalSelector, reject);\n};\n\nvar DropzoneMediaConfig = {\n timeout: 0,\n thumbnailWidth: 200,\n thumbnailHeight: 150,\n addRemoveLinks: false,\n dictDefaultMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROP_FILES_HERE_TO_UPLOAD.replace(/&lt;/g, '<').replace(/&gt;/g, '>'),\n dictRemoveFileConfirmation: '[placeholder]',\n previewTemplate: \"\\n <div class=\\\"dz-preview dz-file-preview dz-no-editor\\\">\\n <div class=\\\"dz-details\\\">\\n <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n <div class=\\\"dz-size\\\" data-dz-size></div>\\n <img data-dz-thumbnail />\\n </div>\\n <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n <div class=\\\"dz-success-mark\\\"><span>\\u2714</span></div>\\n <div class=\\\"dz-error-mark\\\"><span>\\u2718</span></div>\\n <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n <a class=\\\"dz-unset\\\" title=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.UNSET, \"\\\" href=\\\"#\\\" data-dz-unset>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.UNSET, \"</a>\\n <a class=\\\"dz-remove\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"</a>\\n <a class=\\\"dz-metadata\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-metadata>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"</a>\\n <a class=\\\"dz-view\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-view>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"</a>\\n </div>\").trim()\n}; // global.EXIF = EXIF;\n\nvar ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) {\n var resolution = settings.resolution;\n if (!resolution) return done();\n var reader = new FileReader();\n var error = '';\n var hasMin = resolution.min && (resolution.min.width || resolution.min.height);\n var hasMax = resolution.max && (resolution.max.width || resolution.max.height);\n\n if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) {\n reader.onload = function (event) {\n var image = new Image();\n image.src = event.target.result;\n\n image.onerror = function () {\n done(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD);\n };\n\n image.onload = function () {\n var _this = this;\n\n if (resolution.min) {\n Object.keys(resolution.min).forEach(function (attr) {\n if (resolution.min[attr] && _this[attr] < resolution.min[attr]) {\n error += grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_FORM.RESOLUTION_MIN.replace(/{{attr}}/g, attr).replace(/{{min}}/g, resolution.min[attr]);\n }\n });\n }\n\n if (!(settings.resizeWidth || settings.resizeHeight)) {\n if (resolution.max) {\n Object.keys(resolution.max).forEach(function (attr) {\n if (resolution.max[attr] && _this[attr] > resolution.max[attr]) {\n error += grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_FORM.RESOLUTION_MAX.replace(/{{attr}}/g, attr).replace(/{{max}}/g, resolution.max[attr]);\n }\n });\n }\n }\n\n URL.revokeObjectURL(image.src); // release memory\n\n return error ? done(error) : done();\n };\n };\n\n reader.readAsDataURL(file);\n } else {\n return error ? done(error) : done();\n }\n};\n\nvar FilesField = /*#__PURE__*/function () {\n function FilesField() {\n var _this2 = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? '.dropzone.files-upload' : _ref$container,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n _classCallCheck(this, FilesField);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (!this.container.length) {\n return;\n }\n\n this.urls = {};\n this.customPost = this.container.data('filePostAdd') || {};\n this.options = Object.assign({}, Dictionary, DropzoneMediaConfig, {\n klass: this,\n url: this.container.data('file-url-add') || grav_config__WEBPACK_IMPORTED_MODULE_3__.config.current_url,\n acceptedFiles: this.container.data('media-types'),\n init: this.initDropzone\n }, this.container.data('dropzone-options'), options);\n this.options = Object.assign({}, this.options, {\n accept: function accept(file, done) {\n ACCEPT_FUNC(file, done, this.options);\n }\n });\n this.dropzone = new (dropzone__WEBPACK_IMPORTED_MODULE_1___default())(container, this.options);\n this.dropzone.on('complete', this.onDropzoneComplete.bind(this));\n this.dropzone.on('success', this.onDropzoneSuccess.bind(this));\n this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this));\n this.dropzone.on('sending', this.onDropzoneSending.bind(this));\n this.dropzone.on('error', this.onDropzoneError.bind(this));\n this.container.on('mouseenter', '[data-dz-view]', function (e) {\n var value = JSON.parse(_this2.container.find('[name][type=\"hidden\"]').val() || '{}');\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var URL = Object.keys(value).filter(function (key) {\n return value[key].name === filename;\n }).shift();\n target.attr('href', \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_simple, \"/\").concat(URL));\n });\n }\n\n _createClass(FilesField, [{\n key: \"initDropzone\",\n value: function initDropzone() {\n var _this3 = this;\n\n var files = this.options.klass.container.find('[data-file]');\n var dropzone = this;\n\n if (!files.length) {\n return;\n }\n\n files.each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n var data = file.data('file');\n var mock = {\n name: data.name,\n size: data.size,\n type: data.type,\n status: (dropzone__WEBPACK_IMPORTED_MODULE_1___default().ADDED),\n accepted: true,\n url: _this3.options.url,\n removeUrl: data.remove\n };\n dropzone.files.push(mock);\n dropzone.options.addedfile.call(dropzone, mock);\n\n if (mock.type.match(/^image\\//)) {\n dropzone.options.thumbnail.call(dropzone, mock, data.path);\n dropzone.createThumbnailFromUrl(mock, data.path);\n }\n\n file.remove();\n });\n }\n }, {\n key: \"getURI\",\n value: function getURI() {\n return this.container.data('mediaUri') || '';\n }\n }, {\n key: \"onDropzoneSending\",\n value: function onDropzoneSending(file, xhr, formData) {\n var _this4 = this;\n\n if (Object.keys(this.customPost).length) {\n Object.keys(this.customPost).forEach(function (key) {\n formData.append(key, _this4.customPost[key]);\n });\n } else {\n formData.append('name', this.options.dotNotation);\n formData.append('task', 'filesupload');\n formData.append('uri', this.getURI());\n }\n\n formData.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce);\n }\n }, {\n key: \"onDropzoneSuccess\",\n value: function onDropzoneSuccess(file, response, xhr) {\n response = typeof response === 'string' ? JSON.parse(response) : response;\n\n if (this.options.reloadPage) {\n __webpack_require__.g.location.reload();\n } // store params for removing file from session before it gets saved\n\n\n if (response.session) {\n file.sessionParams = response.session;\n file.removeUrl = this.options.url; // Touch field value to force a mutation detection\n\n var input = this.container.find('[name][type=\"hidden\"]');\n var value = input.val();\n input.val(value + ' ');\n }\n\n return this.handleError({\n file: file,\n data: response,\n mode: 'removeFile',\n msg: \"<p>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD, \" <strong>\").concat(file.name, \"</strong></p>\\n <pre>\").concat(response.message, \"</pre>\")\n });\n }\n }, {\n key: \"onDropzoneComplete\",\n value: function onDropzoneComplete(file) {\n if (!file.accepted && !file.rejected) {\n var data = {\n status: 'error',\n message: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_UNSUPPORTED, \": \").concat(file.name.match(/\\..+/).join(''))\n };\n return this.handleError({\n file: file,\n data: data,\n mode: 'removeFile',\n msg: \"<p>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_ADD, \" <strong>\").concat(file.name, \"</strong></p>\\n <pre>\").concat(data.message, \"</pre>\")\n });\n }\n\n if (this.options.reloadPage) {\n __webpack_require__.g.location.reload();\n }\n }\n }, {\n key: \"b64_to_utf8\",\n value: function b64_to_utf8(str) {\n str = str.replace(/\\s/g, '');\n return decodeURIComponent(escape(window.atob(str)));\n }\n }, {\n key: \"onDropzoneRemovedFile\",\n value: function onDropzoneRemovedFile(file) {\n var _this5 = this;\n\n if (!file.accepted || file.rejected) {\n return;\n }\n\n var url = file.removeUrl || this.urls[\"delete\"] || this.options.url;\n var path = (url || '').match(/path:(.*)\\//);\n var body = {\n filename: file.name,\n uri: this.getURI()\n };\n\n if (file.sessionParams) {\n body.task = 'filessessionremove';\n body.session = file.sessionParams;\n }\n\n var customPost = this.container.data('filePostRemove') || {};\n\n if (Object.keys(customPost).length) {\n body = {};\n Object.keys(customPost).forEach(function (key) {\n body[key] = customPost[key];\n });\n }\n\n body['filename'] = file.name;\n body['admin-nonce'] = grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce;\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: body\n }, function () {\n if (!path) {\n return;\n }\n\n path = _this5.b64_to_utf8(path[1]);\n\n var input = _this5.container.find('[name][type=\"hidden\"]');\n\n var data = JSON.parse(input.val() || '{}');\n delete data[path];\n input.val(JSON.stringify(data));\n });\n }\n }, {\n key: \"onDropzoneError\",\n value: function onDropzoneError(file, response, xhr) {\n var message = xhr ? response.error.message : response;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(file.previewElement).find('[data-dz-errormessage]').html(message);\n return this.handleError({\n file: file,\n data: {\n status: 'error'\n },\n msg: \"<pre>\".concat(message, \"</pre>\")\n });\n }\n }, {\n key: \"handleError\",\n value: function handleError(options) {\n var file = options.file,\n data = options.data,\n mode = options.mode,\n msg = options.msg;\n\n if (data.status !== 'error' && data.status !== 'unauthorized') {\n return;\n }\n\n switch (mode) {\n case 'addBack':\n if (file instanceof File) {\n this.dropzone.addFile.call(this.dropzone, file);\n } else {\n this.dropzone.files.push(file);\n this.dropzone.options.addedfile.call(this.dropzone, file);\n this.dropzone.options.thumbnail.call(this.dropzone, file, file.extras.url);\n }\n\n break;\n\n case 'removeFile':\n default:\n if (~this.dropzone.files.indexOf(file)) {\n file.rejected = true;\n this.dropzone.removeFile.call(this.dropzone, file, {\n silent: true\n });\n }\n\n break;\n }\n\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"generic\"]');\n modal.find('.error-content').html(msg);\n (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal.data('remodal')].open();\n }\n }]);\n\n return FilesField;\n}();\n\n\nfunction UriToMarkdown(uri) {\n uri = uri.replace(/@3x|@2x|@1x/, '');\n uri = uri.replace(/\\(/g, '%28');\n uri = uri.replace(/\\)/g, '%29');\n var title = uri.split('.').slice(0, -1).join('.');\n return uri.match(/\\.(jpe?g|png|gif|svg|webp|mp4|webm|ogv|mov)$/i) ? \"![\".concat(title, \"](\").concat(uri, \" \\\"\").concat(title, \"\\\")\") : \"[\".concat(decodeURI(uri), \"](\").concat(uri, \")\");\n}\nvar instances = [];\nvar cache = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n\nvar onAddedNodes = function onAddedNodes(event, target\n/* , record, instance */\n) {\n var files = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('.dropzone.files-upload');\n\n if (!files.length) {\n return;\n }\n\n files.each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n\n if (!~cache.index(file)) {\n addNode(file);\n }\n });\n};\n\nvar addNode = function addNode(container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n var input = container.find('input[type=\"file\"]');\n var settings = container.data('grav-file-settings') || {};\n\n if (settings.accept && ~settings.accept.indexOf('*')) {\n settings.accept = [''];\n }\n\n var options = {\n url: container.data('file-url-add') || (container.closest('form').attr('action') || grav_config__WEBPACK_IMPORTED_MODULE_3__.config.current_url) + '.json',\n paramName: settings.paramName || 'file',\n dotNotation: settings.name || 'file',\n acceptedFiles: settings.accept ? settings.accept.join(',') : input.attr('accept') || container.data('media-types'),\n maxFilesize: typeof settings.filesize !== 'undefined' ? settings.filesize : 256,\n maxFiles: settings.limit || null,\n resizeWidth: settings.resizeWidth || null,\n resizeHeight: settings.resizeHeight || null,\n resizeQuality: settings.resizeQuality || null,\n resolution: settings.resolution || null,\n accept: function accept(file, done) {\n ACCEPT_FUNC(file, done, settings);\n }\n };\n cache = cache.add(container);\n container = container[0];\n instances.push(new FilesField({\n container: container,\n options: options\n }));\n};\n\nvar Instance = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone.files-upload').each(function (i, container) {\n return addNode(container);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', onAddedNodes);\n return instances;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBV1YzQixJQUFBQSxNQUFNLEVBQUUsZ0JBQVN3QixJQUFULEVBQWVDLElBQWYsRUFBcUI7QUFBRUYsTUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU9DLElBQVAsRUFBYUMsUUFBYixDQUFYO0FBQW9DO0FBWHpELEdBQWQ7QUFjQWtJLEVBQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDVSxHQUFOLENBQVUzRyxTQUFWLENBQVI7QUFDQUEsRUFBQUEsU0FBUyxHQUFHQSxTQUFTLENBQUMsQ0FBRCxDQUFyQjtBQUNBZ0csRUFBQUEsU0FBUyxDQUFDckQsSUFBVixDQUFlLElBQUk1QyxVQUFKLENBQWU7QUFBRUMsSUFBQUEsU0FBUyxFQUFUQSxTQUFGO0FBQWF0RSxJQUFBQSxPQUFPLEVBQVBBO0FBQWIsR0FBZixDQUFmO0FBQ0gsQ0ExQkQ7O0FBNEJPLElBQUlrTCxRQUFRLEdBQUksWUFBTTtBQUN6QjlNLEVBQUFBLDZDQUFDLENBQUMsd0JBQUQsQ0FBRCxDQUE0Qm9JLElBQTVCLENBQWlDLFVBQUMyRSxDQUFELEVBQUk3RyxTQUFKO0FBQUEsV0FBa0JtRyxPQUFPLENBQUNuRyxTQUFELENBQXpCO0FBQUEsR0FBakM7QUFDQWxHLEVBQUFBLDZDQUFDLENBQUMsTUFBRCxDQUFELENBQVUrQyxFQUFWLENBQWEsZ0JBQWIsRUFBK0JxSixZQUEvQjtBQUVBLFNBQU9GLFNBQVA7QUFDSCxDQUxxQixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9maWVsZHMvZmlsZXMuanM/NjE3OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IERyb3B6b25lIGZyb20gJ2Ryb3B6b25lJztcbi8vIGltcG9ydCBFWElGIGZyb20gJ2V4aWYtanMnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBjb25maWcsIHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxuLy8gdHJhbnNsYXRpb25zXG5jb25zdCBEaWN0aW9uYXJ5ID0ge1xuICAgIGRpY3RDYW5jZWxVcGxvYWQ6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRFJPUFpPTkVfQ0FOQ0VMX1VQTE9BRCxcbiAgICBkaWN0Q2FuY2VsVXBsb2FkQ29uZmlybWF0aW9uOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX0NBTkNFTF9VUExPQURfQ09ORklSTUFUSU9OLFxuICAgIGRpY3REZWZhdWx0TWVzc2FnZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9ERUZBVUxUX01FU1NBR0UsXG4gICAgZGljdEZhbGxiYWNrTWVzc2FnZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9GQUxMQkFDS19NRVNTQUdFLFxuICAgIGRpY3RGYWxsYmFja1RleHQ6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRFJPUFpPTkVfRkFMTEJBQ0tfVEVYVCxcbiAgICBkaWN0RmlsZVRvb0JpZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9GSUxFX1RPT19CSUcsXG4gICAgZGljdEludmFsaWRGaWxlVHlwZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9JTlZBTElEX0ZJTEVfVFlQRSxcbiAgICBkaWN0TWF4RmlsZXNFeGNlZWRlZDogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9NQVhfRklMRVNfRVhDRUVERUQsXG4gICAgZGljdFJlbW92ZUZpbGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRFJPUFpPTkVfUkVNT1ZFX0ZJTEUsXG4gICAgZGljdFJlc3BvbnNlRXJyb3I6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRFJPUFpPTkVfUkVTUE9OU0VfRVJST1Jcbn07XG5cbkRyb3B6b25lLmF1dG9EaXNjb3ZlciA9IGZhbHNlO1xuRHJvcHpvbmUub3B0aW9ucy5ncmF2UGFnZURyb3B6b25lID0ge307XG5Ecm9wem9uZS5jb25maXJtID0gKHF1ZXN0aW9uLCBhY2NlcHRlZCwgcmVqZWN0ZWQpID0+IHtcbiAgICBsZXQgZG9jID0gJChkb2N1bWVudCk7XG4gICAgbGV0IG1vZGFsU2VsZWN0b3IgPSAnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZS1tZWRpYVwiXSc7XG5cbiAgICBsZXQgcmVtb3ZlRXZlbnRzID0gKCkgPT4ge1xuICAgICAgICBkb2Mub2ZmKCdjb25maXJtYXRpb24nLCBtb2RhbFNlbGVjdG9yLCBhY2NlcHQpO1xuICAgICAgICBkb2Mub2ZmKCdjYW5jZWxsYXRpb24nLCBtb2RhbFNlbGVjdG9yLCByZWplY3QpO1xuXG4gICAgICAgICQobW9kYWxTZWxlY3RvcikuZmluZCgnLnJlbW9kYWwtY29uZmlybScpLnJlbW92ZUNsYXNzKCdwb2ludGVyLWV2ZW50cy1kaXNhYmxlZCcpO1xuICAgIH07XG5cbiAgICBsZXQgYWNjZXB0ID0gKCkgPT4ge1xuICAgICAgICBhY2NlcHRlZCAmJiBhY2NlcHRlZCgpO1xuICAgICAgICByZW1vdmVFdmVudHMoKTtcbiAgICB9O1xuXG4gICAgbGV0IHJlamVjdCA9ICgpID0+IHtcbiAgICAgICAgcmVqZWN0ZWQgJiYgcmVqZWN0ZWQoKTtcbiAgICAgICAgcmVtb3ZlRXZlbnRzKCk7XG4gICAgfTtcblxuICAgICQucmVtb2RhbC5sb29rdXBbJChtb2RhbFNlbGVjdG9yKS5kYXRhKCdyZW1vZGFsJyldLm9wZW4oKTtcbiAgICBkb2Mub24oJ2NvbmZpcm1hdGlvbicsIG1vZGFsU2VsZWN0b3IsIGFjY2VwdCk7XG4gICAgZG9jLm9uKCdjYW5jZWxsYXRpb24nLCBtb2RhbFNlbGVjdG9yLCByZWplY3QpO1xufTtcblxuY29uc3QgRHJvcHpvbmVNZWRpYUNvbmZpZyA9IHtcbiAgICB0aW1lb3V0OiAwLFxuICAgIHRodW1ibmFpbFdpZHRoOiAyMDAsXG4gICAgdGh1bWJuYWlsSGVpZ2h0OiAxNTAsXG4gICAgYWRkUmVtb3ZlTGlua3M6IGZhbHNlLFxuICAgIGRpY3REZWZhdWx0TWVzc2FnZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QX0ZJTEVTX0hFUkVfVE9fVVBMT0FELnJlcGxhY2UoLyZsdDsvZywgJzwnKS5yZXBsYWNlKC8mZ3Q7L2csICc+JyksXG4gICAgZGljdFJlbW92ZUZpbGVDb25maXJtYXRpb246ICdbcGxhY2Vob2xkZXJdJyxcbiAgICBwcmV2aWV3VGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LXByZXZpZXcgZHotZmlsZS1wcmV2aWV3IGR6LW5vLWVkaXRvclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkei1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHotZmlsZW5hbWVcIj48c3BhbiBkYXRhLWR6LW5hbWU+PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR6LXNpemVcIiBkYXRhLWR6LXNpemU+PC9kaXY+XG4gICAgICAgICAgICA8aW1nIGRhdGEtZHotdGh1bWJuYWlsIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImR6LXByb2dyZXNzXCI+PHNwYW4gY2xhc3M9XCJkei11cGxvYWRcIiBkYXRhLWR6LXVwbG9hZHByb2dyZXNzPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHotc3VjY2Vzcy1tYXJrXCI+PHNwYW4+4pyUPC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkei1lcnJvci1tYXJrXCI+PHNwYW4+4pyYPC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkei1lcnJvci1tZXNzYWdlXCI+PHNwYW4gZGF0YS1kei1lcnJvcm1lc3NhZ2U+PC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDxhIGNsYXNzPVwiZHotdW5zZXRcIiB0aXRsZT1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VTlNFVH1cIiBocmVmPVwiI1wiIGRhdGEtZHotdW5zZXQ+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVOU0VUfTwvYT5cbiAgICAgICAgICA8YSBjbGFzcz1cImR6LXJlbW92ZVwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRFTEVURX1cIiBocmVmPVwiamF2YXNjcmlwdDp1bmRlZmluZWQ7XCIgZGF0YS1kei1yZW1vdmU+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRFTEVURX08L2E+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkei1tZXRhZGF0YVwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk1FVEFEQVRBfVwiIGhyZWY9XCIjXCIgdGFyZ2V0PVwiX2JsYW5rXCIgZGF0YS1kei1tZXRhZGF0YT4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTUVUQURBVEF9PC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZHotdmlld1wiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlZJRVd9XCIgaHJlZj1cIiNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBkYXRhLWR6LXZpZXc+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlZJRVd9PC9hPlxuICAgICAgICA8L2Rpdj5gLnRyaW0oKVxufTtcblxuLy8gZ2xvYmFsLkVYSUYgPSBFWElGO1xuXG5jb25zdCBBQ0NFUFRfRlVOQyA9IGZ1bmN0aW9uKGZpbGUsIGRvbmUsIHNldHRpbmdzKSB7XG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IHNldHRpbmdzLnJlc29sdXRpb247XG4gICAgaWYgKCFyZXNvbHV0aW9uKSByZXR1cm4gZG9uZSgpO1xuXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBsZXQgZXJyb3IgPSAnJztcbiAgICBjb25zdCBoYXNNaW4gPSAocmVzb2x1dGlvbi5taW4gJiYgKHJlc29sdXRpb24ubWluLndpZHRoIHx8IHJlc29sdXRpb24ubWluLmhlaWdodCkpO1xuICAgIGNvbnN0IGhhc01heCA9IChyZXNvbHV0aW9uLm1heCAmJiAocmVzb2x1dGlvbi5tYXgud2lkdGggfHwgcmVzb2x1dGlvbi5tYXguaGVpZ2h0KSk7XG4gICAgaWYgKGhhc01pbiB8fCAoIShzZXR0aW5ncy5yZXNpemVXaWR0aCB8fCBzZXR0aW5ncy5yZXNpemVIZWlnaHQpICYmIGhhc01heCkpIHtcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gZXZlbnQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBkb25lKHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRklMRV9FUlJPUl9VUExPQUQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNvbHV0aW9uLm1pbikge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXNvbHV0aW9uLm1pbikuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdXRpb24ubWluW2F0dHJdICYmIHRoaXNbYXR0cl0gPCByZXNvbHV0aW9uLm1pblthdHRyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yICs9IHRyYW5zbGF0aW9ucy5QTFVHSU5fRk9STS5SRVNPTFVUSU9OX01JTi5yZXBsYWNlKC97e2F0dHJ9fS9nLCBhdHRyKS5yZXBsYWNlKC97e21pbn19L2csIHJlc29sdXRpb24ubWluW2F0dHJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCEoc2V0dGluZ3MucmVzaXplV2lkdGggfHwgc2V0dGluZ3MucmVzaXplSGVpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x1dGlvbi5tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc29sdXRpb24ubWF4KS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdXRpb24ubWF4W2F0dHJdICYmIHRoaXNbYXR0cl0gPiByZXNvbHV0aW9uLm1heFthdHRyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciArPSB0cmFuc2xhdGlvbnMuUExVR0lOX0ZPUk0uUkVTT0xVVElPTl9NQVgucmVwbGFjZSgve3thdHRyfX0vZywgYXR0cikucmVwbGFjZSgve3ttYXh9fS9nLCByZXNvbHV0aW9uLm1heFthdHRyXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGltYWdlLnNyYyk7IC8vIHJlbGVhc2UgbWVtb3J5XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yID8gZG9uZShlcnJvcikgOiBkb25lKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlcnJvciA/IGRvbmUoZXJyb3IpIDogZG9uZSgpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVzRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKHsgY29udGFpbmVyID0gJy5kcm9wem9uZS5maWxlcy11cGxvYWQnLCBvcHRpb25zID0ge30gfSA9IHt9KSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnVybHMgPSB7fTtcbiAgICAgICAgdGhpcy5jdXN0b21Qb3N0ID0gdGhpcy5jb250YWluZXIuZGF0YSgnZmlsZVBvc3RBZGQnKSB8fCB7fTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgRGljdGlvbmFyeSwgRHJvcHpvbmVNZWRpYUNvbmZpZywge1xuICAgICAgICAgICAga2xhc3M6IHRoaXMsXG4gICAgICAgICAgICB1cmw6IHRoaXMuY29udGFpbmVyLmRhdGEoJ2ZpbGUtdXJsLWFkZCcpIHx8IGNvbmZpZy5jdXJyZW50X3VybCxcbiAgICAgICAgICAgIGFjY2VwdGVkRmlsZXM6IHRoaXMuY29udGFpbmVyLmRhdGEoJ21lZGlhLXR5cGVzJyksXG4gICAgICAgICAgICBpbml0OiB0aGlzLmluaXREcm9wem9uZVxuICAgICAgICB9LCB0aGlzLmNvbnRhaW5lci5kYXRhKCdkcm9wem9uZS1vcHRpb25zJyksIG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xuICAgICAgICAgICAgYWNjZXB0OiBmdW5jdGlvbihmaWxlLCBkb25lKSB7IEFDQ0VQVF9GVU5DKGZpbGUsIGRvbmUsIHRoaXMub3B0aW9ucyk7IH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kcm9wem9uZSA9IG5ldyBEcm9wem9uZShjb250YWluZXIsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZHJvcHpvbmUub24oJ2NvbXBsZXRlJywgdGhpcy5vbkRyb3B6b25lQ29tcGxldGUuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuZHJvcHpvbmUub24oJ3N1Y2Nlc3MnLCB0aGlzLm9uRHJvcHpvbmVTdWNjZXNzLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmRyb3B6b25lLm9uKCdyZW1vdmVkZmlsZScsIHRoaXMub25Ecm9wem9uZVJlbW92ZWRGaWxlLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmRyb3B6b25lLm9uKCdzZW5kaW5nJywgdGhpcy5vbkRyb3B6b25lU2VuZGluZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5kcm9wem9uZS5vbignZXJyb3InLCB0aGlzLm9uRHJvcHpvbmVFcnJvci5iaW5kKHRoaXMpKTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5vbignbW91c2VlbnRlcicsICdbZGF0YS1kei12aWV3XScsIChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEpTT04ucGFyc2UodGhpcy5jb250YWluZXIuZmluZCgnW25hbWVdW3R5cGU9XCJoaWRkZW5cIl0nKS52YWwoKSB8fCAne30nKTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZS5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSB0YXJnZXQucGFyZW50KCcuZHotcHJldmlldycpLmZpbmQoJy5kei1maWxlbmFtZScpO1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBlbmNvZGVVUkkoZmlsZS50ZXh0KCkpO1xuXG4gICAgICAgICAgICBjb25zdCBVUkwgPSBPYmplY3Qua2V5cyh2YWx1ZSkuZmlsdGVyKChrZXkpID0+IHZhbHVlW2tleV0ubmFtZSA9PT0gZmlsZW5hbWUpLnNoaWZ0KCk7XG4gICAgICAgICAgICB0YXJnZXQuYXR0cignaHJlZicsIGAke2NvbmZpZy5iYXNlX3VybF9zaW1wbGV9LyR7VVJMfWApO1xuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIGluaXREcm9wem9uZSgpIHtcbiAgICAgICAgbGV0IGZpbGVzID0gdGhpcy5vcHRpb25zLmtsYXNzLmNvbnRhaW5lci5maW5kKCdbZGF0YS1maWxlXScpO1xuICAgICAgICBsZXQgZHJvcHpvbmUgPSB0aGlzO1xuICAgICAgICBpZiAoIWZpbGVzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWxlcy5lYWNoKChpbmRleCwgZmlsZSkgPT4ge1xuICAgICAgICAgICAgZmlsZSA9ICQoZmlsZSk7XG4gICAgICAgICAgICBsZXQgZGF0YSA9IGZpbGUuZGF0YSgnZmlsZScpO1xuICAgICAgICAgICAgbGV0IG1vY2sgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGRhdGEuc2l6ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBEcm9wem9uZS5BRERFRCxcbiAgICAgICAgICAgICAgICBhY2NlcHRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB1cmw6IHRoaXMub3B0aW9ucy51cmwsXG4gICAgICAgICAgICAgICAgcmVtb3ZlVXJsOiBkYXRhLnJlbW92ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZHJvcHpvbmUuZmlsZXMucHVzaChtb2NrKTtcbiAgICAgICAgICAgIGRyb3B6b25lLm9wdGlvbnMuYWRkZWRmaWxlLmNhbGwoZHJvcHpvbmUsIG1vY2spO1xuICAgICAgICAgICAgaWYgKG1vY2sudHlwZS5tYXRjaCgvXmltYWdlXFwvLykpIHtcbiAgICAgICAgICAgICAgICBkcm9wem9uZS5vcHRpb25zLnRodW1ibmFpbC5jYWxsKGRyb3B6b25lLCBtb2NrLCBkYXRhLnBhdGgpO1xuICAgICAgICAgICAgICAgIGRyb3B6b25lLmNyZWF0ZVRodW1ibmFpbEZyb21VcmwobW9jaywgZGF0YS5wYXRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZS5yZW1vdmUoKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBnZXRVUkkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lci5kYXRhKCdtZWRpYVVyaScpIHx8ICcnO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVTZW5kaW5nKGZpbGUsIHhociwgZm9ybURhdGEpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuY3VzdG9tUG9zdCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbVBvc3QpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHRoaXMuY3VzdG9tUG9zdFtrZXldKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCduYW1lJywgdGhpcy5vcHRpb25zLmRvdE5vdGF0aW9uKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndGFzaycsICdmaWxlc3VwbG9hZCcpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCd1cmknLCB0aGlzLmdldFVSSSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVTdWNjZXNzKGZpbGUsIHJlc3BvbnNlLCB4aHIpIHtcbiAgICAgICAgcmVzcG9uc2UgPSB0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNwb25zZSkgOiByZXNwb25zZTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZWxvYWRQYWdlKSB7XG4gICAgICAgICAgICBnbG9iYWwubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdG9yZSBwYXJhbXMgZm9yIHJlbW92aW5nIGZpbGUgZnJvbSBzZXNzaW9uIGJlZm9yZSBpdCBnZXRzIHNhdmVkXG4gICAgICAgIGlmIChyZXNwb25zZS5zZXNzaW9uKSB7XG4gICAgICAgICAgICBmaWxlLnNlc3Npb25QYXJhbXMgPSByZXNwb25zZS5zZXNzaW9uO1xuICAgICAgICAgICAgZmlsZS5yZW1vdmVVcmwgPSB0aGlzLm9wdGlvbnMudXJsO1xuXG4gICAgICAgICAgICAvLyBUb3VjaCBmaWVsZCB2YWx1ZSB0byBmb3JjZSBhIG11dGF0aW9uIGRldGVjdGlvblxuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmNvbnRhaW5lci5maW5kKCdbbmFtZV1bdHlwZT1cImhpZGRlblwiXScpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWwoKTtcbiAgICAgICAgICAgIGlucHV0LnZhbCh2YWx1ZSArICcgJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcih7XG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UsXG4gICAgICAgICAgICBtb2RlOiAncmVtb3ZlRmlsZScsXG4gICAgICAgICAgICBtc2c6IGA8cD4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRklMRV9FUlJPUl9VUExPQUR9IDxzdHJvbmc+JHtmaWxlLm5hbWV9PC9zdHJvbmc+PC9wPlxuICAgICAgICAgICAgPHByZT4ke3Jlc3BvbnNlLm1lc3NhZ2V9PC9wcmU+YFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRyb3B6b25lQ29tcGxldGUoZmlsZSkge1xuICAgICAgICBpZiAoIWZpbGUuYWNjZXB0ZWQgJiYgIWZpbGUucmVqZWN0ZWQpIHtcbiAgICAgICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkZJTEVfVU5TVVBQT1JURUR9OiAke2ZpbGUubmFtZS5tYXRjaCgvXFwuLisvKS5qb2luKCcnKX1gXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcih7XG4gICAgICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdyZW1vdmVGaWxlJyxcbiAgICAgICAgICAgICAgICBtc2c6IGA8cD4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRklMRV9FUlJPUl9BRER9IDxzdHJvbmc+JHtmaWxlLm5hbWV9PC9zdHJvbmc+PC9wPlxuICAgICAgICAgICAgICAgIDxwcmU+JHtkYXRhLm1lc3NhZ2V9PC9wcmU+YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJlbG9hZFBhZ2UpIHtcbiAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGI2NF90b191dGY4KHN0cikge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUod2luZG93LmF0b2Ioc3RyKSkpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVSZW1vdmVkRmlsZShmaWxlLCAuLi5leHRyYSkge1xuICAgICAgICBpZiAoIWZpbGUuYWNjZXB0ZWQgfHwgZmlsZS5yZWplY3RlZCkgeyByZXR1cm47IH1cbiAgICAgICAgbGV0IHVybCA9IGZpbGUucmVtb3ZlVXJsIHx8IHRoaXMudXJscy5kZWxldGUgfHwgdGhpcy5vcHRpb25zLnVybDtcbiAgICAgICAgbGV0IHBhdGggPSAodXJsIHx8ICcnKS5tYXRjaCgvcGF0aDooLiopXFwvLyk7XG4gICAgICAgIGxldCBib2R5ID0geyBmaWxlbmFtZTogZmlsZS5uYW1lLCB1cmk6IHRoaXMuZ2V0VVJJKCkgfTtcblxuICAgICAgICBpZiAoZmlsZS5zZXNzaW9uUGFyYW1zKSB7XG4gICAgICAgICAgICBib2R5LnRhc2sgPSAnZmlsZXNzZXNzaW9ucmVtb3ZlJztcbiAgICAgICAgICAgIGJvZHkuc2Vzc2lvbiA9IGZpbGUuc2Vzc2lvblBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1c3RvbVBvc3QgPSB0aGlzLmNvbnRhaW5lci5kYXRhKCdmaWxlUG9zdFJlbW92ZScpIHx8IHt9O1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY3VzdG9tUG9zdCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBib2R5ID0ge307XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjdXN0b21Qb3N0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBib2R5W2tleV0gPSBjdXN0b21Qb3N0W2tleV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJvZHlbJ2ZpbGVuYW1lJ10gPSBmaWxlLm5hbWU7XG4gICAgICAgIGJvZHlbJ2FkbWluLW5vbmNlJ10gPSBjb25maWcuYWRtaW5fbm9uY2U7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHsgbWV0aG9kOiAncG9zdCcsIGJvZHkgfSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwYXRoKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICBwYXRoID0gdGhpcy5iNjRfdG9fdXRmOChwYXRoWzFdKTtcbiAgICAgICAgICAgIGxldCBpbnB1dCA9IHRoaXMuY29udGFpbmVyLmZpbmQoJ1tuYW1lXVt0eXBlPVwiaGlkZGVuXCJdJyk7XG4gICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoaW5wdXQudmFsKCkgfHwgJ3t9Jyk7XG4gICAgICAgICAgICBkZWxldGUgZGF0YVtwYXRoXTtcbiAgICAgICAgICAgIGlucHV0LnZhbChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVFcnJvcihmaWxlLCByZXNwb25zZSwgeGhyKSB7XG4gICAgICAgIGxldCBtZXNzYWdlID0geGhyID8gcmVzcG9uc2UuZXJyb3IubWVzc2FnZSA6IHJlc3BvbnNlO1xuICAgICAgICAkKGZpbGUucHJldmlld0VsZW1lbnQpLmZpbmQoJ1tkYXRhLWR6LWVycm9ybWVzc2FnZV0nKS5odG1sKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKHtcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICBkYXRhOiB7IHN0YXR1czogJ2Vycm9yJyB9LFxuICAgICAgICAgICAgbXNnOiBgPHByZT4ke21lc3NhZ2V9PC9wcmU+YFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcihvcHRpb25zKSB7XG4gICAgICAgIGxldCB7IGZpbGUsIGRhdGEsIG1vZGUsIG1zZyB9ID0gb3B0aW9ucztcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAnZXJyb3InICYmIGRhdGEuc3RhdHVzICE9PSAndW5hdXRob3JpemVkJykgeyByZXR1cm47IH1cblxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FkZEJhY2snOlxuICAgICAgICAgICAgICAgIGlmIChmaWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLmFkZEZpbGUuY2FsbCh0aGlzLmRyb3B6b25lLCBmaWxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLmZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUub3B0aW9ucy5hZGRlZGZpbGUuY2FsbCh0aGlzLmRyb3B6b25lLCBmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5vcHRpb25zLnRodW1ibmFpbC5jYWxsKHRoaXMuZHJvcHpvbmUsIGZpbGUsIGZpbGUuZXh0cmFzLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZW1vdmVGaWxlJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKH50aGlzLmRyb3B6b25lLmZpbGVzLmluZGV4T2YoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZS5yZWplY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUucmVtb3ZlRmlsZS5jYWxsKHRoaXMuZHJvcHpvbmUsIGZpbGUsIHsgc2lsZW50OiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1vZGFsID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cImdlbmVyaWNcIl0nKTtcbiAgICAgICAgbW9kYWwuZmluZCgnLmVycm9yLWNvbnRlbnQnKS5odG1sKG1zZyk7XG4gICAgICAgICQucmVtb2RhbC5sb29rdXBbbW9kYWwuZGF0YSgncmVtb2RhbCcpXS5vcGVuKCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gVXJpVG9NYXJrZG93bih1cmkpIHtcbiAgICB1cmkgPSB1cmkucmVwbGFjZSgvQDN4fEAyeHxAMXgvLCAnJyk7XG4gICAgdXJpID0gdXJpLnJlcGxhY2UoL1xcKC9nLCAnJTI4Jyk7XG4gICAgdXJpID0gdXJpLnJlcGxhY2UoL1xcKS9nLCAnJTI5Jyk7XG5cbiAgICBjb25zdCB0aXRsZSA9IHVyaS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG5cbiAgICByZXR1cm4gdXJpLm1hdGNoKC9cXC4oanBlP2d8cG5nfGdpZnxzdmd8d2VicHxtcDR8d2VibXxvZ3Z8bW92KSQvaSkgPyBgIVske3RpdGxlfV0oJHt1cml9IFwiJHt0aXRsZX1cIilgIDogYFske2RlY29kZVVSSSh1cmkpfV0oJHt1cml9KWA7XG59XG5cbmxldCBpbnN0YW5jZXMgPSBbXTtcbmxldCBjYWNoZSA9ICQoKTtcbmNvbnN0IG9uQWRkZWROb2RlcyA9IChldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSA9PiB7XG4gICAgbGV0IGZpbGVzID0gJCh0YXJnZXQpLmZpbmQoJy5kcm9wem9uZS5maWxlcy11cGxvYWQnKTtcbiAgICBpZiAoIWZpbGVzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgIGZpbGVzLmVhY2goKGluZGV4LCBmaWxlKSA9PiB7XG4gICAgICAgIGZpbGUgPSAkKGZpbGUpO1xuICAgICAgICBpZiAoIX5jYWNoZS5pbmRleChmaWxlKSkge1xuICAgICAgICAgICAgYWRkTm9kZShmaWxlKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgYWRkTm9kZSA9IChjb250YWluZXIpID0+IHtcbiAgICBjb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG4gICAgbGV0IGlucHV0ID0gY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9XCJmaWxlXCJdJyk7XG4gICAgbGV0IHNldHRpbmdzID0gY29udGFpbmVyLmRhdGEoJ2dyYXYtZmlsZS1zZXR0aW5ncycpIHx8IHt9O1xuXG4gICAgaWYgKHNldHRpbmdzLmFjY2VwdCAmJiB+c2V0dGluZ3MuYWNjZXB0LmluZGV4T2YoJyonKSkge1xuICAgICAgICBzZXR0aW5ncy5hY2NlcHQgPSBbJyddO1xuICAgIH1cblxuICAgIGxldCBvcHRpb25zID0ge1xuICAgICAgICB1cmw6IGNvbnRhaW5lci5kYXRhKCdmaWxlLXVybC1hZGQnKSB8fCAoY29udGFpbmVyLmNsb3Nlc3QoJ2Zvcm0nKS5hdHRyKCdhY3Rpb24nKSB8fCBjb25maWcuY3VycmVudF91cmwpICsgJy5qc29uJyxcbiAgICAgICAgcGFyYW1OYW1lOiBzZXR0aW5ncy5wYXJhbU5hbWUgfHwgJ2ZpbGUnLFxuICAgICAgICBkb3ROb3RhdGlvbjogc2V0dGluZ3MubmFtZSB8fCAnZmlsZScsXG4gICAgICAgIGFjY2VwdGVkRmlsZXM6IHNldHRpbmdzLmFjY2VwdCA/IHNldHRpbmdzLmFjY2VwdC5qb2luKCcsJykgOiBpbnB1dC5hdHRyKCdhY2NlcHQnKSB8fCBjb250YWluZXIuZGF0YSgnbWVkaWEtdHlwZXMnKSxcbiAgICAgICAgbWF4RmlsZXNpemU6IHR5cGVvZiBzZXR0aW5ncy5maWxlc2l6ZSAhPT0gJ3VuZGVmaW5lZCcgPyBzZXR0aW5ncy5maWxlc2l6ZSA6IDI1NixcbiAgICAgICAgbWF4RmlsZXM6IHNldHRpbmdzLmxpbWl0IHx8IG51bGwsXG4gICAgICAgIHJlc2l6ZVdpZHRoOiBzZXR0aW5ncy5yZXNpemVXaWR0aCB8fCBudWxsLFxuICAgICAgICByZXNpemVIZWlnaHQ6IHNldHRpbmdzLnJlc2l6ZUhlaWdodCB8fCBudWxsLFxuICAgICAgICByZXNpemVRdWFsaXR5OiBzZXR0aW5ncy5yZXNpemVRdWFsaXR5IHx8IG51bGwsXG4gICAgICAgIHJlc29sdXRpb246IHNldHRpbmdzLnJlc29sdXRpb24gfHwgbnVsbCxcbiAgICAgICAgYWNjZXB0OiBmdW5jdGlvbihmaWxlLCBkb25lKSB7IEFDQ0VQVF9GVU5DKGZpbGUsIGRvbmUsIHNldHRpbmdzKTsgfVxuICAgIH07XG5cbiAgICBjYWNoZSA9IGNhY2hlLmFkZChjb250YWluZXIpO1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lclswXTtcbiAgICBpbnN0YW5jZXMucHVzaChuZXcgRmlsZXNGaWVsZCh7IGNvbnRhaW5lciwgb3B0aW9ucyB9KSk7XG59O1xuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gKCgpID0+IHtcbiAgICAkKCcuZHJvcHpvbmUuZmlsZXMtdXBsb2FkJykuZWFjaCgoaSwgY29udGFpbmVyKSA9PiBhZGROb2RlKGNvbnRhaW5lcikpO1xuICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCBvbkFkZGVkTm9kZXMpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlcztcbn0pKCk7XG4iXSwibmFtZXMiOlsiJCIsIkRyb3B6b25lIiwicmVxdWVzdCIsImNvbmZpZyIsInRyYW5zbGF0aW9ucyIsIkRpY3Rpb25hcnkiLCJkaWN0Q2FuY2VsVXBsb2FkIiwiUExVR0lOX0FETUlOIiwiRFJPUFpPTkVfQ0FOQ0VMX1VQTE9BRCIsImRpY3RDYW5jZWxVcGxvYWRDb25maXJtYXRpb24iLCJEUk9QWk9ORV9DQU5DRUxfVVBMT0FEX0NPTkZJUk1BVElPTiIsImRpY3REZWZhdWx0TWVzc2FnZSIsIkRST1BaT05FX0RFRkFVTFRfTUVTU0FHRSIsImRpY3RGYWxsYmFja01lc3NhZ2UiLCJEUk9QWk9ORV9GQUxMQkFDS19NRVNTQUdFIiwiZGljdEZhbGxiYWNrVGV4dCIsIkRST1BaT05FX0ZBTExCQUNLX1RFWFQiLCJkaWN0RmlsZVRvb0JpZyIsIkRST1BaT05FX0ZJTEVfVE9PX0JJRyIsImRpY3RJbnZhbGlkRmlsZVR5cGUiLCJEUk9QWk9ORV9JTlZBTElEX0ZJTEVfVFlQRSIsImRpY3RNYXhGaWxlc0V4Y2VlZGVkIiwiRFJPUFpPTkVfTUFYX0ZJTEVTX0VYQ0VFREVEIiwiZGljdFJlbW92ZUZpbGUiLCJEUk9QWk9ORV9SRU1PVkVfRklMRSIsImRpY3RSZXNwb25zZUVycm9yIiwiRFJPUFpPTkVfUkVTUE9OU0VfRVJST1IiLCJhdXRvRGlzY292ZXIiLCJvcHRpb25zIiwiZ3JhdlBhZ2VEcm9wem9uZSIsImNvbmZpcm0iLCJxdWVzdGlvbiIsImFjY2VwdGVkIiwicmVqZWN0ZWQiLCJkb2MiLCJkb2N1bWVudCIsIm1vZGFsU2VsZWN0b3IiLCJyZW1vdmVFdmVudHMiLCJvZmYiLCJhY2NlcHQiLCJyZWplY3QiLCJmaW5kIiwicmVtb3ZlQ2xhc3MiLCJyZW1vZGFsIiwibG9va3VwIiwiZGF0YSIsIm9wZW4iLCJvbiIsIkRyb3B6b25lTWVkaWFDb25maWciLCJ0aW1lb3V0IiwidGh1bWJuYWlsV2lkdGgiLCJ0aHVtYm5haWxIZWlnaHQiLCJhZGRSZW1vdmVMaW5rcyIsIkRST1BfRklMRVNfSEVSRV9UT19VUExPQUQiLCJyZXBsYWNlIiwiZGljdFJlbW92ZUZpbGVDb25maXJtYXRpb24iLCJwcmV2aWV3VGVtcGxhdGUiLCJVTlNFVCIsIkRFTEVURSIsIk1FVEFEQVRBIiwiVklFVyIsInRyaW0iLCJBQ0NFUFRfRlVOQyIsImZpbGUiLCJkb25lIiwic2V0dGluZ3MiLCJyZXNvbHV0aW9uIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsImVycm9yIiwiaGFzTWluIiwibWluIiwid2lkdGgiLCJoZWlnaHQiLCJoYXNNYXgiLCJtYXgiLCJyZXNpemVXaWR0aCIsInJlc2l6ZUhlaWdodCIsIm9ubG9hZCIsImV2ZW50IiwiaW1hZ2UiLCJJbWFnZSIsInNyYyIsInRhcmdldCIsInJlc3VsdCIsIm9uZXJyb3IiLCJGSUxFX0VSUk9SX1VQTE9BRCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiYXR0ciIsIlBMVUdJTl9GT1JNIiwiUkVTT0xVVElPTl9NSU4iLCJSRVNPTFVUSU9OX01BWCIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsInJlYWRBc0RhdGFVUkwiLCJGaWxlc0ZpZWxkIiwiY29udGFpbmVyIiwibGVuZ3RoIiwidXJscyIsImN1c3RvbVBvc3QiLCJhc3NpZ24iLCJrbGFzcyIsInVybCIsImN1cnJlbnRfdXJsIiwiYWNjZXB0ZWRGaWxlcyIsImluaXQiLCJpbml0RHJvcHpvbmUiLCJkcm9wem9uZSIsIm9uRHJvcHpvbmVDb21wbGV0ZSIsImJpbmQiLCJvbkRyb3B6b25lU3VjY2VzcyIsIm9uRHJvcHpvbmVSZW1vdmVkRmlsZSIsIm9uRHJvcHpvbmVTZW5kaW5nIiwib25Ecm9wem9uZUVycm9yIiwiZSIsInZhbHVlIiwiSlNPTiIsInBhcnNlIiwidmFsIiwiY3VycmVudFRhcmdldCIsInBhcmVudCIsImZpbGVuYW1lIiwiZW5jb2RlVVJJIiwidGV4dCIsImZpbHRlciIsImtleSIsIm5hbWUiLCJzaGlmdCIsImJhc2VfdXJsX3NpbXBsZSIsImZpbGVzIiwiZWFjaCIsImluZGV4IiwibW9jayIsInNpemUiLCJ0eXBlIiwic3RhdHVzIiwiQURERUQiLCJyZW1vdmVVcmwiLCJyZW1vdmUiLCJwdXNoIiwiYWRkZWRmaWxlIiwiY2FsbCIsIm1hdGNoIiwidGh1bWJuYWlsIiwicGF0aCIsImNyZWF0ZVRodW1ibmFpbEZyb21VcmwiLCJ4aHIiLCJmb3JtRGF0YSIsImFwcGVuZCIsImRvdE5vdGF0aW9uIiwiZ2V0VVJJIiwiYWRtaW5fbm9uY2UiLCJyZXNwb25zZSIsInJlbG9hZFBhZ2UiLCJnbG9iYWwiLCJsb2NhdGlvbiIsInJlbG9hZCIsInNlc3Npb24iLCJzZXNzaW9uUGFyYW1zIiwiaW5wdXQiLCJoYW5kbGVFcnJvciIsIm1vZGUiLCJtc2ciLCJtZXNzYWdlIiwiRklMRV9VTlNVUFBPUlRFRCIsImpvaW4iLCJGSUxFX0VSUk9SX0FERCIsInN0ciIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIndpbmRvdyIsImF0b2IiLCJib2R5IiwidXJpIiwidGFzayIsIm1ldGhvZCIsImI2NF90b191dGY4Iiwic3RyaW5naWZ5IiwicHJldmlld0VsZW1lbnQiLCJodG1sIiwiRmlsZSIsImFkZEZpbGUiLCJleHRyYXMiLCJpbmRleE9mIiwicmVtb3ZlRmlsZSIsInNpbGVudCIsIm1vZGFsIiwiVXJpVG9NYXJrZG93biIsInRpdGxlIiwic3BsaXQiLCJzbGljZSIsImRlY29kZVVSSSIsImluc3RhbmNlcyIsImNhY2hlIiwib25BZGRlZE5vZGVzIiwiYWRkTm9kZSIsImNsb3Nlc3QiLCJwYXJhbU5hbWUiLCJtYXhGaWxlc2l6ZSIsImZpbGVzaXplIiwibWF4RmlsZXMiLCJsaW1pdCIsInJlc2l6ZVF1YWxpdHkiLCJhZGQiLCJJbnN0YW5jZSIsImkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/files.js\n");
/***/ }),
/***/ "./app/forms/fields/folder.js":
/*!************************************!*\
!*** ./app/forms/fields/folder.js ***!
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar Regenerate = function Regenerate() {\n var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '[name=\"data[folder]\"]';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n var title = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"data[header][title]\"]');\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(title.val(), {\n custom: {\n \"'\": ''\n }\n });\n element.addClass('highlight').val(slug);\n setTimeout(function () {\n return element.removeClass('highlight');\n }, 500);\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-regenerate]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target.data('regenerate'));\n Regenerate(field);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Regenerate);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2ZvbGRlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFFQSxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxHQUFxQztBQUFBLE1BQXBDQyxLQUFvQyx1RUFBNUIsdUJBQTRCO0FBQ3BELE1BQU1DLE9BQU8sR0FBR0gsNkNBQUMsQ0FBQ0UsS0FBRCxDQUFqQjtBQUNBLE1BQU1FLEtBQUssR0FBR0osNkNBQUMsQ0FBQyw4QkFBRCxDQUFmO0FBQ0EsTUFBTUssSUFBSSxHQUFHTCxxREFBQSxDQUFVSSxLQUFLLENBQUNHLEdBQU4sRUFBVixFQUF1QjtBQUFDQyxJQUFBQSxNQUFNLEVBQUU7QUFBQyxXQUFLO0FBQU47QUFBVCxHQUF2QixDQUFiO0FBRUFMLEVBQUFBLE9BQU8sQ0FBQ00sUUFBUixDQUFpQixXQUFqQixFQUE4QkYsR0FBOUIsQ0FBa0NGLElBQWxDO0FBRUFLLEVBQUFBLFVBQVUsQ0FBQztBQUFBLFdBQU1QLE9BQU8sQ0FBQ1EsV0FBUixDQUFvQixXQUFwQixDQUFOO0FBQUEsR0FBRCxFQUF5QyxHQUF6QyxDQUFWO0FBQ0gsQ0FSRDs7QUFVQVgsNkNBQUMsQ0FBQ1ksUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLG1CQUF4QixFQUE2QyxVQUFDQyxLQUFELEVBQVc7QUFDcEQsTUFBTUMsTUFBTSxHQUFHZiw2Q0FBQyxDQUFDYyxLQUFLLENBQUNFLGFBQVAsQ0FBaEI7QUFDQSxNQUFNZCxLQUFLLEdBQUdGLDZDQUFDLENBQUNlLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLFlBQVosQ0FBRCxDQUFmO0FBRUFoQixFQUFBQSxVQUFVLENBQUNDLEtBQUQsQ0FBVjtBQUNILENBTEQ7QUFPQSxpRUFBZUQsVUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2ZvbGRlci5qcz85N2ZlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IFJlZ2VuZXJhdGUgPSAoZmllbGQgPSAnW25hbWU9XCJkYXRhW2ZvbGRlcl1cIl0nKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9ICQoZmllbGQpO1xuICAgIGNvbnN0IHRpdGxlID0gJCgnW25hbWU9XCJkYXRhW2hlYWRlcl1bdGl0bGVdXCJdJyk7XG4gICAgY29uc3Qgc2x1ZyA9ICQuc2x1Z2lmeSh0aXRsZS52YWwoKSwge2N1c3RvbToge1wiJ1wiOiAnJ319KTtcblxuICAgIGVsZW1lbnQuYWRkQ2xhc3MoJ2hpZ2hsaWdodCcpLnZhbChzbHVnKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudC5yZW1vdmVDbGFzcygnaGlnaGxpZ2h0JyksIDUwMCk7XG59O1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcmVnZW5lcmF0ZV0nLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IGZpZWxkID0gJCh0YXJnZXQuZGF0YSgncmVnZW5lcmF0ZScpKTtcblxuICAgIFJlZ2VuZXJhdGUoZmllbGQpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlZ2VuZXJhdGU7XG4iXSwibmFtZXMiOlsiJCIsIlJlZ2VuZXJhdGUiLCJmaWVsZCIsImVsZW1lbnQiLCJ0aXRsZSIsInNsdWciLCJzbHVnaWZ5IiwidmFsIiwiY3VzdG9tIiwiYWRkQ2xhc3MiLCJzZXRUaW1lb3V0IiwicmVtb3ZlQ2xhc3MiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiZGF0YSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/folder.js\n");
/***/ }),
/***/ "./app/forms/fields/iconpicker.js":
/*!****************************************!*\
!*** ./app/forms/fields/iconpicker.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IconpickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n/* Icon Picker by QueryLoop\n * Author: @eliorivero\n * URL: http://queryloop.com/\n * License: GPLv2\n */\n\nvar defaults = {\n 'mode': 'dialog',\n // show overlay 'dialog' panel or slide down 'inline' panel\n 'closeOnPick': true,\n // whether to close panel after picking or 'no'\n 'save': 'class',\n // save icon 'class' or 'code'\n 'size': '',\n 'classes': {\n 'launcher': '',\n // extra classes for launcher buttons\n 'clear': 'remove-times',\n // extra classes for button that removes preview and clears field\n 'highlight': '',\n // extra classes when highlighting an icon\n 'close': '' // extra classes for close button\n\n },\n 'iconSets': {\n // example data structure. Used to specify which launchers will be created\n 'genericon': 'Genericon',\n // create a launcher to pick genericon icons\n 'fa': 'FontAwesome' // create a launcher to pick fontawesome icons\n\n }\n};\n\nvar QL_Icon_Picker = /*#__PURE__*/function () {\n function QL_Icon_Picker(element, options) {\n _classCallCheck(this, QL_Icon_Picker);\n\n this.iconSet = '';\n this.iconSetName = '';\n this.$field = '';\n this.element = element;\n this.settings = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, defaults, options);\n this._defaults = defaults;\n this.init();\n }\n\n _createClass(QL_Icon_Picker, [{\n key: \"init\",\n value: function init() {\n var $brick = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.element);\n var pickerId = $brick.data('pickerid');\n var $preview = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"icon-preview icon-preview-' + pickerId + '\" />');\n this.$field = $brick.find('input'); // Add preview area\n\n this.makePreview($brick, pickerId, $preview); // Make button to clear field and remove preview\n\n this.makeClear(pickerId, $preview); // Make buttons that open the panel of icons\n\n this.makeLaunchers($brick, pickerId); // Prepare display styles, inline and dialog\n\n this.makeDisplay($brick);\n }\n }, {\n key: \"makePreview\",\n value: function makePreview($brick, pickerId, $preview) {\n var $icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var iconValue = this.$field.val();\n $preview.prependTo($brick);\n $icon.prependTo($preview);\n\n if (iconValue !== '') {\n $preview.addClass('icon-preview-on');\n $icon.addClass(iconValue);\n }\n }\n }, {\n key: \"makeClear\",\n value: function makeClear(pickerId, $preview) {\n var base = this;\n var $clear = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"remove-icon ' + base.settings.classes.clear + '\" />'); // Hide button to remove icon and preview and append it to preview area\n\n $clear.hide().prependTo($preview); // If there's a icon saved in the field, show remove icon button\n\n if (base.$field.val() !== '') {\n $clear.show();\n }\n\n $preview.on('click', '.remove-icon', function (e) {\n e.preventDefault();\n base.$field.val('');\n $preview.removeClass('icon-preview-on').find('i').removeClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hide();\n });\n }\n }, {\n key: \"makeDisplay\",\n value: function makeDisplay($brick) {\n var base = this;\n var close = base.settings.classes.close;\n var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n var $close = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a href=\"#\" class=\"icon-picker-close\"/>');\n\n if (base.settings.mode === 'inline') {\n $brick.find('.icon-set').append($close).removeClass('dialog').addClass('ip-inline ' + base.settings.size).parent().addClass('icon-set-wrap');\n } else if (base.settings.mode === 'dialog') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').addClass('dialog ' + base.settings.size);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-picker-overlay').length <= 0) {\n $body.append('<div class=\"icon-picker-overlay\"/>').append($close);\n }\n }\n\n $body.on('click', '.icon-picker-close, .icon-picker-overlay', function (e) {\n e.preventDefault();\n base.closePicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n }).on('mouseenter mouseleave', '.icon-picker-close', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(close);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(close);\n }\n });\n }\n }, {\n key: \"makeLaunchers\",\n value: function makeLaunchers($brick) {\n var base = this;\n var dataIconSets = $brick.data('iconsets');\n var iconSet;\n\n if (typeof dataIconSets === 'undefined') {\n dataIconSets = base.settings.iconSets;\n }\n\n for (iconSet in dataIconSets) {\n if (dataIconSets.hasOwnProperty(iconSet)) {\n $brick.append('<a class=\"launch-icons button ' + base.settings.classes.launcher + '\" data-icons=\"' + iconSet + '\">' + dataIconSets[iconSet] + '</a>');\n }\n }\n\n $brick.find('.launch-icons').on('click', function (e) {\n e.preventDefault();\n var $self = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var theseIcons = $self.data('icons');\n base.iconSetName = theseIcons;\n base.iconSet = '.' + theseIcons + '-set'; // Initialize picker\n\n base.iconPick($brick); // Show icon picker\n\n base.showPicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n });\n }\n }, {\n key: \"iconPick\",\n value: function iconPick($brick) {\n var base = this;\n var highlight = 'icon-highlight ' + base.settings.classes.highlight;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('click', 'li', function (e) {\n e.preventDefault();\n var $icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var icon = $icon.data(base.settings.save); // Mark as selected\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-selected').removeClass('icon-selected');\n $icon.addClass('icon-selected');\n\n if (base.$field.data('format') === 'short') {\n icon = icon.slice(6);\n } // Save icon value to field\n\n\n base.$field.val(icon); // Close icon picker\n\n if (base.settings.closeOnPick) {\n base.closePicker($brick, $icon.closest(base.iconSet), base.settings.mode);\n } // Set preview\n\n\n base.setPreview($icon.data('class')); // Broadcast event passing the selected icon.\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconselected.queryloop', icon);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('mouseenter mouseleave', 'li', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(highlight);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(highlight);\n }\n });\n }\n }, {\n key: \"showPicker\",\n value: function showPicker($brick, $icons, mode) {\n if (mode === 'inline') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('ip-inline-open');\n $brick.find($icons).toggleClass('ip-inline-open');\n } else if (mode === 'dialog') {\n $brick.find('.icon-picker-close').addClass('make-visible');\n $brick.find('.icon-picker-overlay').addClass('make-visible');\n $icons.addClass('dialog-open');\n }\n\n $icons.find('.icon-selected').removeClass('icon-selected');\n var selectedIcon = this.$field.val().replace(' ', '.');\n\n if (selectedIcon !== '') {\n if (this.settings.save === 'class') {\n $icons.find('.' + selectedIcon).addClass('icon-selected');\n } else {\n $icons.find('[data-code=\"' + selectedIcon + '\"]').addClass('icon-selected');\n }\n } // Broadcast event when the picker is shown passing the picker mode.\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickershow.queryloop', mode);\n }\n }, {\n key: \"closePicker\",\n value: function closePicker($brick, $icons, mode) {\n // Remove event so they don't fire from a different picker\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.iconSet).off('click', 'li');\n\n if (mode === 'inline') {\n $brick.find($icons).removeClass('ip-inline-open');\n } else if (mode === 'dialog') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-picker-close, .icon-picker-overlay').removeClass('make-visible');\n } // Broadcast event when the picker is closed passing the picker mode.\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickerclose.queryloop', mode);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('dialog-open');\n }\n }, {\n key: \"setPreview\",\n value: function setPreview(preview) {\n var $preview = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.element).find('.icon-preview');\n $preview.addClass('icon-preview-on').find('i').removeClass().addClass(this.iconSetName).addClass(preview);\n $preview.find('a').show();\n }\n }]);\n\n return QL_Icon_Picker;\n}();\n/* Grav */\n// extend $ with 3rd party QL Icon Picker\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.qlIconPicker) = function (options) {\n this.each(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker', new QL_Icon_Picker(this, options));\n }\n });\n return this;\n};\n\nvar IconpickerField = /*#__PURE__*/function () {\n function IconpickerField(options) {\n var _this = this;\n\n _classCallCheck(this, IconpickerField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-iconpicker]').each(function (index, element) {\n return _this.addItem(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(IconpickerField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-iconpicker]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"addItem\",\n value: function addItem(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n this.items = this.items.add(element);\n element.find('.icon-picker').qlIconPicker({\n 'save': 'class'\n }); // hack to remove extra icon sets that are just copies\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set:not(:first)').remove();\n }\n }]);\n\n return IconpickerField;\n}();\n\n\nvar Instance = new IconpickerField(); // Fix to close the dialog when clicking outside\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var match = '.icon-set.dialog-open, .launch-icons[data-icons]';\n\n if (!target.is(match) && !target.closest(match).length) {\n var dialogs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set.dialog-open'); // skip if there's no dialog open\n\n if (dialogs.length) {\n dialogs.each(function (index, dialog) {\n var picker = jquery__WEBPACK_IMPORTED_MODULE_0___default()(dialog).siblings('.icon-picker');\n var data = picker.data('plugin_qlIconPicker');\n data.closePicker(picker, jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.iconSet), data.settings.mode);\n });\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2ljb25waWNrZXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQyxRQUFRLEdBQUc7QUFDWCxVQUFRLFFBREc7QUFDTztBQUNsQixpQkFBZSxJQUZKO0FBRVU7QUFDckIsVUFBUSxPQUhHO0FBR007QUFDakIsVUFBUSxFQUpHO0FBS1gsYUFBVztBQUNQLGdCQUFZLEVBREw7QUFDUztBQUNoQixhQUFTLGNBRkY7QUFFa0I7QUFDekIsaUJBQWEsRUFITjtBQUdVO0FBQ2pCLGFBQVMsRUFKRixDQUlLOztBQUpMLEdBTEE7QUFXWCxjQUFZO0FBQUU7QUFDVixpQkFBYSxXQURMO0FBQ2tCO0FBQzFCLFVBQU0sYUFGRSxDQUVZOztBQUZaO0FBWEQsQ0FBZjs7SUFpQk1DO0FBRUYsMEJBQVlDLE9BQVosRUFBcUJDLE9BQXJCLEVBQThCO0FBQUE7O0FBQzFCLFNBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0osT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0ssUUFBTCxHQUFnQlIsb0RBQUEsQ0FBUyxFQUFULEVBQWFDLFFBQWIsRUFBdUJHLE9BQXZCLENBQWhCO0FBQ0EsU0FBS00sU0FBTCxHQUFpQlQsUUFBakI7QUFDQSxTQUFLVSxJQUFMO0FBQ0g7Ozs7V0FFRCxnQkFBTztBQUNILFVBQUlDLE1BQU0sR0FBR1osNkNBQUMsQ0FBQyxLQUFLRyxPQUFOLENBQWQ7QUFDQSxVQUFJVSxRQUFRLEdBQUdELE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLFVBQVosQ0FBZjtBQUNBLFVBQUlDLFFBQVEsR0FBR2YsNkNBQUMsQ0FBQywyQ0FBMkNhLFFBQTNDLEdBQXNELE1BQXZELENBQWhCO0FBRUEsV0FBS04sTUFBTCxHQUFjSyxNQUFNLENBQUNJLElBQVAsQ0FBWSxPQUFaLENBQWQsQ0FMRyxDQU9IOztBQUNBLFdBQUtDLFdBQUwsQ0FBaUJMLE1BQWpCLEVBQXlCQyxRQUF6QixFQUFtQ0UsUUFBbkMsRUFSRyxDQVVIOztBQUNBLFdBQUtHLFNBQUwsQ0FBZUwsUUFBZixFQUF5QkUsUUFBekIsRUFYRyxDQWFIOztBQUNBLFdBQUtJLGFBQUwsQ0FBbUJQLE1BQW5CLEVBQTJCQyxRQUEzQixFQWRHLENBZ0JIOztBQUNBLFdBQUtPLFdBQUwsQ0FBaUJSLE1BQWpCO0FBQ0g7OztXQUVELHFCQUFZQSxNQUFaLEVBQW9CQyxRQUFwQixFQUE4QkUsUUFBOUIsRUFBd0M7QUFDcEMsVUFBSU0sS0FBSyxHQUFHckIsNkNBQUMsQ0FBQyxPQUFELENBQWI7QUFDQSxVQUFJc0IsU0FBUyxHQUFHLEtBQUtmLE1BQUwsQ0FBWWdCLEdBQVosRUFBaEI7QUFFQVIsTUFBQUEsUUFBUSxDQUFDUyxTQUFULENBQW1CWixNQUFuQjtBQUNBUyxNQUFBQSxLQUFLLENBQUNHLFNBQU4sQ0FBZ0JULFFBQWhCOztBQUNBLFVBQUlPLFNBQVMsS0FBSyxFQUFsQixFQUFzQjtBQUNsQlAsUUFBQUEsUUFBUSxDQUFDVSxRQUFULENBQWtCLGlCQUFsQjtBQUNBSixRQUFBQSxLQUFLLENBQUNJLFFBQU4sQ0FBZUgsU0FBZjtBQUNIO0FBQ0o7OztXQUVELG1CQUFVVCxRQUFWLEVBQW9CRSxRQUFwQixFQUE4QjtBQUMxQixVQUFJVyxJQUFJLEdBQUcsSUFBWDtBQUNBLFVBQUlDLE1BQU0sR0FBRzNCLDZDQUFDLENBQUMsMkJBQTJCMEIsSUFBSSxDQUFDbEIsUUFBTCxDQUFjb0IsT0FBZCxDQUFzQkMsS0FBakQsR0FBeUQsTUFBMUQsQ0FBZCxDQUYwQixDQUkxQjs7QUFDQUYsTUFBQUEsTUFBTSxDQUFDRyxJQUFQLEdBQWNOLFNBQWQsQ0FBd0JULFFBQXhCLEVBTDBCLENBTTFCOztBQUNBLFVBQUlXLElBQUksQ0FBQ25CLE1BQUwsQ0FBWWdCLEdBQVosT0FBc0IsRUFBMUIsRUFBOEI7QUFDMUJJLFFBQUFBLE1BQU0sQ0FBQ0ksSUFBUDtBQUNIOztBQUVEaEIsTUFBQUEsUUFBUSxDQUFDaUIsRUFBVCxDQUFZLE9BQVosRUFBcUIsY0FBckIsRUFBcUMsVUFBU0MsQ0FBVCxFQUFZO0FBQzdDQSxRQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQVIsUUFBQUEsSUFBSSxDQUFDbkIsTUFBTCxDQUFZZ0IsR0FBWixDQUFnQixFQUFoQjtBQUNBUixRQUFBQSxRQUFRLENBQUNvQixXQUFULENBQXFCLGlCQUFyQixFQUF3Q25CLElBQXhDLENBQTZDLEdBQTdDLEVBQWtEbUIsV0FBbEQ7QUFDQW5DLFFBQUFBLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVE4QixJQUFSO0FBQ0gsT0FMRDtBQU1IOzs7V0FFRCxxQkFBWWxCLE1BQVosRUFBb0I7QUFDaEIsVUFBSWMsSUFBSSxHQUFHLElBQVg7QUFDQSxVQUFJVSxLQUFLLEdBQUdWLElBQUksQ0FBQ2xCLFFBQUwsQ0FBY29CLE9BQWQsQ0FBc0JRLEtBQWxDO0FBQ0EsVUFBSUMsS0FBSyxHQUFHckMsNkNBQUMsQ0FBQyxNQUFELENBQWI7QUFFQSxVQUFJc0MsTUFBTSxHQUFHdEMsNkNBQUMsQ0FBQyx5Q0FBRCxDQUFkOztBQUVBLFVBQUkwQixJQUFJLENBQUNsQixRQUFMLENBQWMrQixJQUFkLEtBQXVCLFFBQTNCLEVBQXFDO0FBQ2pDM0IsUUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVksV0FBWixFQUF5QndCLE1BQXpCLENBQWdDRixNQUFoQyxFQUF3Q0gsV0FBeEMsQ0FBb0QsUUFBcEQsRUFBOERWLFFBQTlELENBQXVFLGVBQWVDLElBQUksQ0FBQ2xCLFFBQUwsQ0FBY2lDLElBQXBHLEVBQTBHQyxNQUExRyxHQUFtSGpCLFFBQW5ILENBQTRILGVBQTVIO0FBQ0gsT0FGRCxNQUVPLElBQUlDLElBQUksQ0FBQ2xCLFFBQUwsQ0FBYytCLElBQWQsS0FBdUIsUUFBM0IsRUFBcUM7QUFDeEN2QyxRQUFBQSw2Q0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFleUIsUUFBZixDQUF3QixZQUFZQyxJQUFJLENBQUNsQixRQUFMLENBQWNpQyxJQUFsRDs7QUFDQSxZQUFJekMsNkNBQUMsQ0FBQyxzQkFBRCxDQUFELENBQTBCMkMsTUFBMUIsSUFBb0MsQ0FBeEMsRUFBMkM7QUFDdkNOLFVBQUFBLEtBQUssQ0FBQ0csTUFBTixDQUFhLG9DQUFiLEVBQW1EQSxNQUFuRCxDQUEwREYsTUFBMUQ7QUFDSDtBQUNKOztBQUNERCxNQUFBQSxLQUFLLENBQ0FMLEVBREwsQ0FDUSxPQURSLEVBQ2lCLDBDQURqQixFQUM2RCxVQUFTQyxDQUFULEVBQVk7QUFDakVBLFFBQUFBLENBQUMsQ0FBQ0MsY0FBRjtBQUNBUixRQUFBQSxJQUFJLENBQUNrQixXQUFMLENBQWlCaEMsTUFBakIsRUFBeUJaLDZDQUFDLENBQUMwQixJQUFJLENBQUNyQixPQUFOLENBQTFCLEVBQTBDcUIsSUFBSSxDQUFDbEIsUUFBTCxDQUFjK0IsSUFBeEQ7QUFDSCxPQUpMLEVBS0tQLEVBTEwsQ0FLUSx1QkFMUixFQUtpQyxvQkFMakMsRUFLdUQsVUFBU0MsQ0FBVCxFQUFZO0FBQzNELFlBQUlBLENBQUMsQ0FBQ1ksSUFBRixLQUFXLFlBQWYsRUFBNkI7QUFDekI3QyxVQUFBQSw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFReUIsUUFBUixDQUFpQlcsS0FBakI7QUFDSCxTQUZELE1BRU87QUFDSHBDLFVBQUFBLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVFtQyxXQUFSLENBQW9CQyxLQUFwQjtBQUNIO0FBQ0osT0FYTDtBQVlIOzs7V0FFRCx1QkFBY3hCLE1BQWQsRUFBc0I7QUFDbEIsVUFBSWMsSUFBSSxHQUFHLElBQVg7QUFDQSxVQUFJb0IsWUFBWSxHQUFHbEMsTUFBTSxDQUFDRSxJQUFQLENBQVksVUFBWixDQUFuQjtBQUNBLFVBQUlULE9BQUo7O0FBRUEsVUFBSSxPQUFPeUMsWUFBUCxLQUF3QixXQUE1QixFQUF5QztBQUNyQ0EsUUFBQUEsWUFBWSxHQUFHcEIsSUFBSSxDQUFDbEIsUUFBTCxDQUFjdUMsUUFBN0I7QUFDSDs7QUFDRCxXQUFLMUMsT0FBTCxJQUFnQnlDLFlBQWhCLEVBQThCO0FBQzFCLFlBQUlBLFlBQVksQ0FBQ0UsY0FBYixDQUE0QjNDLE9BQTVCLENBQUosRUFBMEM7QUFDdENPLFVBQUFBLE1BQU0sQ0FBQzRCLE1BQVAsQ0FBYyxtQ0FBbUNkLElBQUksQ0FBQ2xCLFFBQUwsQ0FBY29CLE9BQWQsQ0FBc0JxQixRQUF6RCxHQUFvRSxnQkFBcEUsR0FBdUY1QyxPQUF2RixHQUFpRyxJQUFqRyxHQUF3R3lDLFlBQVksQ0FBQ3pDLE9BQUQsQ0FBcEgsR0FBZ0ksTUFBOUk7QUFDSDtBQUNKOztBQUVETyxNQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWSxlQUFaLEVBQTZCZ0IsRUFBN0IsQ0FBZ0MsT0FBaEMsRUFBeUMsVUFBU0MsQ0FBVCxFQUFZO0FBQ2pEQSxRQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQSxZQUFJZ0IsS0FBSyxHQUFHbEQsNkNBQUMsQ0FBQyxJQUFELENBQWI7QUFDQSxZQUFJbUQsVUFBVSxHQUFHRCxLQUFLLENBQUNwQyxJQUFOLENBQVcsT0FBWCxDQUFqQjtBQUVBWSxRQUFBQSxJQUFJLENBQUNwQixXQUFMLEdBQW1CNkMsVUFBbkI7QUFDQXpCLFFBQUFBLElBQUksQ0FBQ3JCLE9BQUwsR0FBZSxNQUFNOEMsVUFBTixHQUFtQixNQUFsQyxDQU5pRCxDQVFqRDs7QUFDQXpCLFFBQUFBLElBQUksQ0FBQzBCLFFBQUwsQ0FBY3hDLE1BQWQsRUFUaUQsQ0FXakQ7O0FBQ0FjLFFBQUFBLElBQUksQ0FBQzJCLFVBQUwsQ0FBZ0J6QyxNQUFoQixFQUF3QlosNkNBQUMsQ0FBQzBCLElBQUksQ0FBQ3JCLE9BQU4sQ0FBekIsRUFBeUNxQixJQUFJLENBQUNsQixRQUFMLENBQWMrQixJQUF2RDtBQUNILE9BYkQ7QUFjSDs7O1dBRUQsa0JBQVMzQixNQUFULEVBQWlCO0FBQ2IsVUFBSWMsSUFBSSxHQUFHLElBQVg7QUFDQSxVQUFJNEIsU0FBUyxHQUFHLG9CQUFvQjVCLElBQUksQ0FBQ2xCLFFBQUwsQ0FBY29CLE9BQWQsQ0FBc0IwQixTQUExRDtBQUVBdEQsTUFBQUEsNkNBQUMsQ0FBQzBCLElBQUksQ0FBQ3JCLE9BQU4sQ0FBRCxDQUFnQjJCLEVBQWhCLENBQW1CLE9BQW5CLEVBQTRCLElBQTVCLEVBQWtDLFVBQVNDLENBQVQsRUFBWTtBQUMxQ0EsUUFBQUEsQ0FBQyxDQUFDQyxjQUFGO0FBQ0EsWUFBSWIsS0FBSyxHQUFHckIsNkNBQUMsQ0FBQyxJQUFELENBQWI7QUFDQSxZQUFJdUQsSUFBSSxHQUFHbEMsS0FBSyxDQUFDUCxJQUFOLENBQVdZLElBQUksQ0FBQ2xCLFFBQUwsQ0FBY2dELElBQXpCLENBQVgsQ0FIMEMsQ0FLMUM7O0FBQ0F4RCxRQUFBQSw2Q0FBQyxDQUFDLGdCQUFELENBQUQsQ0FBb0JtQyxXQUFwQixDQUFnQyxlQUFoQztBQUNBZCxRQUFBQSxLQUFLLENBQUNJLFFBQU4sQ0FBZSxlQUFmOztBQUNBLFlBQUlDLElBQUksQ0FBQ25CLE1BQUwsQ0FBWU8sSUFBWixDQUFpQixRQUFqQixNQUErQixPQUFuQyxFQUE0QztBQUN4Q3lDLFVBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDRSxLQUFMLENBQVcsQ0FBWCxDQUFQO0FBQ0gsU0FWeUMsQ0FZMUM7OztBQUNBL0IsUUFBQUEsSUFBSSxDQUFDbkIsTUFBTCxDQUFZZ0IsR0FBWixDQUFnQmdDLElBQWhCLEVBYjBDLENBZTFDOztBQUNBLFlBQUk3QixJQUFJLENBQUNsQixRQUFMLENBQWNrRCxXQUFsQixFQUErQjtBQUMzQmhDLFVBQUFBLElBQUksQ0FBQ2tCLFdBQUwsQ0FBaUJoQyxNQUFqQixFQUF5QlMsS0FBSyxDQUFDc0MsT0FBTixDQUFjakMsSUFBSSxDQUFDckIsT0FBbkIsQ0FBekIsRUFBc0RxQixJQUFJLENBQUNsQixRQUFMLENBQWMrQixJQUFwRTtBQUNILFNBbEJ5QyxDQW9CMUM7OztBQUNBYixRQUFBQSxJQUFJLENBQUNrQyxVQUFMLENBQWdCdkMsS0FBSyxDQUFDUCxJQUFOLENBQVcsT0FBWCxDQUFoQixFQXJCMEMsQ0F1QjFDOztBQUNBZCxRQUFBQSw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVNkQsT0FBVixDQUFrQix3QkFBbEIsRUFBNENOLElBQTVDO0FBQ0gsT0F6QkQ7QUEwQkF2RCxNQUFBQSw2Q0FBQyxDQUFDMEIsSUFBSSxDQUFDckIsT0FBTixDQUFELENBQWdCMkIsRUFBaEIsQ0FBbUIsdUJBQW5CLEVBQTRDLElBQTVDLEVBQWtELFVBQVNDLENBQVQsRUFBWTtBQUMxRCxZQUFJQSxDQUFDLENBQUNZLElBQUYsS0FBVyxZQUFmLEVBQTZCO0FBQ3pCN0MsVUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUXlCLFFBQVIsQ0FBaUI2QixTQUFqQjtBQUNILFNBRkQsTUFFTztBQUNIdEQsVUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUW1DLFdBQVIsQ0FBb0JtQixTQUFwQjtBQUNIO0FBQ0osT0FORDtBQU9IOzs7V0FFRCxvQkFBVzFDLE1BQVgsRUFBbUJrRCxNQUFuQixFQUEyQnZCLElBQTNCLEVBQWlDO0FBQzdCLFVBQUlBLElBQUksS0FBSyxRQUFiLEVBQXVCO0FBQ25CdkMsUUFBQUEsNkNBQUMsQ0FBQyxXQUFELENBQUQsQ0FBZW1DLFdBQWYsQ0FBMkIsZ0JBQTNCO0FBQ0F2QixRQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWThDLE1BQVosRUFBb0JDLFdBQXBCLENBQWdDLGdCQUFoQztBQUNILE9BSEQsTUFHTyxJQUFJeEIsSUFBSSxLQUFLLFFBQWIsRUFBdUI7QUFDMUIzQixRQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWSxvQkFBWixFQUFrQ1MsUUFBbEMsQ0FBMkMsY0FBM0M7QUFDQWIsUUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVksc0JBQVosRUFBb0NTLFFBQXBDLENBQTZDLGNBQTdDO0FBQ0FxQyxRQUFBQSxNQUFNLENBQUNyQyxRQUFQLENBQWdCLGFBQWhCO0FBQ0g7O0FBRURxQyxNQUFBQSxNQUFNLENBQUM5QyxJQUFQLENBQVksZ0JBQVosRUFBOEJtQixXQUE5QixDQUEwQyxlQUExQztBQUNBLFVBQUk2QixZQUFZLEdBQUcsS0FBS3pELE1BQUwsQ0FBWWdCLEdBQVosR0FBa0IwQyxPQUFsQixDQUEwQixHQUExQixFQUErQixHQUEvQixDQUFuQjs7QUFDQSxVQUFJRCxZQUFZLEtBQUssRUFBckIsRUFBeUI7QUFDckIsWUFBSSxLQUFLeEQsUUFBTCxDQUFjZ0QsSUFBZCxLQUF1QixPQUEzQixFQUFvQztBQUNoQ00sVUFBQUEsTUFBTSxDQUFDOUMsSUFBUCxDQUFZLE1BQU1nRCxZQUFsQixFQUFnQ3ZDLFFBQWhDLENBQXlDLGVBQXpDO0FBQ0gsU0FGRCxNQUVPO0FBQ0hxQyxVQUFBQSxNQUFNLENBQUM5QyxJQUFQLENBQVksaUJBQWlCZ0QsWUFBakIsR0FBZ0MsSUFBNUMsRUFBa0R2QyxRQUFsRCxDQUEyRCxlQUEzRDtBQUNIO0FBQ0osT0FsQjRCLENBbUI3Qjs7O0FBQ0F6QixNQUFBQSw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVNkQsT0FBVixDQUFrQiwwQkFBbEIsRUFBOEN0QixJQUE5QztBQUNIOzs7V0FFRCxxQkFBWTNCLE1BQVosRUFBb0JrRCxNQUFwQixFQUE0QnZCLElBQTVCLEVBQWtDO0FBQzlCO0FBQ0F2QyxNQUFBQSw2Q0FBQyxDQUFDLEtBQUtLLE9BQU4sQ0FBRCxDQUFnQjZELEdBQWhCLENBQW9CLE9BQXBCLEVBQTZCLElBQTdCOztBQUVBLFVBQUkzQixJQUFJLEtBQUssUUFBYixFQUF1QjtBQUNuQjNCLFFBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxDQUFZOEMsTUFBWixFQUFvQjNCLFdBQXBCLENBQWdDLGdCQUFoQztBQUNILE9BRkQsTUFFTyxJQUFJSSxJQUFJLEtBQUssUUFBYixFQUF1QjtBQUMxQnZDLFFBQUFBLDZDQUFDLENBQUMsMENBQUQsQ0FBRCxDQUE4Q21DLFdBQTlDLENBQTBELGNBQTFEO0FBQ0gsT0FSNkIsQ0FTOUI7OztBQUNBbkMsTUFBQUEsNkNBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVTZELE9BQVYsQ0FBa0IsMkJBQWxCLEVBQStDdEIsSUFBL0M7QUFDQXZDLE1BQUFBLDZDQUFDLENBQUMsV0FBRCxDQUFELENBQWVtQyxXQUFmLENBQTJCLGFBQTNCO0FBQ0g7OztXQUVELG9CQUFXZ0MsT0FBWCxFQUFvQjtBQUNoQixVQUFJcEQsUUFBUSxHQUFHZiw2Q0FBQyxDQUFDLEtBQUtHLE9BQU4sQ0FBRCxDQUFnQmEsSUFBaEIsQ0FBcUIsZUFBckIsQ0FBZjtBQUVBRCxNQUFBQSxRQUFRLENBQUNVLFFBQVQsQ0FBa0IsaUJBQWxCLEVBQXFDVCxJQUFyQyxDQUEwQyxHQUExQyxFQUErQ21CLFdBQS9DLEdBQ0tWLFFBREwsQ0FDYyxLQUFLbkIsV0FEbkIsRUFFS21CLFFBRkwsQ0FFYzBDLE9BRmQ7QUFHQXBELE1BQUFBLFFBQVEsQ0FBQ0MsSUFBVCxDQUFjLEdBQWQsRUFBbUJlLElBQW5CO0FBQ0g7Ozs7O0FBR0w7QUFDQTs7O0FBQ0EvQiwrREFBQSxHQUFvQixVQUFTSSxPQUFULEVBQWtCO0FBQ2xDLE9BQUtrRSxJQUFMLENBQVUsWUFBVztBQUNqQixRQUFJLENBQUN0RSxrREFBQSxDQUFPLElBQVAsRUFBYSxxQkFBYixDQUFMLEVBQTBDO0FBQ3RDQSxNQUFBQSxrREFBQSxDQUFPLElBQVAsRUFBYSxxQkFBYixFQUFvQyxJQUFJRSxjQUFKLENBQW1CLElBQW5CLEVBQXlCRSxPQUF6QixDQUFwQztBQUNIO0FBQ0osR0FKRDtBQU1BLFNBQU8sSUFBUDtBQUNILENBUkQ7O0lBVXFCbUU7QUFFakIsMkJBQVluRSxPQUFaLEVBQXFCO0FBQUE7O0FBQUE7O0FBQ2pCLFNBQUtvRSxLQUFMLEdBQWF4RSw2Q0FBQyxFQUFkO0FBQ0EsU0FBS0ksT0FBTCxHQUFlcUUsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLekUsUUFBdkIsRUFBaUNHLE9BQWpDLENBQWY7QUFFQUosSUFBQUEsNkNBQUMsQ0FBQyx3QkFBRCxDQUFELENBQTRCc0UsSUFBNUIsQ0FBaUMsVUFBQ0ssS0FBRCxFQUFReEUsT0FBUjtBQUFBLGFBQW9CLEtBQUksQ0FBQ3lFLE9BQUwsQ0FBYXpFLE9BQWIsQ0FBcEI7QUFBQSxLQUFqQztBQUNBSCxJQUFBQSw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVZ0MsRUFBVixDQUFhLGdCQUFiLEVBQStCLEtBQUs2QyxhQUFMLENBQW1CQyxJQUFuQixDQUF3QixJQUF4QixDQUEvQjtBQUNIOzs7O1dBRUQsdUJBQWNDLEtBQWQsRUFBcUJDO0FBQU07QUFBM0IsTUFBcUQ7QUFBQTs7QUFDakQsVUFBSUMsTUFBTSxHQUFHakYsNkNBQUMsQ0FBQ2dGLE1BQUQsQ0FBRCxDQUFVaEUsSUFBVixDQUFlLHdCQUFmLENBQWI7O0FBQ0EsVUFBSSxDQUFDaUUsTUFBTSxDQUFDdEMsTUFBWixFQUFvQjtBQUFFO0FBQVM7O0FBRS9Cc0MsTUFBQUEsTUFBTSxDQUFDWCxJQUFQLENBQVksVUFBQ0ssS0FBRCxFQUFRTyxLQUFSLEVBQWtCO0FBQzFCQSxRQUFBQSxLQUFLLEdBQUdsRiw2Q0FBQyxDQUFDa0YsS0FBRCxDQUFUOztBQUNBLFlBQUksQ0FBQyxDQUFDLE1BQUksQ0FBQ1YsS0FBTCxDQUFXRyxLQUFYLENBQWlCTyxLQUFqQixDQUFOLEVBQStCO0FBQzNCLGdCQUFJLENBQUNOLE9BQUwsQ0FBYU0sS0FBYjtBQUNIO0FBQ0osT0FMRDtBQU1IOzs7V0FFRCxpQkFBUS9FLE9BQVIsRUFBaUI7QUFDYkEsTUFBQUEsT0FBTyxHQUFHSCw2Q0FBQyxDQUFDRyxPQUFELENBQVg7QUFDQSxXQUFLcUUsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV1csR0FBWCxDQUFlaEYsT0FBZixDQUFiO0FBQ0FBLE1BQUFBLE9BQU8sQ0FBQ2EsSUFBUixDQUFhLGNBQWIsRUFBNkJxRCxZQUE3QixDQUEwQztBQUN0QyxnQkFBUTtBQUQ4QixPQUExQyxFQUhhLENBT2I7O0FBQ0FyRSxNQUFBQSw2Q0FBQyxDQUFDLHVCQUFELENBQUQsQ0FBMkJvRixNQUEzQjtBQUNIOzs7Ozs7O0FBR0UsSUFBSUMsUUFBUSxHQUFHLElBQUlkLGVBQUosRUFBZixFQUVQOztBQUNBdkUsNkNBQUMsQ0FBQ3NGLFFBQUQsQ0FBRCxDQUFZdEQsRUFBWixDQUFlLE9BQWYsRUFBd0IsVUFBQytDLEtBQUQsRUFBVztBQUMvQixNQUFNQyxNQUFNLEdBQUdoRiw2Q0FBQyxDQUFDK0UsS0FBSyxDQUFDQyxNQUFQLENBQWhCO0FBQ0EsTUFBTU8sS0FBSyxHQUFHLGtEQUFkOztBQUNBLE1BQUksQ0FBQ1AsTUFBTSxDQUFDUSxFQUFQLENBQVVELEtBQVYsQ0FBRCxJQUFxQixDQUFDUCxNQUFNLENBQUNyQixPQUFQLENBQWU0QixLQUFmLEVBQXNCNUMsTUFBaEQsRUFBd0Q7QUFDcEQsUUFBTThDLE9BQU8sR0FBR3pGLDZDQUFDLENBQUMsdUJBQUQsQ0FBakIsQ0FEb0QsQ0FHcEQ7O0FBQ0EsUUFBSXlGLE9BQU8sQ0FBQzlDLE1BQVosRUFBb0I7QUFDaEI4QyxNQUFBQSxPQUFPLENBQUNuQixJQUFSLENBQWEsVUFBQ0ssS0FBRCxFQUFRZSxNQUFSLEVBQW1CO0FBQzVCLFlBQU1DLE1BQU0sR0FBRzNGLDZDQUFDLENBQUMwRixNQUFELENBQUQsQ0FBVUUsUUFBVixDQUFtQixjQUFuQixDQUFmO0FBQ0EsWUFBTTlFLElBQUksR0FBRzZFLE1BQU0sQ0FBQzdFLElBQVAsQ0FBWSxxQkFBWixDQUFiO0FBQ0FBLFFBQUFBLElBQUksQ0FBQzhCLFdBQUwsQ0FBaUIrQyxNQUFqQixFQUF5QjNGLDZDQUFDLENBQUNjLElBQUksQ0FBQ1QsT0FBTixDQUExQixFQUEwQ1MsSUFBSSxDQUFDTixRQUFMLENBQWMrQixJQUF4RDtBQUNILE9BSkQ7QUFLSDtBQUNKO0FBQ0osQ0FmRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2ljb25waWNrZXIuanM/NWQ0MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4vKiBJY29uIFBpY2tlciBieSBRdWVyeUxvb3BcbiAqIEF1dGhvcjogQGVsaW9yaXZlcm9cbiAqIFVSTDogaHR0cDovL3F1ZXJ5bG9vcC5jb20vXG4gKiBMaWNlbnNlOiBHUEx2MlxuICovXG5cbnZhciBkZWZhdWx0cyA9IHtcbiAgICAnbW9kZSc6ICdkaWFsb2cnLCAvLyBzaG93IG92ZXJsYXkgJ2RpYWxvZycgcGFuZWwgb3Igc2xpZGUgZG93biAnaW5saW5lJyBwYW5lbFxuICAgICdjbG9zZU9uUGljayc6IHRydWUsIC8vIHdoZXRoZXIgdG8gY2xvc2UgcGFuZWwgYWZ0ZXIgcGlja2luZyBvciAnbm8nXG4gICAgJ3NhdmUnOiAnY2xhc3MnLCAvLyBzYXZlIGljb24gJ2NsYXNzJyBvciAnY29kZSdcbiAgICAnc2l6ZSc6ICcnLFxuICAgICdjbGFzc2VzJzoge1xuICAgICAgICAnbGF1bmNoZXInOiAnJywgLy8gZXh0cmEgY2xhc3NlcyBmb3IgbGF1bmNoZXIgYnV0dG9uc1xuICAgICAgICAnY2xlYXInOiAncmVtb3ZlLXRpbWVzJywgLy8gZXh0cmEgY2xhc3NlcyBmb3IgYnV0dG9uIHRoYXQgcmVtb3ZlcyBwcmV2aWV3IGFuZCBjbGVhcnMgZmllbGRcbiAgICAgICAgJ2hpZ2hsaWdodCc6ICcnLCAvLyBleHRyYSBjbGFzc2VzIHdoZW4gaGlnaGxpZ2h0aW5nIGFuIGljb25cbiAgICAgICAgJ2Nsb3NlJzogJycgLy8gZXh0cmEgY2xhc3NlcyBmb3IgY2xvc2UgYnV0dG9uXG4gICAgfSxcbiAgICAnaWNvblNldHMnOiB7IC8vIGV4YW1wbGUgZGF0YSBzdHJ1Y3R1cmUuIFVzZWQgdG8gc3BlY2lmeSB3aGljaCBsYXVuY2hlcnMgd2lsbCBiZSBjcmVhdGVkXG4gICAgICAgICdnZW5lcmljb24nOiAnR2VuZXJpY29uJywgLy8gY3JlYXRlIGEgbGF1bmNoZXIgdG8gcGljayBnZW5lcmljb24gaWNvbnNcbiAgICAgICAgJ2ZhJzogJ0ZvbnRBd2Vzb21lJyAvLyBjcmVhdGUgYSBsYXVuY2hlciB0byBwaWNrIGZvbnRhd2Vzb21lIGljb25zXG4gICAgfVxufTtcblxuY2xhc3MgUUxfSWNvbl9QaWNrZXIge1xuXG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmljb25TZXQgPSAnJztcbiAgICAgICAgdGhpcy5pY29uU2V0TmFtZSA9ICcnO1xuICAgICAgICB0aGlzLiRmaWVsZCA9ICcnO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gJC5leHRlbmQoe30sIGRlZmF1bHRzLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgdmFyICRicmljayA9ICQodGhpcy5lbGVtZW50KTtcbiAgICAgICAgdmFyIHBpY2tlcklkID0gJGJyaWNrLmRhdGEoJ3BpY2tlcmlkJyk7XG4gICAgICAgIHZhciAkcHJldmlldyA9ICQoJzxkaXYgY2xhc3M9XCJpY29uLXByZXZpZXcgaWNvbi1wcmV2aWV3LScgKyBwaWNrZXJJZCArICdcIiAvPicpO1xuXG4gICAgICAgIHRoaXMuJGZpZWxkID0gJGJyaWNrLmZpbmQoJ2lucHV0Jyk7XG5cbiAgICAgICAgLy8gQWRkIHByZXZpZXcgYXJlYVxuICAgICAgICB0aGlzLm1ha2VQcmV2aWV3KCRicmljaywgcGlja2VySWQsICRwcmV2aWV3KTtcblxuICAgICAgICAvLyBNYWtlIGJ1dHRvbiB0byBjbGVhciBmaWVsZCBhbmQgcmVtb3ZlIHByZXZpZXdcbiAgICAgICAgdGhpcy5tYWtlQ2xlYXIocGlja2VySWQsICRwcmV2aWV3KTtcblxuICAgICAgICAvLyBNYWtlIGJ1dHRvbnMgdGhhdCBvcGVuIHRoZSBwYW5lbCBvZiBpY29uc1xuICAgICAgICB0aGlzLm1ha2VMYXVuY2hlcnMoJGJyaWNrLCBwaWNrZXJJZCk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSBkaXNwbGF5IHN0eWxlcywgaW5saW5lIGFuZCBkaWFsb2dcbiAgICAgICAgdGhpcy5tYWtlRGlzcGxheSgkYnJpY2spO1xuICAgIH1cblxuICAgIG1ha2VQcmV2aWV3KCRicmljaywgcGlja2VySWQsICRwcmV2aWV3KSB7XG4gICAgICAgIHZhciAkaWNvbiA9ICQoJzxpIC8+Jyk7XG4gICAgICAgIHZhciBpY29uVmFsdWUgPSB0aGlzLiRmaWVsZC52YWwoKTtcblxuICAgICAgICAkcHJldmlldy5wcmVwZW5kVG8oJGJyaWNrKTtcbiAgICAgICAgJGljb24ucHJlcGVuZFRvKCRwcmV2aWV3KTtcbiAgICAgICAgaWYgKGljb25WYWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgICRwcmV2aWV3LmFkZENsYXNzKCdpY29uLXByZXZpZXctb24nKTtcbiAgICAgICAgICAgICRpY29uLmFkZENsYXNzKGljb25WYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYWtlQ2xlYXIocGlja2VySWQsICRwcmV2aWV3KSB7XG4gICAgICAgIHZhciBiYXNlID0gdGhpcztcbiAgICAgICAgdmFyICRjbGVhciA9ICQoJzxhIGNsYXNzPVwicmVtb3ZlLWljb24gJyArIGJhc2Uuc2V0dGluZ3MuY2xhc3Nlcy5jbGVhciArICdcIiAvPicpO1xuXG4gICAgICAgIC8vIEhpZGUgYnV0dG9uIHRvIHJlbW92ZSBpY29uIGFuZCBwcmV2aWV3IGFuZCBhcHBlbmQgaXQgdG8gcHJldmlldyBhcmVhXG4gICAgICAgICRjbGVhci5oaWRlKCkucHJlcGVuZFRvKCRwcmV2aWV3KTtcbiAgICAgICAgLy8gSWYgdGhlcmUncyBhIGljb24gc2F2ZWQgaW4gdGhlIGZpZWxkLCBzaG93IHJlbW92ZSBpY29uIGJ1dHRvblxuICAgICAgICBpZiAoYmFzZS4kZmllbGQudmFsKCkgIT09ICcnKSB7XG4gICAgICAgICAgICAkY2xlYXIuc2hvdygpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHByZXZpZXcub24oJ2NsaWNrJywgJy5yZW1vdmUtaWNvbicsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGJhc2UuJGZpZWxkLnZhbCgnJyk7XG4gICAgICAgICAgICAkcHJldmlldy5yZW1vdmVDbGFzcygnaWNvbi1wcmV2aWV3LW9uJykuZmluZCgnaScpLnJlbW92ZUNsYXNzKCk7XG4gICAgICAgICAgICAkKHRoaXMpLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWFrZURpc3BsYXkoJGJyaWNrKSB7XG4gICAgICAgIHZhciBiYXNlID0gdGhpcztcbiAgICAgICAgdmFyIGNsb3NlID0gYmFzZS5zZXR0aW5ncy5jbGFzc2VzLmNsb3NlO1xuICAgICAgICB2YXIgJGJvZHkgPSAkKCdib2R5Jyk7XG5cbiAgICAgICAgdmFyICRjbG9zZSA9ICQoJzxhIGhyZWY9XCIjXCIgY2xhc3M9XCJpY29uLXBpY2tlci1jbG9zZVwiLz4nKTtcblxuICAgICAgICBpZiAoYmFzZS5zZXR0aW5ncy5tb2RlID09PSAnaW5saW5lJykge1xuICAgICAgICAgICAgJGJyaWNrLmZpbmQoJy5pY29uLXNldCcpLmFwcGVuZCgkY2xvc2UpLnJlbW92ZUNsYXNzKCdkaWFsb2cnKS5hZGRDbGFzcygnaXAtaW5saW5lICcgKyBiYXNlLnNldHRpbmdzLnNpemUpLnBhcmVudCgpLmFkZENsYXNzKCdpY29uLXNldC13cmFwJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoYmFzZS5zZXR0aW5ncy5tb2RlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgJCgnLmljb24tc2V0JykuYWRkQ2xhc3MoJ2RpYWxvZyAnICsgYmFzZS5zZXR0aW5ncy5zaXplKTtcbiAgICAgICAgICAgIGlmICgkKCcuaWNvbi1waWNrZXItb3ZlcmxheScpLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgJGJvZHkuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiaWNvbi1waWNrZXItb3ZlcmxheVwiLz4nKS5hcHBlbmQoJGNsb3NlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYm9keVxuICAgICAgICAgICAgLm9uKCdjbGljaycsICcuaWNvbi1waWNrZXItY2xvc2UsIC5pY29uLXBpY2tlci1vdmVybGF5JywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBiYXNlLmNsb3NlUGlja2VyKCRicmljaywgJChiYXNlLmljb25TZXQpLCBiYXNlLnNldHRpbmdzLm1vZGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5vbignbW91c2VlbnRlciBtb3VzZWxlYXZlJywgJy5pY29uLXBpY2tlci1jbG9zZScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS50eXBlID09PSAnbW91c2VlbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhjbG9zZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhjbG9zZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWFrZUxhdW5jaGVycygkYnJpY2spIHtcbiAgICAgICAgdmFyIGJhc2UgPSB0aGlzO1xuICAgICAgICB2YXIgZGF0YUljb25TZXRzID0gJGJyaWNrLmRhdGEoJ2ljb25zZXRzJyk7XG4gICAgICAgIHZhciBpY29uU2V0O1xuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YUljb25TZXRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgZGF0YUljb25TZXRzID0gYmFzZS5zZXR0aW5ncy5pY29uU2V0cztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGljb25TZXQgaW4gZGF0YUljb25TZXRzKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUljb25TZXRzLmhhc093blByb3BlcnR5KGljb25TZXQpKSB7XG4gICAgICAgICAgICAgICAgJGJyaWNrLmFwcGVuZCgnPGEgY2xhc3M9XCJsYXVuY2gtaWNvbnMgYnV0dG9uICcgKyBiYXNlLnNldHRpbmdzLmNsYXNzZXMubGF1bmNoZXIgKyAnXCIgZGF0YS1pY29ucz1cIicgKyBpY29uU2V0ICsgJ1wiPicgKyBkYXRhSWNvblNldHNbaWNvblNldF0gKyAnPC9hPicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJGJyaWNrLmZpbmQoJy5sYXVuY2gtaWNvbnMnKS5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMpO1xuICAgICAgICAgICAgdmFyIHRoZXNlSWNvbnMgPSAkc2VsZi5kYXRhKCdpY29ucycpO1xuXG4gICAgICAgICAgICBiYXNlLmljb25TZXROYW1lID0gdGhlc2VJY29ucztcbiAgICAgICAgICAgIGJhc2UuaWNvblNldCA9ICcuJyArIHRoZXNlSWNvbnMgKyAnLXNldCc7XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgcGlja2VyXG4gICAgICAgICAgICBiYXNlLmljb25QaWNrKCRicmljayk7XG5cbiAgICAgICAgICAgIC8vIFNob3cgaWNvbiBwaWNrZXJcbiAgICAgICAgICAgIGJhc2Uuc2hvd1BpY2tlcigkYnJpY2ssICQoYmFzZS5pY29uU2V0KSwgYmFzZS5zZXR0aW5ncy5tb2RlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWNvblBpY2soJGJyaWNrKSB7XG4gICAgICAgIHZhciBiYXNlID0gdGhpcztcbiAgICAgICAgdmFyIGhpZ2hsaWdodCA9ICdpY29uLWhpZ2hsaWdodCAnICsgYmFzZS5zZXR0aW5ncy5jbGFzc2VzLmhpZ2hsaWdodDtcblxuICAgICAgICAkKGJhc2UuaWNvblNldCkub24oJ2NsaWNrJywgJ2xpJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdmFyICRpY29uID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBpY29uID0gJGljb24uZGF0YShiYXNlLnNldHRpbmdzLnNhdmUpO1xuXG4gICAgICAgICAgICAvLyBNYXJrIGFzIHNlbGVjdGVkXG4gICAgICAgICAgICAkKCcuaWNvbi1zZWxlY3RlZCcpLnJlbW92ZUNsYXNzKCdpY29uLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICAkaWNvbi5hZGRDbGFzcygnaWNvbi1zZWxlY3RlZCcpO1xuICAgICAgICAgICAgaWYgKGJhc2UuJGZpZWxkLmRhdGEoJ2Zvcm1hdCcpID09PSAnc2hvcnQnKSB7XG4gICAgICAgICAgICAgICAgaWNvbiA9IGljb24uc2xpY2UoNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNhdmUgaWNvbiB2YWx1ZSB0byBmaWVsZFxuICAgICAgICAgICAgYmFzZS4kZmllbGQudmFsKGljb24pO1xuXG4gICAgICAgICAgICAvLyBDbG9zZSBpY29uIHBpY2tlclxuICAgICAgICAgICAgaWYgKGJhc2Uuc2V0dGluZ3MuY2xvc2VPblBpY2spIHtcbiAgICAgICAgICAgICAgICBiYXNlLmNsb3NlUGlja2VyKCRicmljaywgJGljb24uY2xvc2VzdChiYXNlLmljb25TZXQpLCBiYXNlLnNldHRpbmdzLm1vZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTZXQgcHJldmlld1xuICAgICAgICAgICAgYmFzZS5zZXRQcmV2aWV3KCRpY29uLmRhdGEoJ2NsYXNzJykpO1xuXG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgZXZlbnQgcGFzc2luZyB0aGUgc2VsZWN0ZWQgaWNvbi5cbiAgICAgICAgICAgICQoJ2JvZHknKS50cmlnZ2VyKCdpY29uc2VsZWN0ZWQucXVlcnlsb29wJywgaWNvbik7XG4gICAgICAgIH0pO1xuICAgICAgICAkKGJhc2UuaWNvblNldCkub24oJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScsICdsaScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdtb3VzZWVudGVyJykge1xuICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoaGlnaGxpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhoaWdobGlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93UGlja2VyKCRicmljaywgJGljb25zLCBtb2RlKSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnaW5saW5lJykge1xuICAgICAgICAgICAgJCgnLmljb24tc2V0JykucmVtb3ZlQ2xhc3MoJ2lwLWlubGluZS1vcGVuJyk7XG4gICAgICAgICAgICAkYnJpY2suZmluZCgkaWNvbnMpLnRvZ2dsZUNsYXNzKCdpcC1pbmxpbmUtb3BlbicpO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgICAgICAkYnJpY2suZmluZCgnLmljb24tcGlja2VyLWNsb3NlJykuYWRkQ2xhc3MoJ21ha2UtdmlzaWJsZScpO1xuICAgICAgICAgICAgJGJyaWNrLmZpbmQoJy5pY29uLXBpY2tlci1vdmVybGF5JykuYWRkQ2xhc3MoJ21ha2UtdmlzaWJsZScpO1xuICAgICAgICAgICAgJGljb25zLmFkZENsYXNzKCdkaWFsb2ctb3BlbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGljb25zLmZpbmQoJy5pY29uLXNlbGVjdGVkJykucmVtb3ZlQ2xhc3MoJ2ljb24tc2VsZWN0ZWQnKTtcbiAgICAgICAgdmFyIHNlbGVjdGVkSWNvbiA9IHRoaXMuJGZpZWxkLnZhbCgpLnJlcGxhY2UoJyAnLCAnLicpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJY29uICE9PSAnJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2F2ZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgICAgICAgICRpY29ucy5maW5kKCcuJyArIHNlbGVjdGVkSWNvbikuYWRkQ2xhc3MoJ2ljb24tc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGljb25zLmZpbmQoJ1tkYXRhLWNvZGU9XCInICsgc2VsZWN0ZWRJY29uICsgJ1wiXScpLmFkZENsYXNzKCdpY29uLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQnJvYWRjYXN0IGV2ZW50IHdoZW4gdGhlIHBpY2tlciBpcyBzaG93biBwYXNzaW5nIHRoZSBwaWNrZXIgbW9kZS5cbiAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ2ljb25waWNrZXJzaG93LnF1ZXJ5bG9vcCcsIG1vZGUpO1xuICAgIH1cblxuICAgIGNsb3NlUGlja2VyKCRicmljaywgJGljb25zLCBtb2RlKSB7XG4gICAgICAgIC8vIFJlbW92ZSBldmVudCBzbyB0aGV5IGRvbid0IGZpcmUgZnJvbSBhIGRpZmZlcmVudCBwaWNrZXJcbiAgICAgICAgJCh0aGlzLmljb25TZXQpLm9mZignY2xpY2snLCAnbGknKTtcblxuICAgICAgICBpZiAobW9kZSA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICRicmljay5maW5kKCRpY29ucykucmVtb3ZlQ2xhc3MoJ2lwLWlubGluZS1vcGVuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgICAgICQoJy5pY29uLXBpY2tlci1jbG9zZSwgLmljb24tcGlja2VyLW92ZXJsYXknKS5yZW1vdmVDbGFzcygnbWFrZS12aXNpYmxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQnJvYWRjYXN0IGV2ZW50IHdoZW4gdGhlIHBpY2tlciBpcyBjbG9zZWQgcGFzc2luZyB0aGUgcGlja2VyIG1vZGUuXG4gICAgICAgICQoJ2JvZHknKS50cmlnZ2VyKCdpY29ucGlja2VyY2xvc2UucXVlcnlsb29wJywgbW9kZSk7XG4gICAgICAgICQoJy5pY29uLXNldCcpLnJlbW92ZUNsYXNzKCdkaWFsb2ctb3BlbicpO1xuICAgIH1cblxuICAgIHNldFByZXZpZXcocHJldmlldykge1xuICAgICAgICB2YXIgJHByZXZpZXcgPSAkKHRoaXMuZWxlbWVudCkuZmluZCgnLmljb24tcHJldmlldycpO1xuXG4gICAgICAgICRwcmV2aWV3LmFkZENsYXNzKCdpY29uLXByZXZpZXctb24nKS5maW5kKCdpJykucmVtb3ZlQ2xhc3MoKVxuICAgICAgICAgICAgLmFkZENsYXNzKHRoaXMuaWNvblNldE5hbWUpXG4gICAgICAgICAgICAuYWRkQ2xhc3MocHJldmlldyk7XG4gICAgICAgICRwcmV2aWV3LmZpbmQoJ2EnKS5zaG93KCk7XG4gICAgfVxufVxuXG4vKiBHcmF2ICovXG4vLyBleHRlbmQgJCB3aXRoIDNyZCBwYXJ0eSBRTCBJY29uIFBpY2tlclxuJC5mbi5xbEljb25QaWNrZXIgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoISQuZGF0YSh0aGlzLCAncGx1Z2luX3FsSWNvblBpY2tlcicpKSB7XG4gICAgICAgICAgICAkLmRhdGEodGhpcywgJ3BsdWdpbl9xbEljb25QaWNrZXInLCBuZXcgUUxfSWNvbl9QaWNrZXIodGhpcywgb3B0aW9ucykpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEljb25waWNrZXJGaWVsZCB7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtaWNvbnBpY2tlcl0nKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4gdGhpcy5hZGRJdGVtKGVsZW1lbnQpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBfb25BZGRlZE5vZGVzKGV2ZW50LCB0YXJnZXQvKiAsIHJlY29yZCwgaW5zdGFuY2UgKi8pIHtcbiAgICAgICAgbGV0IGZpZWxkcyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS1ncmF2LWljb25waWNrZXJdJyk7XG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmFkZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5maW5kKCcuaWNvbi1waWNrZXInKS5xbEljb25QaWNrZXIoe1xuICAgICAgICAgICAgJ3NhdmUnOiAnY2xhc3MnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGhhY2sgdG8gcmVtb3ZlIGV4dHJhIGljb24gc2V0cyB0aGF0IGFyZSBqdXN0IGNvcGllc1xuICAgICAgICAkKCcuaWNvbi1zZXQ6bm90KDpmaXJzdCknKS5yZW1vdmUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgSWNvbnBpY2tlckZpZWxkKCk7XG5cbi8vIEZpeCB0byBjbG9zZSB0aGUgZGlhbG9nIHdoZW4gY2xpY2tpbmcgb3V0c2lkZVxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpO1xuICAgIGNvbnN0IG1hdGNoID0gJy5pY29uLXNldC5kaWFsb2ctb3BlbiwgLmxhdW5jaC1pY29uc1tkYXRhLWljb25zXSc7XG4gICAgaWYgKCF0YXJnZXQuaXMobWF0Y2gpICYmICF0YXJnZXQuY2xvc2VzdChtYXRjaCkubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ3MgPSAkKCcuaWNvbi1zZXQuZGlhbG9nLW9wZW4nKTtcblxuICAgICAgICAvLyBza2lwIGlmIHRoZXJlJ3Mgbm8gZGlhbG9nIG9wZW5cbiAgICAgICAgaWYgKGRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICBkaWFsb2dzLmVhY2goKGluZGV4LCBkaWFsb2cpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwaWNrZXIgPSAkKGRpYWxvZykuc2libGluZ3MoJy5pY29uLXBpY2tlcicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBwaWNrZXIuZGF0YSgncGx1Z2luX3FsSWNvblBpY2tlcicpO1xuICAgICAgICAgICAgICAgIGRhdGEuY2xvc2VQaWNrZXIocGlja2VyLCAkKGRhdGEuaWNvblNldCksIGRhdGEuc2V0dGluZ3MubW9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkZWZhdWx0cyIsIlFMX0ljb25fUGlja2VyIiwiZWxlbWVudCIsIm9wdGlvbnMiLCJpY29uU2V0IiwiaWNvblNldE5hbWUiLCIkZmllbGQiLCJzZXR0aW5ncyIsImV4dGVuZCIsIl9kZWZhdWx0cyIsImluaXQiLCIkYnJpY2siLCJwaWNrZXJJZCIsImRhdGEiLCIkcHJldmlldyIsImZpbmQiLCJtYWtlUHJldmlldyIsIm1ha2VDbGVhciIsIm1ha2VMYXVuY2hlcnMiLCJtYWtlRGlzcGxheSIsIiRpY29uIiwiaWNvblZhbHVlIiwidmFsIiwicHJlcGVuZFRvIiwiYWRkQ2xhc3MiLCJiYXNlIiwiJGNsZWFyIiwiY2xhc3NlcyIsImNsZWFyIiwiaGlkZSIsInNob3ciLCJvbiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZUNsYXNzIiwiY2xvc2UiLCIkYm9keSIsIiRjbG9zZSIsIm1vZGUiLCJhcHBlbmQiLCJzaXplIiwicGFyZW50IiwibGVuZ3RoIiwiY2xvc2VQaWNrZXIiLCJ0eXBlIiwiZGF0YUljb25TZXRzIiwiaWNvblNldHMiLCJoYXNPd25Qcm9wZXJ0eSIsImxhdW5jaGVyIiwiJHNlbGYiLCJ0aGVzZUljb25zIiwiaWNvblBpY2siLCJzaG93UGlja2VyIiwiaGlnaGxpZ2h0IiwiaWNvbiIsInNhdmUiLCJzbGljZSIsImNsb3NlT25QaWNrIiwiY2xvc2VzdCIsInNldFByZXZpZXciLCJ0cmlnZ2VyIiwiJGljb25zIiwidG9nZ2xlQ2xhc3MiLCJzZWxlY3RlZEljb24iLCJyZXBsYWNlIiwib2ZmIiwicHJldmlldyIsImZuIiwicWxJY29uUGlja2VyIiwiZWFjaCIsIkljb25waWNrZXJGaWVsZCIsIml0ZW1zIiwiT2JqZWN0IiwiYXNzaWduIiwiaW5kZXgiLCJhZGRJdGVtIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJldmVudCIsInRhcmdldCIsImZpZWxkcyIsImZpZWxkIiwiYWRkIiwicmVtb3ZlIiwiSW5zdGFuY2UiLCJkb2N1bWVudCIsIm1hdGNoIiwiaXMiLCJkaWFsb2dzIiwiZGlhbG9nIiwicGlja2VyIiwic2libGluZ3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/iconpicker.js\n");
/***/ }),
/***/ "./app/forms/fields/indeterminate.js":
/*!*******************************************!*\
!*** ./app/forms/fields/indeterminate.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\ndocument.addEventListener('click', function (event) {\n if (document.querySelector('#pages-filters')) {\n return true;\n }\n\n var wrapper = event.target.closest('.checkboxes.indeterminate');\n\n if (wrapper) {\n event.preventDefault();\n var checkbox = wrapper.querySelector('input[type=\"checkbox\"]:not([disabled])');\n var checkStatus = wrapper.dataset._checkStatus;\n wrapper.classList.remove('status-checked', 'status-unchecked', 'status-indeterminate');\n\n switch (checkStatus) {\n // checked, going indeterminate\n case '1':\n wrapper.dataset._checkStatus = '2';\n checkbox.indeterminate = true;\n checkbox.checked = false;\n checkbox.value = 0;\n wrapper.classList.add('status-indeterminate');\n break;\n // indeterminate, going unchecked\n\n case '2':\n wrapper.dataset._checkStatus = '0';\n checkbox.indeterminate = false;\n checkbox.checked = false;\n checkbox.value = '';\n wrapper.classList.add('status-unchecked');\n break;\n // unchecked, going checked\n\n case '0':\n default:\n wrapper.dataset._checkStatus = '1';\n checkbox.indeterminate = false;\n checkbox.checked = true;\n checkbox.value = 1;\n wrapper.classList.add('status-checked');\n break;\n } // const input = new CustomEvent('input', { detail: { target: checkbox }});\n // document.dispatchEvent(input);\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(checkbox).trigger('input');\n }\n});\n(document.querySelectorAll('input[type=\"checkbox\"][indeterminate=\"true\"]') || []).forEach(function (input) {\n input.indeterminate = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2luZGV0ZXJtaW5hdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUMsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixPQUExQixFQUFtQyxVQUFDQyxLQUFELEVBQVc7QUFDMUMsTUFBSUYsUUFBUSxDQUFDRyxhQUFULENBQXVCLGdCQUF2QixDQUFKLEVBQThDO0FBQzFDLFdBQU8sSUFBUDtBQUNIOztBQUVELE1BQU1DLE9BQU8sR0FBR0YsS0FBSyxDQUFDRyxNQUFOLENBQWFDLE9BQWIsQ0FBcUIsMkJBQXJCLENBQWhCOztBQUVBLE1BQUlGLE9BQUosRUFBYTtBQUNURixJQUFBQSxLQUFLLENBQUNLLGNBQU47QUFDQSxRQUFNQyxRQUFRLEdBQUdKLE9BQU8sQ0FBQ0QsYUFBUixDQUFzQix3Q0FBdEIsQ0FBakI7QUFDQSxRQUFNTSxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBcEM7QUFDQVAsSUFBQUEsT0FBTyxDQUFDUSxTQUFSLENBQWtCQyxNQUFsQixDQUF5QixnQkFBekIsRUFBMkMsa0JBQTNDLEVBQStELHNCQUEvRDs7QUFFQSxZQUFRSixXQUFSO0FBQ0k7QUFDQSxXQUFLLEdBQUw7QUFDSUwsUUFBQUEsT0FBTyxDQUFDTSxPQUFSLENBQWdCQyxZQUFoQixHQUErQixHQUEvQjtBQUNBSCxRQUFBQSxRQUFRLENBQUNNLGFBQVQsR0FBeUIsSUFBekI7QUFDQU4sUUFBQUEsUUFBUSxDQUFDTyxPQUFULEdBQW1CLEtBQW5CO0FBQ0FQLFFBQUFBLFFBQVEsQ0FBQ1EsS0FBVCxHQUFpQixDQUFqQjtBQUNBWixRQUFBQSxPQUFPLENBQUNRLFNBQVIsQ0FBa0JLLEdBQWxCLENBQXNCLHNCQUF0QjtBQUNBO0FBRUo7O0FBQ0EsV0FBSyxHQUFMO0FBQ0liLFFBQUFBLE9BQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBaEIsR0FBK0IsR0FBL0I7QUFDQUgsUUFBQUEsUUFBUSxDQUFDTSxhQUFULEdBQXlCLEtBQXpCO0FBQ0FOLFFBQUFBLFFBQVEsQ0FBQ08sT0FBVCxHQUFtQixLQUFuQjtBQUNBUCxRQUFBQSxRQUFRLENBQUNRLEtBQVQsR0FBaUIsRUFBakI7QUFDQVosUUFBQUEsT0FBTyxDQUFDUSxTQUFSLENBQWtCSyxHQUFsQixDQUFzQixrQkFBdEI7QUFDQTtBQUVKOztBQUNBLFdBQUssR0FBTDtBQUNBO0FBQ0liLFFBQUFBLE9BQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBaEIsR0FBK0IsR0FBL0I7QUFDQUgsUUFBQUEsUUFBUSxDQUFDTSxhQUFULEdBQXlCLEtBQXpCO0FBQ0FOLFFBQUFBLFFBQVEsQ0FBQ08sT0FBVCxHQUFtQixJQUFuQjtBQUNBUCxRQUFBQSxRQUFRLENBQUNRLEtBQVQsR0FBaUIsQ0FBakI7QUFDQVosUUFBQUEsT0FBTyxDQUFDUSxTQUFSLENBQWtCSyxHQUFsQixDQUFzQixnQkFBdEI7QUFDQTtBQTNCUixLQU5TLENBb0NUO0FBQ0E7OztBQUNBbEIsSUFBQUEsNkNBQUMsQ0FBQ1MsUUFBRCxDQUFELENBQVlVLE9BQVosQ0FBb0IsT0FBcEI7QUFDSDtBQUNKLENBL0NEO0FBaURBLENBQUNsQixRQUFRLENBQUNtQixnQkFBVCxDQUEwQiw4Q0FBMUIsS0FBNkUsRUFBOUUsRUFBa0ZDLE9BQWxGLENBQTBGLFVBQUNDLEtBQUQsRUFBVztBQUFFQSxFQUFBQSxLQUFLLENBQUNQLGFBQU4sR0FBc0IsSUFBdEI7QUFBNkIsQ0FBcEkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9pbmRldGVybWluYXRlLmpzP2Q2MzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BhZ2VzLWZpbHRlcnMnKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGVyID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5jaGVja2JveGVzLmluZGV0ZXJtaW5hdGUnKTtcblxuICAgIGlmICh3cmFwcGVyKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gd3JhcHBlci5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KFtkaXNhYmxlZF0pJyk7XG4gICAgICAgIGNvbnN0IGNoZWNrU3RhdHVzID0gd3JhcHBlci5kYXRhc2V0Ll9jaGVja1N0YXR1cztcbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QucmVtb3ZlKCdzdGF0dXMtY2hlY2tlZCcsICdzdGF0dXMtdW5jaGVja2VkJywgJ3N0YXR1cy1pbmRldGVybWluYXRlJyk7XG5cbiAgICAgICAgc3dpdGNoIChjaGVja1N0YXR1cykge1xuICAgICAgICAgICAgLy8gY2hlY2tlZCwgZ29pbmcgaW5kZXRlcm1pbmF0ZVxuICAgICAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgICAgICAgd3JhcHBlci5kYXRhc2V0Ll9jaGVja1N0YXR1cyA9ICcyJztcbiAgICAgICAgICAgICAgICBjaGVja2JveC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY2hlY2tib3gudmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCgnc3RhdHVzLWluZGV0ZXJtaW5hdGUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy8gaW5kZXRlcm1pbmF0ZSwgZ29pbmcgdW5jaGVja2VkXG4gICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmRhdGFzZXQuX2NoZWNrU3RhdHVzID0gJzAnO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY2hlY2tib3gudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3N0YXR1cy11bmNoZWNrZWQnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy8gdW5jaGVja2VkLCBnb2luZyBjaGVja2VkXG4gICAgICAgICAgICBjYXNlICcwJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd3JhcHBlci5kYXRhc2V0Ll9jaGVja1N0YXR1cyA9ICcxJztcbiAgICAgICAgICAgICAgICBjaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2hlY2tib3gudmFsdWUgPSAxO1xuICAgICAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCgnc3RhdHVzLWNoZWNrZWQnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnN0IGlucHV0ID0gbmV3IEN1c3RvbUV2ZW50KCdpbnB1dCcsIHsgZGV0YWlsOiB7IHRhcmdldDogY2hlY2tib3ggfX0pO1xuICAgICAgICAvLyBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGlucHV0KTtcbiAgICAgICAgJChjaGVja2JveCkudHJpZ2dlcignaW5wdXQnKTtcbiAgICB9XG59KTtcblxuKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXVtpbmRldGVybWluYXRlPVwidHJ1ZVwiXScpIHx8IFtdKS5mb3JFYWNoKChpbnB1dCkgPT4geyBpbnB1dC5pbmRldGVybWluYXRlID0gdHJ1ZTsgfSk7XG4iXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwicXVlcnlTZWxlY3RvciIsIndyYXBwZXIiLCJ0YXJnZXQiLCJjbG9zZXN0IiwicHJldmVudERlZmF1bHQiLCJjaGVja2JveCIsImNoZWNrU3RhdHVzIiwiZGF0YXNldCIsIl9jaGVja1N0YXR1cyIsImNsYXNzTGlzdCIsInJlbW92ZSIsImluZGV0ZXJtaW5hdGUiLCJjaGVja2VkIiwidmFsdWUiLCJhZGQiLCJ0cmlnZ2VyIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJpbnB1dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/indeterminate.js\n");
/***/ }),
/***/ "./app/forms/fields/index.js":
/*!***********************************!*\
!*** ./app/forms/fields/index.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _filepicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filepicker */ \"./app/forms/fields/filepicker.js\");\n/* harmony import */ var _selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectize */ \"./app/forms/fields/selectize.js\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ \"./app/forms/fields/array.js\");\n/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./collections */ \"./app/forms/fields/collections.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datetime */ \"./app/forms/fields/datetime.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var _colorpicker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./colorpicker */ \"./app/forms/fields/colorpicker.js\");\n/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var _folder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./folder */ \"./app/forms/fields/folder.js\");\n/* harmony import */ var _selectunique__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectunique */ \"./app/forms/fields/selectunique.js\");\n/* harmony import */ var _iconpicker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./iconpicker */ \"./app/forms/fields/iconpicker.js\");\n/* harmony import */ var _cron__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cron */ \"./app/forms/fields/cron.js\");\n/* harmony import */ var _parents__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./parents */ \"./app/forms/fields/parents.js\");\n/* harmony import */ var _acl_picker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./acl-picker */ \"./app/forms/fields/acl-picker.js\");\n/* harmony import */ var _permissions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./permissions */ \"./app/forms/fields/permissions.js\");\n/* harmony import */ var _indeterminate__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./indeterminate */ \"./app/forms/fields/indeterminate.js\");\n/* harmony import */ var _mediapicker__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./mediapicker */ \"./app/forms/fields/mediapicker.js\");\n/* harmony import */ var _multilevel__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./multilevel */ \"./app/forms/fields/multilevel.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./text */ \"./app/forms/fields/text.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./range */ \"./app/forms/fields/range.js\");\n/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./elements */ \"./app/forms/fields/elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n FilepickerField: {\n FilepickerField: _filepicker__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _filepicker__WEBPACK_IMPORTED_MODULE_0__.Instance\n },\n SelectizeField: {\n SelectizeField: _selectize__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Instance: _selectize__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n ArrayField: {\n ArrayField: _array__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Instance: _array__WEBPACK_IMPORTED_MODULE_2__.Instance\n },\n CollectionsField: {\n CollectionsField: _collections__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Instance: _collections__WEBPACK_IMPORTED_MODULE_3__.Instance\n },\n DateTimeField: {\n DateTimeField: _datetime__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Instance: _datetime__WEBPACK_IMPORTED_MODULE_4__.Instance\n },\n EditorField: {\n EditorField: _editor__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Instance: _editor__WEBPACK_IMPORTED_MODULE_5__.Instance\n },\n ColorpickerField: {\n ColorpickerField: _colorpicker__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n Instance: _colorpicker__WEBPACK_IMPORTED_MODULE_6__.Instance\n },\n FilesField: {\n FilesField: _files__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Instance: _files__WEBPACK_IMPORTED_MODULE_7__.Instance\n },\n FolderField: {\n Regenerate: _folder__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n },\n SelectUniqueField: {\n SelectUniqueField: _selectunique__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n Instance: _selectunique__WEBPACK_IMPORTED_MODULE_9__.Instance\n },\n IconpickerField: {\n IconpickerField: _iconpicker__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n Instance: _iconpicker__WEBPACK_IMPORTED_MODULE_10__.Instance\n },\n CronField: {\n CronField: _cron__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Instance: _cron__WEBPACK_IMPORTED_MODULE_11__.Instance\n },\n ParentsField: {\n ParentsField: _parents__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n Instance: _parents__WEBPACK_IMPORTED_MODULE_12__.Instances\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxpRUFBZTtBQUNYQSxFQUFBQSxlQUFlLEVBQUU7QUFDYkEsSUFBQUEsZUFBZSxFQUFmQSxtREFEYTtBQUViQyxJQUFBQSxRQUFRLEVBQUVDLGlEQUF1QkE7QUFGcEIsR0FETjtBQUtYQyxFQUFBQSxjQUFjLEVBQUU7QUFDWkEsSUFBQUEsY0FBYyxFQUFkQSxrREFEWTtBQUVaRixJQUFBQSxRQUFRLEVBQUVHLGdEQUFzQkE7QUFGcEIsR0FMTDtBQVNYQyxFQUFBQSxVQUFVLEVBQUU7QUFDUkEsSUFBQUEsVUFBVSxFQUFWQSw4Q0FEUTtBQUVSSixJQUFBQSxRQUFRLEVBQUVLLDRDQUFrQkE7QUFGcEIsR0FURDtBQWFYQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkQSxJQUFBQSxnQkFBZ0IsRUFBaEJBLG9EQURjO0FBRWROLElBQUFBLFFBQVEsRUFBRU8sa0RBQXdCQTtBQUZwQixHQWJQO0FBaUJYQyxFQUFBQSxhQUFhLEVBQUU7QUFDWEEsSUFBQUEsYUFBYSxFQUFiQSxpREFEVztBQUVYUixJQUFBQSxRQUFRLEVBQUVTLCtDQUFxQkE7QUFGcEIsR0FqQko7QUFxQlhDLEVBQUFBLFdBQVcsRUFBRTtBQUNUQSxJQUFBQSxXQUFXLEVBQVhBLCtDQURTO0FBRVRWLElBQUFBLFFBQVEsRUFBRVcsNkNBQW1CQTtBQUZwQixHQXJCRjtBQXlCWEMsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDZEEsSUFBQUEsZ0JBQWdCLEVBQWhCQSxvREFEYztBQUVkWixJQUFBQSxRQUFRLEVBQUVhLGtEQUF3QkE7QUFGcEIsR0F6QlA7QUE2QlhDLEVBQUFBLFVBQVUsRUFBRTtBQUNSQSxJQUFBQSxVQUFVLEVBQVZBLDhDQURRO0FBRVJkLElBQUFBLFFBQVEsRUFBRWUsNENBQWtCQTtBQUZwQixHQTdCRDtBQWlDWFcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RDLElBQUFBLFVBQVUsRUFBRVgsK0NBQW1CQTtBQUR0QixHQWpDRjtBQW9DWEMsRUFBQUEsaUJBQWlCLEVBQUU7QUFDZkEsSUFBQUEsaUJBQWlCLEVBQWpCQSxxREFEZTtBQUVmakIsSUFBQUEsUUFBUSxFQUFFa0IsbURBQW9CQTtBQUZmLEdBcENSO0FBd0NYQyxFQUFBQSxlQUFlLEVBQUU7QUFDYkEsSUFBQUEsZUFBZSxFQUFmQSxvREFEYTtBQUVibkIsSUFBQUEsUUFBUSxFQUFFb0Isa0RBQWtCQTtBQUZmLEdBeENOO0FBNENYQyxFQUFBQSxTQUFTLEVBQUU7QUFDUEEsSUFBQUEsU0FBUyxFQUFUQSw4Q0FETztBQUVQckIsSUFBQUEsUUFBUSxFQUFFc0IsNENBQWlCQTtBQUZwQixHQTVDQTtBQWdEWEMsRUFBQUEsWUFBWSxFQUFFO0FBQ1ZBLElBQUFBLFlBQVksRUFBWkEsaURBRFU7QUFFVnZCLElBQUFBLFFBQVEsRUFBRXlCLGdEQUFvQkE7QUFGcEI7QUFoREgsQ0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL2luZGV4LmpzPzE4YjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZpbGVwaWNrZXJGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlcGlja2VyRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vZmlsZXBpY2tlcic7XG5pbXBvcnQgU2VsZWN0aXplRmllbGQsIHsgSW5zdGFuY2UgYXMgU2VsZWN0aXplRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0aXplJztcbmltcG9ydCBBcnJheUZpZWxkLCB7IEluc3RhbmNlIGFzIEFycmF5RmllbGRJbnN0YW5jZSB9IGZyb20gJy4vYXJyYXknO1xuaW1wb3J0IENvbGxlY3Rpb25zRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sbGVjdGlvbnNGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgRGF0ZVRpbWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBEYXRlVGltZUZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2RhdGV0aW1lJztcbmltcG9ydCBFZGl0b3JGaWVsZCwgeyBJbnN0YW5jZSBhcyBFZGl0b3JGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IENvbG9ycGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xvcnBpY2tlcic7XG5pbXBvcnQgRmlsZXNGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlc0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2ZpbGVzJztcbmltcG9ydCBGb2xkZXJGaWVsZEluc3RhbmNlIGZyb20gJy4vZm9sZGVyJztcbmltcG9ydCBTZWxlY3RVbmlxdWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBTZWxlY3RVbmlxdWVJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0dW5pcXVlJztcbmltcG9ydCBJY29ucGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgSWNvbnBpY2tlckluc3RhbmNlIH0gZnJvbSAnLi9pY29ucGlja2VyJztcbmltcG9ydCBDcm9uRmllbGQsIHsgSW5zdGFuY2UgYXMgQ3JvbkZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2Nyb24nO1xuaW1wb3J0IFBhcmVudHNGaWVsZCwgeyBJbnN0YW5jZXMgYXMgUGFyZW50c0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL3BhcmVudHMnO1xuXG5pbXBvcnQgJy4vYWNsLXBpY2tlcic7XG5pbXBvcnQgJy4vcGVybWlzc2lvbnMnO1xuaW1wb3J0ICcuL2luZGV0ZXJtaW5hdGUnO1xuaW1wb3J0ICcuL21lZGlhcGlja2VyJztcbmltcG9ydCAnLi9tdWx0aWxldmVsJztcbmltcG9ydCAnLi90ZXh0JztcbmltcG9ydCAnLi9yYW5nZSc7XG5pbXBvcnQgJy4vZWxlbWVudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgRmlsZXBpY2tlckZpZWxkOiB7XG4gICAgICAgIEZpbGVwaWNrZXJGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEZpbGVwaWNrZXJGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBTZWxlY3RpemVGaWVsZDoge1xuICAgICAgICBTZWxlY3RpemVGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IFNlbGVjdGl6ZUZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEFycmF5RmllbGQ6IHtcbiAgICAgICAgQXJyYXlGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEFycmF5RmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgQ29sbGVjdGlvbnNGaWVsZDoge1xuICAgICAgICBDb2xsZWN0aW9uc0ZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogQ29sbGVjdGlvbnNGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBEYXRlVGltZUZpZWxkOiB7XG4gICAgICAgIERhdGVUaW1lRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBEYXRlVGltZUZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEVkaXRvckZpZWxkOiB7XG4gICAgICAgIEVkaXRvckZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogRWRpdG9yRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgQ29sb3JwaWNrZXJGaWVsZDoge1xuICAgICAgICBDb2xvcnBpY2tlckZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBGaWxlc0ZpZWxkOiB7XG4gICAgICAgIEZpbGVzRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBGaWxlc0ZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEZvbGRlckZpZWxkOiB7XG4gICAgICAgIFJlZ2VuZXJhdGU6IEZvbGRlckZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIFNlbGVjdFVuaXF1ZUZpZWxkOiB7XG4gICAgICAgIFNlbGVjdFVuaXF1ZUZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogU2VsZWN0VW5pcXVlSW5zdGFuY2VcbiAgICB9LFxuICAgIEljb25waWNrZXJGaWVsZDoge1xuICAgICAgICBJY29ucGlja2VyRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBJY29ucGlja2VySW5zdGFuY2VcbiAgICB9LFxuICAgIENyb25GaWVsZDoge1xuICAgICAgICBDcm9uRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBDcm9uRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgUGFyZW50c0ZpZWxkOiB7XG4gICAgICAgIFBhcmVudHNGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IFBhcmVudHNGaWVsZEluc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyJGaWxlcGlja2VyRmllbGQiLCJJbnN0YW5jZSIsIkZpbGVwaWNrZXJGaWVsZEluc3RhbmNlIiwiU2VsZWN0aXplRmllbGQiLCJTZWxlY3RpemVGaWVsZEluc3RhbmNlIiwiQXJyYXlGaWVsZCIsIkFycmF5RmllbGRJbnN0YW5jZSIsIkNvbGxlY3Rpb25zRmllbGQiLCJDb2xsZWN0aW9uc0ZpZWxkSW5zdGFuY2UiLCJEYXRlVGltZUZpZWxkIiwiRGF0ZVRpbWVGaWVsZEluc3RhbmNlIiwiRWRpdG9yRmllbGQiLCJFZGl0b3JGaWVsZEluc3RhbmNlIiwiQ29sb3JwaWNrZXJGaWVsZCIsIkNvbG9ycGlja2VyRmllbGRJbnN0YW5jZSIsIkZpbGVzRmllbGQiLCJGaWxlc0ZpZWxkSW5zdGFuY2UiLCJGb2xkZXJGaWVsZEluc3RhbmNlIiwiU2VsZWN0VW5pcXVlRmllbGQiLCJTZWxlY3RVbmlxdWVJbnN0YW5jZSIsIkljb25waWNrZXJGaWVsZCIsIkljb25waWNrZXJJbnN0YW5jZSIsIkNyb25GaWVsZCIsIkNyb25GaWVsZEluc3RhbmNlIiwiUGFyZW50c0ZpZWxkIiwiSW5zdGFuY2VzIiwiUGFyZW50c0ZpZWxkSW5zdGFuY2UiLCJGb2xkZXJGaWVsZCIsIlJlZ2VuZXJhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/index.js\n");
/***/ }),
/***/ "./app/forms/fields/mediapicker.js":
/*!*****************************************!*\
!*** ./app/forms/fields/mediapicker.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _pages_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../pages/tree */ \"./app/pages/tree.js\");\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var modal = '';\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'); // Thumb Resizer\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input change', '.media-container .media-range', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.remodal');\n var cards = container.find('.media-container div.card-item');\n var width = target.val() + 'px';\n cards.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).css('width', width);\n });\n });\n body.on('click', '[data-mediapicker-modal-trigger]', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var modal_identifier = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('grav-mediapicker-unique-identifier');\n var modal_element = body.find(\"[data-remodal-unique-identifier=\\\"\".concat(modal_identifier, \"\\\"]\"));\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n\n if (!modal) {\n modal_element.remodal();\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n }\n\n modal.open();\n modal.dataField = element.find('input'); // load all media\n\n modal_element.find('.js__files').trigger('fillView');\n setTimeout(function () {\n return _pages_tree__WEBPACK_IMPORTED_MODULE_1__.Instance.reload();\n }, 100);\n });\n /* handle media modal click actions */\n\n body.on('click', '[data-remodal-mediapicker] .media-container.in-modal .admin-media-details a', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var val = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.js__media-element').data('file-url');\n var string = val.replace(/ /g, '%20');\n modal.dataField.val(string);\n modal.close();\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL21lZGlhcGlja2VyLmpzP2Q5MWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IEluc3RhbmNlIGFzIHBhZ2VzVHJlZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3RyZWUnO1xuXG4kKGZ1bmN0aW9uKCkge1xuICAgIGxldCBtb2RhbCA9ICcnO1xuICAgIGxldCBib2R5ID0gJCgnYm9keScpO1xuXG4gICAgLy8gVGh1bWIgUmVzaXplclxuICAgICQoZG9jdW1lbnQpLm9uKCdpbnB1dCBjaGFuZ2UnLCAnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLnJlbW9kYWwnKTtcbiAgICAgICAgbGV0IGNhcmRzID0gY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250YWluZXIgZGl2LmNhcmQtaXRlbScpO1xuICAgICAgICBsZXQgd2lkdGggPSB0YXJnZXQudmFsKCkgKyAncHgnO1xuICAgICAgICBjYXJkcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jc3MoJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLW1lZGlhcGlja2VyLW1vZGFsLXRyaWdnZXJdJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBtb2RhbF9pZGVudGlmaWVyID0gJCh0aGlzKS5kYXRhKCdncmF2LW1lZGlhcGlja2VyLXVuaXF1ZS1pZGVudGlmaWVyJyk7XG4gICAgICAgIGxldCBtb2RhbF9lbGVtZW50ID0gYm9keS5maW5kKGBbZGF0YS1yZW1vZGFsLXVuaXF1ZS1pZGVudGlmaWVyPVwiJHttb2RhbF9pZGVudGlmaWVyfVwiXWApO1xuICAgICAgICBtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWxfZWxlbWVudC5kYXRhKCdyZW1vZGFsJyldO1xuXG4gICAgICAgIGlmICghbW9kYWwpIHtcbiAgICAgICAgICAgIG1vZGFsX2VsZW1lbnQucmVtb2RhbCgpO1xuICAgICAgICAgICAgbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwW21vZGFsX2VsZW1lbnQuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZGFsLm9wZW4oKTtcbiAgICAgICAgbW9kYWwuZGF0YUZpZWxkID0gZWxlbWVudC5maW5kKCdpbnB1dCcpO1xuXG4gICAgICAgIC8vIGxvYWQgYWxsIG1lZGlhXG4gICAgICAgIG1vZGFsX2VsZW1lbnQuZmluZCgnLmpzX19maWxlcycpLnRyaWdnZXIoJ2ZpbGxWaWV3Jyk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBwYWdlc1RyZWUucmVsb2FkKCksIDEwMCk7XG4gICAgfSk7XG5cbiAgICAvKiBoYW5kbGUgbWVkaWEgbW9kYWwgY2xpY2sgYWN0aW9ucyAqL1xuICAgIGJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtbWVkaWFwaWNrZXJdIC5tZWRpYS1jb250YWluZXIuaW4tbW9kYWwgLmFkbWluLW1lZGlhLWRldGFpbHMgYScsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBsZXQgdmFsID0gJChldmVudC50YXJnZXQpLnBhcmVudHMoJy5qc19fbWVkaWEtZWxlbWVudCcpLmRhdGEoJ2ZpbGUtdXJsJyk7XG4gICAgICAgIGxldCBzdHJpbmcgPSB2YWwucmVwbGFjZSgvIC9nLCAnJTIwJyk7XG5cbiAgICAgICAgbW9kYWwuZGF0YUZpZWxkLnZhbChzdHJpbmcpO1xuXG4gICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiSW5zdGFuY2UiLCJwYWdlc1RyZWUiLCJtb2RhbCIsImJvZHkiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiY29udGFpbmVyIiwiY2xvc2VzdCIsImNhcmRzIiwiZmluZCIsIndpZHRoIiwidmFsIiwiZWFjaCIsImNzcyIsImVsZW1lbnQiLCJtb2RhbF9pZGVudGlmaWVyIiwiZGF0YSIsIm1vZGFsX2VsZW1lbnQiLCJyZW1vZGFsIiwibG9va3VwIiwib3BlbiIsImRhdGFGaWVsZCIsInRyaWdnZXIiLCJzZXRUaW1lb3V0IiwicmVsb2FkIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwYXJlbnRzIiwic3RyaW5nIiwicmVwbGFjZSIsImNsb3NlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/mediapicker.js\n");
/***/ }),
/***/ "./app/forms/fields/multilevel.js":
/*!****************************************!*\
!*** ./app/forms/fields/multilevel.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var getField = function getField(level, name) {\n var levelMargin = level * 50;\n var top = level === 0 ? 'top' : '';\n var the_name = 'name=\"' + name + '\"';\n\n if (level === 0) {\n // top\n the_name = 'data-attr-name=\"' + name + '\"';\n }\n\n var marginDir = window.getComputedStyle(document.body).direction === 'ltr' ? 'margin-left' : 'margin-right';\n var field = \"\\n <div class=\\\"element-wrapper\\\">\\n <div class=\\\"form-row array-field-value_only js__multilevel-field \".concat(top, \"\\\"\\n data-grav-array-type=\\\"row\\\">\\n <input\\n type=\\\"text\\\"\\n \").concat(the_name, \"\\n placeholder=\\\"Enter value\\\"\\n style=\\\"\").concat(marginDir, \": \").concat(levelMargin, \"px\\\"\\n value=\\\"\\\" />\\n\\n <span class=\\\"fa fa-minus js__remove-item\\\"></span>\\n <span class=\\\"fa fa-plus js__add-sibling hidden\\\" data-level=\\\"\").concat(level, \"\\\" ></span>\\n <span class=\\\"fa fa-plus-circle js__add-children hidden\\\" data-level=\\\"\").concat(level, \"\\\"></span>\\n </div>\\n </div>\\n \");\n return field;\n };\n\n var hasChildInputs = function hasChildInputs($element) {\n if ($element.attr('name')) {\n return false;\n }\n\n return true;\n };\n\n var getTopItems = function getTopItems(element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top');\n };\n\n var refreshControls = function refreshControls(unique_identifier) {\n var element = '[data-grav-multilevel-field]';\n\n if (unique_identifier) {\n element = '[data-grav-multilevel-field][data-id=\"' + unique_identifier + '\"]';\n }\n\n var hideButtons = function hideButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-sibling').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-children').addClass('hidden');\n };\n\n var restoreAddSiblingButtons = function restoreAddSiblingButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .children-wrapper').each(function () {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children();\n elements.last().each(function () {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hasClass('js__multilevel-field')) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__multilevel-field').first();\n }\n\n field.find('.js__add-sibling').removeClass('hidden');\n });\n }); // add sibling to the last top element\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top').last().find('.js__add-sibling').removeClass('hidden');\n };\n\n var restoreAddChildrenButtons = function restoreAddChildrenButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field').each(function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').length === 0 || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').find('.js__multilevel-field').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__add-children').removeClass('hidden');\n }\n });\n };\n\n var preventRemovingLastTopItem = function preventRemovingLastTopItem() {\n var top_items = getTopItems(element);\n\n if (top_items.length === 1) {\n top_items.first().find('.js__remove-item').addClass('hidden');\n }\n };\n\n hideButtons();\n restoreAddSiblingButtons();\n restoreAddChildrenButtons();\n preventRemovingLastTopItem();\n };\n\n var changeAllOccurrencesInTree = function changeAllOccurrencesInTree($el, current_name, new_name) {\n $el.parents('[data-grav-multilevel-field]').find('input').each(function () {\n var $input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if ($input.attr('name')) {\n $input.attr('name', $input.attr('name').replace(current_name, new_name));\n }\n\n if ($input.attr('data-attr-name')) {\n $input.attr('data-attr-name', $input.attr('data-attr-name').replace(current_name, new_name));\n }\n });\n };\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n refreshControls();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mouseleave', '[data-grav-multilevel-field]', function (event) {\n var top_items = getTopItems('[data-id=\"' + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('id') + '\"]');\n var has_top_items_without_children = false;\n var element_content = '';\n top_items.each(function () {\n var item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(item).siblings('.children-wrapper').find('input').length === 0) {\n has_top_items_without_children = true;\n element_content = item.find('input').val();\n }\n });\n\n if (has_top_items_without_children) {\n if (element_content) {\n alert('Warning: if you save now, the element ' + element_content + ', without children, will be removed, because it\\'s invalid YAML');\n } else {\n alert('Warning: if you save now, the top elements without children will be removed, because it\\'s invalid YAML');\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-children', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level') + 1;\n\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n\n if (parent.find('.children-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('<div class=\"children-wrapper\"></div>');\n }\n\n parent = parent.find('.children-wrapper').first();\n return parent;\n };\n\n var getNameFromParentInput = function getNameFromParentInput(parentInput, attr) {\n if (parentInput.hasClass('children-wrapper')) {\n parentInput = parentInput.siblings('.js__multilevel-field').first().find('input');\n }\n\n return parentInput.attr(attr) + '[' + parentInput.val() + ']';\n };\n\n var getInputFromChildrenWrapper = function getInputFromChildrenWrapper(parentChildrenWrapper) {\n return parentChildrenWrapper.siblings('.js__multilevel-field').first().find('input');\n };\n\n var parentChildrenWrapper = getParentOfElement(element);\n var parentInput = getInputFromChildrenWrapper(parentChildrenWrapper);\n var attr = 'name';\n\n if (parentInput.closest('.js__multilevel-field').hasClass('top')) {\n attr = 'data-attr-name';\n }\n\n parentInput.attr(attr, parentInput.attr(attr).replace('[]', ''));\n var name = getNameFromParentInput(parentInput, attr);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentChildrenWrapper).append(field);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-sibling', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level');\n element.closest('.children-wrapper').find('.js__add-sibling').addClass('hidden');\n var sibling = null;\n var is_top = false;\n\n if (element.closest('.js__multilevel-field').hasClass('top')) {\n is_top = true;\n }\n\n if (is_top) {\n sibling = element.closest('.js__multilevel-field').first().find('input').last();\n } else {\n sibling = element.siblings('input').first();\n\n if (!sibling) {\n sibling = element.closest('.children-wrapper').first().find('input').last();\n }\n }\n\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n\n if (!parent.hasClass('element-wrapper')) {\n if (parent.find('.element-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('<div class=\"element-wrapper\"></div>');\n }\n\n parent = parent.find('.element-wrapper').first();\n }\n\n return parent;\n };\n\n var getNameFromSibling = function getNameFromSibling(parent, sibling) {\n var is_top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var name = sibling.attr('name');\n\n if (hasChildInputs(sibling)) {\n var val = sibling.data('attr-name') + '[]';\n sibling.removeAttr('name');\n return val;\n }\n\n var last_index = name.lastIndexOf('[');\n var almost_there = name.substr(last_index + 1);\n var last_tag = almost_there.substr(0, almost_there.length - 1);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default().isNumeric(last_tag)) {\n name = name.replace('[' + last_tag + ']', '[' + (parseInt(last_tag, 10) + 1) + ']');\n } else {\n if (is_top) {\n name = name.replace('[' + last_tag + ']', '');\n } else {\n name = name + '[1]'; // change sibling name attr if necessary\n\n if (sibling.attr('name').slice('-2') !== '[0]') {\n changeAllOccurrencesInTree(sibling, sibling.attr('name'), sibling.attr('name') + '[0]');\n }\n }\n }\n\n return name;\n };\n\n var parent = getParentOfElement(element);\n var name = getNameFromSibling(parent, sibling, is_top);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(field).insertAfter(parent);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__remove-item', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parents('.element-wrapper').first().remove();\n var unique_container_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.js__multilevel-field').data('id');\n refreshControls(unique_container_id);\n }); // Store old value before editing a field\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('focusin', '[data-grav-multilevel-field] input', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('current-value', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val());\n }); // Handle field edited event\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[data-grav-multilevel-field] input', function (event) {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var old_value = $el.data('current-value');\n var new_value = $el.val();\n var full_name = $el.attr('name') || $el.attr('data-attr-name'); // first-level items have `data-attr-name` instead of `name`\n\n var old_name_attr = full_name + '[' + old_value + ']';\n var new_name_attr = full_name + '[' + new_value + ']';\n changeAllOccurrencesInTree($el, old_name_attr, new_name_attr);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL211bHRpbGV2ZWwuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQyxZQUFXO0FBRVQsTUFBTUMsUUFBUSxHQUFHLFNBQVNBLFFBQVQsQ0FBa0JDLEtBQWxCLEVBQXlCQyxJQUF6QixFQUErQjtBQUM1QyxRQUFJQyxXQUFXLEdBQUdGLEtBQUssR0FBRyxFQUExQjtBQUNBLFFBQUlHLEdBQUcsR0FBSUgsS0FBSyxLQUFLLENBQVYsR0FBYyxLQUFkLEdBQXNCLEVBQWpDO0FBRUEsUUFBSUksUUFBUSxHQUFHLFdBQVdILElBQVgsR0FBa0IsR0FBakM7O0FBQ0EsUUFBSUQsS0FBSyxLQUFLLENBQWQsRUFBaUI7QUFDYjtBQUNBSSxNQUFBQSxRQUFRLEdBQUcscUJBQXFCSCxJQUFyQixHQUE0QixHQUF2QztBQUNIOztBQUVELFFBQU1JLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QkMsUUFBUSxDQUFDQyxJQUFqQyxFQUF1Q0MsU0FBdkMsS0FBcUQsS0FBckQsR0FBNkQsYUFBN0QsR0FBNkUsY0FBL0Y7QUFFQSxRQUFJQyxLQUFLLDhJQUVrRVIsR0FGbEUsK0pBTVNDLFFBTlQsb0dBUWdCQyxTQVJoQixlQVE4QkgsV0FSOUIsd05BWWlFRixLQVpqRSxxSEFheUVBLEtBYnpFLHFFQUFUO0FBa0JBLFdBQU9XLEtBQVA7QUFDSCxHQS9CRDs7QUFpQ0EsTUFBTUMsY0FBYyxHQUFHLFNBQVNBLGNBQVQsQ0FBd0JDLFFBQXhCLEVBQWtDO0FBQ3JELFFBQUlBLFFBQVEsQ0FBQ0MsSUFBVCxDQUFjLE1BQWQsQ0FBSixFQUEyQjtBQUN2QixhQUFPLEtBQVA7QUFDSDs7QUFFRCxXQUFPLElBQVA7QUFDSCxHQU5EOztBQVFBLE1BQU1DLFdBQVcsR0FBRyxTQUFTQSxXQUFULENBQXFCQyxPQUFyQixFQUE4QjtBQUM5QyxXQUFPbEIsNkNBQUMsQ0FBQ2tCLE9BQU8sR0FBRyw0QkFBWCxDQUFSO0FBQ0gsR0FGRDs7QUFJQSxNQUFNQyxlQUFlLEdBQUcsU0FBU0EsZUFBVCxDQUF5QkMsaUJBQXpCLEVBQTRDO0FBQ2hFLFFBQUlGLE9BQU8sR0FBRyw4QkFBZDs7QUFDQSxRQUFJRSxpQkFBSixFQUF1QjtBQUNuQkYsTUFBQUEsT0FBTyxHQUFHLDJDQUEyQ0UsaUJBQTNDLEdBQStELElBQXpFO0FBQ0g7O0FBRUQsUUFBTUMsV0FBVyxHQUFHLFNBQVNBLFdBQVQsR0FBdUI7QUFDdkNyQixNQUFBQSw2Q0FBQyxDQUFDa0IsT0FBTyxHQUFHLG1CQUFYLENBQUQsQ0FBaUNJLFFBQWpDLENBQTBDLFFBQTFDO0FBQ0F0QixNQUFBQSw2Q0FBQyxDQUFDa0IsT0FBTyxHQUFHLG9CQUFYLENBQUQsQ0FBa0NJLFFBQWxDLENBQTJDLFFBQTNDO0FBQ0gsS0FIRDs7QUFLQSxRQUFNQyx3QkFBd0IsR0FBRyxTQUFTQSx3QkFBVCxHQUFvQztBQUNqRXZCLE1BQUFBLDZDQUFDLENBQUNrQixPQUFPLEdBQUcsb0JBQVgsQ0FBRCxDQUFrQ00sSUFBbEMsQ0FBdUMsWUFBVztBQUM5QyxZQUFJQyxRQUFRLEdBQUd6Qiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRMEIsUUFBUixFQUFmO0FBQ0FELFFBQUFBLFFBQVEsQ0FBQ0UsSUFBVCxHQUFnQkgsSUFBaEIsQ0FBcUIsWUFBVztBQUM1QixjQUFJWCxLQUFLLEdBQUdiLDZDQUFDLENBQUMsSUFBRCxDQUFiOztBQUNBLGNBQUksQ0FBQ0EsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTRCLFFBQVIsQ0FBaUIsc0JBQWpCLENBQUwsRUFBK0M7QUFDM0NmLFlBQUFBLEtBQUssR0FBR2IsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTZCLElBQVIsQ0FBYSx1QkFBYixFQUFzQ0MsS0FBdEMsRUFBUjtBQUNIOztBQUNEakIsVUFBQUEsS0FBSyxDQUFDZ0IsSUFBTixDQUFXLGtCQUFYLEVBQStCRSxXQUEvQixDQUEyQyxRQUEzQztBQUNILFNBTkQ7QUFPSCxPQVRELEVBRGlFLENBWWpFOztBQUNBL0IsTUFBQUEsNkNBQUMsQ0FBQ2tCLE9BQU8sR0FBRyw0QkFBWCxDQUFELENBQTBDUyxJQUExQyxHQUFpREUsSUFBakQsQ0FBc0Qsa0JBQXRELEVBQTBFRSxXQUExRSxDQUFzRixRQUF0RjtBQUNILEtBZEQ7O0FBZ0JBLFFBQU1DLHlCQUF5QixHQUFHLFNBQVNBLHlCQUFULEdBQXFDO0FBQ25FaEMsTUFBQUEsNkNBQUMsQ0FBQ2tCLE9BQU8sR0FBRyx3QkFBWCxDQUFELENBQXNDTSxJQUF0QyxDQUEyQyxZQUFXO0FBQ2xELFlBQUl4Qiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRaUMsUUFBUixDQUFpQixtQkFBakIsRUFBc0NDLE1BQXRDLEtBQWlELENBQWpELElBQXNEbEMsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUWlDLFFBQVIsQ0FBaUIsbUJBQWpCLEVBQXNDSixJQUF0QyxDQUEyQyx1QkFBM0MsRUFBb0VLLE1BQXBFLEtBQStFLENBQXpJLEVBQTRJO0FBQ3hJbEMsVUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTZCLElBQVIsQ0FBYSxtQkFBYixFQUFrQ0UsV0FBbEMsQ0FBOEMsUUFBOUM7QUFDSDtBQUNKLE9BSkQ7QUFLSCxLQU5EOztBQVFBLFFBQU1JLDBCQUEwQixHQUFHLFNBQVNBLDBCQUFULEdBQXNDO0FBQ3JFLFVBQUlDLFNBQVMsR0FBR25CLFdBQVcsQ0FBQ0MsT0FBRCxDQUEzQjs7QUFDQSxVQUFJa0IsU0FBUyxDQUFDRixNQUFWLEtBQXFCLENBQXpCLEVBQTRCO0FBQ3hCRSxRQUFBQSxTQUFTLENBQUNOLEtBQVYsR0FBa0JELElBQWxCLENBQXVCLGtCQUF2QixFQUEyQ1AsUUFBM0MsQ0FBb0QsUUFBcEQ7QUFDSDtBQUNKLEtBTEQ7O0FBT0FELElBQUFBLFdBQVc7QUFDWEUsSUFBQUEsd0JBQXdCO0FBQ3hCUyxJQUFBQSx5QkFBeUI7QUFDekJHLElBQUFBLDBCQUEwQjtBQUM3QixHQTlDRDs7QUFnREEsTUFBTUUsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUE2QixDQUFTQyxHQUFULEVBQWNDLFlBQWQsRUFBNEJDLFFBQTVCLEVBQXNDO0FBQ3JFRixJQUFBQSxHQUFHLENBQUNHLE9BQUosQ0FBWSw4QkFBWixFQUE0Q1osSUFBNUMsQ0FBaUQsT0FBakQsRUFBMERMLElBQTFELENBQStELFlBQVc7QUFDdEUsVUFBSWtCLE1BQU0sR0FBRzFDLDZDQUFDLENBQUMsSUFBRCxDQUFkOztBQUNBLFVBQUkwQyxNQUFNLENBQUMxQixJQUFQLENBQVksTUFBWixDQUFKLEVBQXlCO0FBQ3JCMEIsUUFBQUEsTUFBTSxDQUFDMUIsSUFBUCxDQUFZLE1BQVosRUFBb0IwQixNQUFNLENBQUMxQixJQUFQLENBQVksTUFBWixFQUFvQjJCLE9BQXBCLENBQTRCSixZQUE1QixFQUEwQ0MsUUFBMUMsQ0FBcEI7QUFDSDs7QUFDRCxVQUFJRSxNQUFNLENBQUMxQixJQUFQLENBQVksZ0JBQVosQ0FBSixFQUFtQztBQUMvQjBCLFFBQUFBLE1BQU0sQ0FBQzFCLElBQVAsQ0FBWSxnQkFBWixFQUE4QjBCLE1BQU0sQ0FBQzFCLElBQVAsQ0FBWSxnQkFBWixFQUE4QjJCLE9BQTlCLENBQXNDSixZQUF0QyxFQUFvREMsUUFBcEQsQ0FBOUI7QUFDSDtBQUNKLEtBUkQ7QUFTSCxHQVZEOztBQVlBeEMsRUFBQUEsNkNBQUMsQ0FBQ1UsUUFBRCxDQUFELENBQVlrQyxLQUFaLENBQWtCLFlBQVc7QUFDekJ6QixJQUFBQSxlQUFlO0FBQ2xCLEdBRkQ7QUFJQW5CLEVBQUFBLDZDQUFDLENBQUNVLFFBQUQsQ0FBRCxDQUFZbUMsRUFBWixDQUFlLFlBQWYsRUFBNkIsOEJBQTdCLEVBQTZELFVBQVNDLEtBQVQsRUFBZ0I7QUFDekUsUUFBSVYsU0FBUyxHQUFHbkIsV0FBVyxDQUFDLGVBQWVqQiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRK0MsSUFBUixDQUFhLElBQWIsQ0FBZixHQUFvQyxJQUFyQyxDQUEzQjtBQUNBLFFBQUlDLDhCQUE4QixHQUFHLEtBQXJDO0FBQ0EsUUFBSUMsZUFBZSxHQUFHLEVBQXRCO0FBQ0FiLElBQUFBLFNBQVMsQ0FBQ1osSUFBVixDQUFlLFlBQVc7QUFDdEIsVUFBSTBCLElBQUksR0FBR2xELDZDQUFDLENBQUMsSUFBRCxDQUFaOztBQUNBLFVBQUlBLDZDQUFDLENBQUNrRCxJQUFELENBQUQsQ0FBUWpCLFFBQVIsQ0FBaUIsbUJBQWpCLEVBQXNDSixJQUF0QyxDQUEyQyxPQUEzQyxFQUFvREssTUFBcEQsS0FBK0QsQ0FBbkUsRUFBc0U7QUFDbEVjLFFBQUFBLDhCQUE4QixHQUFHLElBQWpDO0FBQ0FDLFFBQUFBLGVBQWUsR0FBR0MsSUFBSSxDQUFDckIsSUFBTCxDQUFVLE9BQVYsRUFBbUJzQixHQUFuQixFQUFsQjtBQUNIO0FBRUosS0FQRDs7QUFTQSxRQUFJSCw4QkFBSixFQUFvQztBQUNoQyxVQUFJQyxlQUFKLEVBQXFCO0FBQ2pCRyxRQUFBQSxLQUFLLENBQUMsMkNBQTJDSCxlQUEzQyxHQUE2RCxpRUFBOUQsQ0FBTDtBQUNILE9BRkQsTUFFTztBQUNIRyxRQUFBQSxLQUFLLENBQUMseUdBQUQsQ0FBTDtBQUNIO0FBRUo7QUFDSixHQXJCRDtBQXVCQXBELEVBQUFBLDZDQUFDLENBQUNVLFFBQUQsQ0FBRCxDQUFZbUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsZ0RBQXhCLEVBQTBFLFVBQVNDLEtBQVQsRUFBZ0I7QUFDdEYsUUFBSTVCLE9BQU8sR0FBR2xCLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsUUFBSXFELG1CQUFtQixHQUFHbkMsT0FBTyxDQUFDb0MsT0FBUixDQUFnQix1QkFBaEIsRUFBeUNQLElBQXpDLENBQThDLElBQTlDLENBQTFCO0FBQ0EsUUFBSTdDLEtBQUssR0FBR2dCLE9BQU8sQ0FBQzZCLElBQVIsQ0FBYSxPQUFiLElBQXdCLENBQXBDOztBQUVBLFFBQU1RLGtCQUFrQixHQUFHLFNBQVNBLGtCQUFULENBQTRCckMsT0FBNUIsRUFBcUM7QUFDNUQsVUFBSXNDLE1BQU0sR0FBR3RDLE9BQU8sQ0FBQ29DLE9BQVIsQ0FBZ0IsdUJBQWhCLEVBQXlDRSxNQUF6QyxHQUFrRDFCLEtBQWxELEVBQWI7O0FBQ0EsVUFBSTBCLE1BQU0sQ0FBQzNCLElBQVAsQ0FBWSxtQkFBWixFQUFpQ0ssTUFBakMsS0FBNEMsQ0FBaEQsRUFBbUQ7QUFDL0NsQyxRQUFBQSw2Q0FBQyxDQUFDd0QsTUFBRCxDQUFELENBQVVDLE1BQVYsQ0FBaUIsc0NBQWpCO0FBQ0g7O0FBQ0RELE1BQUFBLE1BQU0sR0FBR0EsTUFBTSxDQUFDM0IsSUFBUCxDQUFZLG1CQUFaLEVBQWlDQyxLQUFqQyxFQUFUO0FBRUEsYUFBTzBCLE1BQVA7QUFDSCxLQVJEOztBQVVBLFFBQU1FLHNCQUFzQixHQUFHLFNBQVNBLHNCQUFULENBQWdDQyxXQUFoQyxFQUE2QzNDLElBQTdDLEVBQW1EO0FBQzlFLFVBQUkyQyxXQUFXLENBQUMvQixRQUFaLENBQXFCLGtCQUFyQixDQUFKLEVBQThDO0FBQzFDK0IsUUFBQUEsV0FBVyxHQUFHQSxXQUFXLENBQUMxQixRQUFaLENBQXFCLHVCQUFyQixFQUE4Q0gsS0FBOUMsR0FBc0RELElBQXRELENBQTJELE9BQTNELENBQWQ7QUFDSDs7QUFFRCxhQUFPOEIsV0FBVyxDQUFDM0MsSUFBWixDQUFpQkEsSUFBakIsSUFBeUIsR0FBekIsR0FBK0IyQyxXQUFXLENBQUNSLEdBQVosRUFBL0IsR0FBbUQsR0FBMUQ7QUFDSCxLQU5EOztBQVFBLFFBQU1TLDJCQUEyQixHQUFHLFNBQVNBLDJCQUFULENBQXFDQyxxQkFBckMsRUFBNEQ7QUFDNUYsYUFBT0EscUJBQXFCLENBQUM1QixRQUF0QixDQUErQix1QkFBL0IsRUFBd0RILEtBQXhELEdBQWdFRCxJQUFoRSxDQUFxRSxPQUFyRSxDQUFQO0FBQ0gsS0FGRDs7QUFJQSxRQUFJZ0MscUJBQXFCLEdBQUdOLGtCQUFrQixDQUFDckMsT0FBRCxDQUE5QztBQUNBLFFBQUl5QyxXQUFXLEdBQUdDLDJCQUEyQixDQUFDQyxxQkFBRCxDQUE3QztBQUVBLFFBQUk3QyxJQUFJLEdBQUcsTUFBWDs7QUFDQSxRQUFJMkMsV0FBVyxDQUFDTCxPQUFaLENBQW9CLHVCQUFwQixFQUE2QzFCLFFBQTdDLENBQXNELEtBQXRELENBQUosRUFBa0U7QUFDOURaLE1BQUFBLElBQUksR0FBRyxnQkFBUDtBQUNIOztBQUVEMkMsSUFBQUEsV0FBVyxDQUFDM0MsSUFBWixDQUFpQkEsSUFBakIsRUFBdUIyQyxXQUFXLENBQUMzQyxJQUFaLENBQWlCQSxJQUFqQixFQUF1QjJCLE9BQXZCLENBQStCLElBQS9CLEVBQXFDLEVBQXJDLENBQXZCO0FBRUEsUUFBSXhDLElBQUksR0FBR3VELHNCQUFzQixDQUFDQyxXQUFELEVBQWMzQyxJQUFkLENBQWpDO0FBQ0EsUUFBSUgsS0FBSyxHQUFHWixRQUFRLENBQUNDLEtBQUQsRUFBUUMsSUFBUixDQUFwQjtBQUVBSCxJQUFBQSw2Q0FBQyxDQUFDNkQscUJBQUQsQ0FBRCxDQUF5QkosTUFBekIsQ0FBZ0M1QyxLQUFoQztBQUNBTSxJQUFBQSxlQUFlLENBQUNrQyxtQkFBRCxDQUFmO0FBQ0gsR0ExQ0Q7QUE0Q0FyRCxFQUFBQSw2Q0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxPQUFmLEVBQXdCLCtDQUF4QixFQUF5RSxVQUFTQyxLQUFULEVBQWdCO0FBQ3JGLFFBQUk1QixPQUFPLEdBQUdsQiw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBLFFBQUlxRCxtQkFBbUIsR0FBR25DLE9BQU8sQ0FBQ29DLE9BQVIsQ0FBZ0IsdUJBQWhCLEVBQXlDUCxJQUF6QyxDQUE4QyxJQUE5QyxDQUExQjtBQUNBLFFBQUk3QyxLQUFLLEdBQUdnQixPQUFPLENBQUM2QixJQUFSLENBQWEsT0FBYixDQUFaO0FBQ0E3QixJQUFBQSxPQUFPLENBQUNvQyxPQUFSLENBQWdCLG1CQUFoQixFQUFxQ3pCLElBQXJDLENBQTBDLGtCQUExQyxFQUE4RFAsUUFBOUQsQ0FBdUUsUUFBdkU7QUFFQSxRQUFJd0MsT0FBTyxHQUFHLElBQWQ7QUFDQSxRQUFJQyxNQUFNLEdBQUcsS0FBYjs7QUFFQSxRQUFJN0MsT0FBTyxDQUFDb0MsT0FBUixDQUFnQix1QkFBaEIsRUFBeUMxQixRQUF6QyxDQUFrRCxLQUFsRCxDQUFKLEVBQThEO0FBQzFEbUMsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFDSDs7QUFFRCxRQUFJQSxNQUFKLEVBQVk7QUFDUkQsTUFBQUEsT0FBTyxHQUFHNUMsT0FBTyxDQUFDb0MsT0FBUixDQUFnQix1QkFBaEIsRUFBeUN4QixLQUF6QyxHQUFpREQsSUFBakQsQ0FBc0QsT0FBdEQsRUFBK0RGLElBQS9ELEVBQVY7QUFDSCxLQUZELE1BRU87QUFDSG1DLE1BQUFBLE9BQU8sR0FBRzVDLE9BQU8sQ0FBQ2UsUUFBUixDQUFpQixPQUFqQixFQUEwQkgsS0FBMUIsRUFBVjs7QUFDQSxVQUFJLENBQUNnQyxPQUFMLEVBQWM7QUFDVkEsUUFBQUEsT0FBTyxHQUFHNUMsT0FBTyxDQUFDb0MsT0FBUixDQUFnQixtQkFBaEIsRUFBcUN4QixLQUFyQyxHQUE2Q0QsSUFBN0MsQ0FBa0QsT0FBbEQsRUFBMkRGLElBQTNELEVBQVY7QUFDSDtBQUNKOztBQUVELFFBQU00QixrQkFBa0IsR0FBRyxTQUFTQSxrQkFBVCxDQUE0QnJDLE9BQTVCLEVBQXFDO0FBQzVELFVBQUlzQyxNQUFNLEdBQUd0QyxPQUFPLENBQUNvQyxPQUFSLENBQWdCLHVCQUFoQixFQUF5Q0UsTUFBekMsR0FBa0QxQixLQUFsRCxFQUFiOztBQUNBLFVBQUksQ0FBQzBCLE1BQU0sQ0FBQzVCLFFBQVAsQ0FBZ0IsaUJBQWhCLENBQUwsRUFBeUM7QUFDckMsWUFBSTRCLE1BQU0sQ0FBQzNCLElBQVAsQ0FBWSxrQkFBWixFQUFnQ0ssTUFBaEMsS0FBMkMsQ0FBL0MsRUFBa0Q7QUFDOUNsQyxVQUFBQSw2Q0FBQyxDQUFDd0QsTUFBRCxDQUFELENBQVVDLE1BQVYsQ0FBaUIscUNBQWpCO0FBQ0g7O0FBRURELFFBQUFBLE1BQU0sR0FBR0EsTUFBTSxDQUFDM0IsSUFBUCxDQUFZLGtCQUFaLEVBQWdDQyxLQUFoQyxFQUFUO0FBQ0g7O0FBRUQsYUFBTzBCLE1BQVA7QUFDSCxLQVhEOztBQWFBLFFBQU1RLGtCQUFrQixHQUFHLFNBQVNBLGtCQUFULENBQTRCUixNQUE1QixFQUFvQ00sT0FBcEMsRUFBNkQ7QUFBQSxVQUFoQkMsTUFBZ0IsdUVBQVAsS0FBTztBQUNwRixVQUFJNUQsSUFBSSxHQUFHMkQsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsQ0FBWDs7QUFFQSxVQUFJRixjQUFjLENBQUNnRCxPQUFELENBQWxCLEVBQTZCO0FBQ3pCLFlBQUlYLEdBQUcsR0FBR1csT0FBTyxDQUFDZixJQUFSLENBQWEsV0FBYixJQUE0QixJQUF0QztBQUNBZSxRQUFBQSxPQUFPLENBQUNHLFVBQVIsQ0FBbUIsTUFBbkI7QUFDQSxlQUFPZCxHQUFQO0FBQ0g7O0FBRUQsVUFBSWUsVUFBVSxHQUFHL0QsSUFBSSxDQUFDZ0UsV0FBTCxDQUFpQixHQUFqQixDQUFqQjtBQUNBLFVBQUlDLFlBQVksR0FBR2pFLElBQUksQ0FBQ2tFLE1BQUwsQ0FBWUgsVUFBVSxHQUFHLENBQXpCLENBQW5CO0FBQ0EsVUFBSUksUUFBUSxHQUFHRixZQUFZLENBQUNDLE1BQWIsQ0FBb0IsQ0FBcEIsRUFBdUJELFlBQVksQ0FBQ2xDLE1BQWIsR0FBc0IsQ0FBN0MsQ0FBZjs7QUFFQSxVQUFJbEMsdURBQUEsQ0FBWXNFLFFBQVosQ0FBSixFQUEyQjtBQUN2Qm5FLFFBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDd0MsT0FBTCxDQUFhLE1BQU0yQixRQUFOLEdBQWlCLEdBQTlCLEVBQW1DLE9BQU9FLFFBQVEsQ0FBQ0YsUUFBRCxFQUFXLEVBQVgsQ0FBUixHQUF5QixDQUFoQyxJQUFxQyxHQUF4RSxDQUFQO0FBQ0gsT0FGRCxNQUVPO0FBQ0gsWUFBSVAsTUFBSixFQUFZO0FBQ1I1RCxVQUFBQSxJQUFJLEdBQUdBLElBQUksQ0FBQ3dDLE9BQUwsQ0FBYSxNQUFNMkIsUUFBTixHQUFpQixHQUE5QixFQUFtQyxFQUFuQyxDQUFQO0FBQ0gsU0FGRCxNQUVPO0FBQ0huRSxVQUFBQSxJQUFJLEdBQUdBLElBQUksR0FBRyxLQUFkLENBREcsQ0FHSDs7QUFDQSxjQUFJMkQsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsRUFBcUJ5RCxLQUFyQixDQUEyQixJQUEzQixNQUFxQyxLQUF6QyxFQUFnRDtBQUM1Q3BDLFlBQUFBLDBCQUEwQixDQUFDeUIsT0FBRCxFQUFVQSxPQUFPLENBQUM5QyxJQUFSLENBQWEsTUFBYixDQUFWLEVBQWdDOEMsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsSUFBdUIsS0FBdkQsQ0FBMUI7QUFDSDtBQUNKO0FBQ0o7O0FBRUQsYUFBT2IsSUFBUDtBQUNILEtBN0JEOztBQStCQSxRQUFJcUQsTUFBTSxHQUFHRCxrQkFBa0IsQ0FBQ3JDLE9BQUQsQ0FBL0I7QUFDQSxRQUFJZixJQUFJLEdBQUc2RCxrQkFBa0IsQ0FBQ1IsTUFBRCxFQUFTTSxPQUFULEVBQWtCQyxNQUFsQixDQUE3QjtBQUVBLFFBQUlsRCxLQUFLLEdBQUdaLFFBQVEsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLENBQXBCO0FBQ0FILElBQUFBLDZDQUFDLENBQUNhLEtBQUQsQ0FBRCxDQUFTNkQsV0FBVCxDQUFxQmxCLE1BQXJCO0FBRUFyQyxJQUFBQSxlQUFlLENBQUNrQyxtQkFBRCxDQUFmO0FBQ0gsR0F6RUQ7QUEyRUFyRCxFQUFBQSw2Q0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxPQUFmLEVBQXdCLCtDQUF4QixFQUF5RSxVQUFTQyxLQUFULEVBQWdCO0FBQ3JGOUMsSUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUXlDLE9BQVIsQ0FBZ0Isa0JBQWhCLEVBQW9DWCxLQUFwQyxHQUE0QzZDLE1BQTVDO0FBQ0EsUUFBSXRCLG1CQUFtQixHQUFHckQsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUXNELE9BQVIsQ0FBZ0IsdUJBQWhCLEVBQXlDUCxJQUF6QyxDQUE4QyxJQUE5QyxDQUExQjtBQUNBNUIsSUFBQUEsZUFBZSxDQUFDa0MsbUJBQUQsQ0FBZjtBQUNILEdBSkQsRUE3UFMsQ0FtUVQ7O0FBQ0FyRCxFQUFBQSw2Q0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxTQUFmLEVBQTBCLG9DQUExQixFQUFnRSxVQUFTQyxLQUFULEVBQWdCO0FBQzVFOUMsSUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUStDLElBQVIsQ0FBYSxlQUFiLEVBQThCL0MsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUW1ELEdBQVIsRUFBOUI7QUFDSCxHQUZELEVBcFFTLENBd1FUOztBQUNBbkQsRUFBQUEsNkNBQUMsQ0FBQ1UsUUFBRCxDQUFELENBQVltQyxFQUFaLENBQWUsUUFBZixFQUF5QixvQ0FBekIsRUFBK0QsVUFBU0MsS0FBVCxFQUFnQjtBQUMzRSxRQUFJUixHQUFHLEdBQUd0Qyw2Q0FBQyxDQUFDLElBQUQsQ0FBWDtBQUNBLFFBQUk0RSxTQUFTLEdBQUd0QyxHQUFHLENBQUNTLElBQUosQ0FBUyxlQUFULENBQWhCO0FBQ0EsUUFBSThCLFNBQVMsR0FBR3ZDLEdBQUcsQ0FBQ2EsR0FBSixFQUFoQjtBQUVBLFFBQUkyQixTQUFTLEdBQUd4QyxHQUFHLENBQUN0QixJQUFKLENBQVMsTUFBVCxLQUFvQnNCLEdBQUcsQ0FBQ3RCLElBQUosQ0FBUyxnQkFBVCxDQUFwQyxDQUwyRSxDQUtYOztBQUVoRSxRQUFJK0QsYUFBYSxHQUFHRCxTQUFTLEdBQUcsR0FBWixHQUFrQkYsU0FBbEIsR0FBOEIsR0FBbEQ7QUFDQSxRQUFJSSxhQUFhLEdBQUdGLFNBQVMsR0FBRyxHQUFaLEdBQWtCRCxTQUFsQixHQUE4QixHQUFsRDtBQUVBeEMsSUFBQUEsMEJBQTBCLENBQUNDLEdBQUQsRUFBTXlDLGFBQU4sRUFBcUJDLGFBQXJCLENBQTFCO0FBQ0gsR0FYRDtBQWFILENBdFJBLENBQUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9tdWx0aWxldmVsLmpzPzJiMjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJChmdW5jdGlvbigpIHtcblxuICAgIGNvbnN0IGdldEZpZWxkID0gZnVuY3Rpb24gZ2V0RmllbGQobGV2ZWwsIG5hbWUpIHtcbiAgICAgICAgbGV0IGxldmVsTWFyZ2luID0gbGV2ZWwgKiA1MDtcbiAgICAgICAgbGV0IHRvcCA9IChsZXZlbCA9PT0gMCA/ICd0b3AnIDogJycpO1xuXG4gICAgICAgIGxldCB0aGVfbmFtZSA9ICduYW1lPVwiJyArIG5hbWUgKyAnXCInO1xuICAgICAgICBpZiAobGV2ZWwgPT09IDApIHtcbiAgICAgICAgICAgIC8vIHRvcFxuICAgICAgICAgICAgdGhlX25hbWUgPSAnZGF0YS1hdHRyLW5hbWU9XCInICsgbmFtZSArICdcIic7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXJnaW5EaXIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5kaXJlY3Rpb24gPT09ICdsdHInID8gJ21hcmdpbi1sZWZ0JyA6ICdtYXJnaW4tcmlnaHQnO1xuXG4gICAgICAgIGxldCBmaWVsZCA9IGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGVtZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgYXJyYXktZmllbGQtdmFsdWVfb25seSBqc19fbXVsdGlsZXZlbC1maWVsZCAke3RvcH1cIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhlX25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiJHttYXJnaW5EaXJ9OiAke2xldmVsTWFyZ2lufXB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLW1pbnVzIGpzX19yZW1vdmUtaXRlbVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1wbHVzIGpzX19hZGQtc2libGluZyBoaWRkZW5cIiBkYXRhLWxldmVsPVwiJHtsZXZlbH1cIiA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlIGpzX19hZGQtY2hpbGRyZW4gaGlkZGVuXCIgZGF0YS1sZXZlbD1cIiR7bGV2ZWx9XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIGA7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBoYXNDaGlsZElucHV0cyA9IGZ1bmN0aW9uIGhhc0NoaWxkSW5wdXRzKCRlbGVtZW50KSB7XG4gICAgICAgIGlmICgkZWxlbWVudC5hdHRyKCduYW1lJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRUb3BJdGVtcyA9IGZ1bmN0aW9uIGdldFRvcEl0ZW1zKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuICQoZWxlbWVudCArICcgLmpzX19tdWx0aWxldmVsLWZpZWxkLnRvcCcpO1xuICAgIH07XG5cbiAgICBjb25zdCByZWZyZXNoQ29udHJvbHMgPSBmdW5jdGlvbiByZWZyZXNoQ29udHJvbHModW5pcXVlX2lkZW50aWZpZXIpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSc7XG4gICAgICAgIGlmICh1bmlxdWVfaWRlbnRpZmllcikge1xuICAgICAgICAgICAgZWxlbWVudCA9ICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdW2RhdGEtaWQ9XCInICsgdW5pcXVlX2lkZW50aWZpZXIgKyAnXCJdJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhpZGVCdXR0b25zID0gZnVuY3Rpb24gaGlkZUJ1dHRvbnMoKSB7XG4gICAgICAgICAgICAkKGVsZW1lbnQgKyAnIC5qc19fYWRkLXNpYmxpbmcnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAkKGVsZW1lbnQgKyAnIC5qc19fYWRkLWNoaWxkcmVuJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3RvcmVBZGRTaWJsaW5nQnV0dG9ucyA9IGZ1bmN0aW9uIHJlc3RvcmVBZGRTaWJsaW5nQnV0dG9ucygpIHtcbiAgICAgICAgICAgICQoZWxlbWVudCArICcgLmNoaWxkcmVuLXdyYXBwZXInKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50cyA9ICQodGhpcykuY2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5sYXN0KCkuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdqc19fbXVsdGlsZXZlbC1maWVsZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCA9ICQodGhpcykuZmluZCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZmlyc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmaWVsZC5maW5kKCcuanNfX2FkZC1zaWJsaW5nJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGFkZCBzaWJsaW5nIHRvIHRoZSBsYXN0IHRvcCBlbGVtZW50XG4gICAgICAgICAgICAkKGVsZW1lbnQgKyAnIC5qc19fbXVsdGlsZXZlbC1maWVsZC50b3AnKS5sYXN0KCkuZmluZCgnLmpzX19hZGQtc2libGluZycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN0b3JlQWRkQ2hpbGRyZW5CdXR0b25zID0gZnVuY3Rpb24gcmVzdG9yZUFkZENoaWxkcmVuQnV0dG9ucygpIHtcbiAgICAgICAgICAgICQoZWxlbWVudCArICcgLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5zaWJsaW5ncygnLmNoaWxkcmVuLXdyYXBwZXInKS5sZW5ndGggPT09IDAgfHwgJCh0aGlzKS5zaWJsaW5ncygnLmNoaWxkcmVuLXdyYXBwZXInKS5maW5kKCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcuanNfX2FkZC1jaGlsZHJlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwcmV2ZW50UmVtb3ZpbmdMYXN0VG9wSXRlbSA9IGZ1bmN0aW9uIHByZXZlbnRSZW1vdmluZ0xhc3RUb3BJdGVtKCkge1xuICAgICAgICAgICAgbGV0IHRvcF9pdGVtcyA9IGdldFRvcEl0ZW1zKGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHRvcF9pdGVtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0b3BfaXRlbXMuZmlyc3QoKS5maW5kKCcuanNfX3JlbW92ZS1pdGVtJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGhpZGVCdXR0b25zKCk7XG4gICAgICAgIHJlc3RvcmVBZGRTaWJsaW5nQnV0dG9ucygpO1xuICAgICAgICByZXN0b3JlQWRkQ2hpbGRyZW5CdXR0b25zKCk7XG4gICAgICAgIHByZXZlbnRSZW1vdmluZ0xhc3RUb3BJdGVtKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoYW5nZUFsbE9jY3VycmVuY2VzSW5UcmVlID0gZnVuY3Rpb24oJGVsLCBjdXJyZW50X25hbWUsIG5ld19uYW1lKSB7XG4gICAgICAgICRlbC5wYXJlbnRzKCdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdJykuZmluZCgnaW5wdXQnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0ICRpbnB1dCA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoJGlucHV0LmF0dHIoJ25hbWUnKSkge1xuICAgICAgICAgICAgICAgICRpbnB1dC5hdHRyKCduYW1lJywgJGlucHV0LmF0dHIoJ25hbWUnKS5yZXBsYWNlKGN1cnJlbnRfbmFtZSwgbmV3X25hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkaW5wdXQuYXR0cignZGF0YS1hdHRyLW5hbWUnKSkge1xuICAgICAgICAgICAgICAgICRpbnB1dC5hdHRyKCdkYXRhLWF0dHItbmFtZScsICRpbnB1dC5hdHRyKCdkYXRhLWF0dHItbmFtZScpLnJlcGxhY2UoY3VycmVudF9uYW1lLCBuZXdfbmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlZnJlc2hDb250cm9scygpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ21vdXNlbGVhdmUnLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXScsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGxldCB0b3BfaXRlbXMgPSBnZXRUb3BJdGVtcygnW2RhdGEtaWQ9XCInICsgJCh0aGlzKS5kYXRhKCdpZCcpICsgJ1wiXScpO1xuICAgICAgICBsZXQgaGFzX3RvcF9pdGVtc193aXRob3V0X2NoaWxkcmVuID0gZmFsc2U7XG4gICAgICAgIGxldCBlbGVtZW50X2NvbnRlbnQgPSAnJztcbiAgICAgICAgdG9wX2l0ZW1zLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoJChpdGVtKS5zaWJsaW5ncygnLmNoaWxkcmVuLXdyYXBwZXInKS5maW5kKCdpbnB1dCcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGhhc190b3BfaXRlbXNfd2l0aG91dF9jaGlsZHJlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgZWxlbWVudF9jb250ZW50ID0gaXRlbS5maW5kKCdpbnB1dCcpLnZhbCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChoYXNfdG9wX2l0ZW1zX3dpdGhvdXRfY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50X2NvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICBhbGVydCgnV2FybmluZzogaWYgeW91IHNhdmUgbm93LCB0aGUgZWxlbWVudCAnICsgZWxlbWVudF9jb250ZW50ICsgJywgd2l0aG91dCBjaGlsZHJlbiwgd2lsbCBiZSByZW1vdmVkLCBiZWNhdXNlIGl0XFwncyBpbnZhbGlkIFlBTUwnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ1dhcm5pbmc6IGlmIHlvdSBzYXZlIG5vdywgdGhlIHRvcCBlbGVtZW50cyB3aXRob3V0IGNoaWxkcmVuIHdpbGwgYmUgcmVtb3ZlZCwgYmVjYXVzZSBpdFxcJ3MgaW52YWxpZCBZQU1MJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0gLmpzX19hZGQtY2hpbGRyZW4nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgICAgIGxldCB1bmlxdWVfY29udGFpbmVyX2lkID0gZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5kYXRhKCdpZCcpO1xuICAgICAgICBsZXQgbGV2ZWwgPSBlbGVtZW50LmRhdGEoJ2xldmVsJykgKyAxO1xuXG4gICAgICAgIGNvbnN0IGdldFBhcmVudE9mRWxlbWVudCA9IGZ1bmN0aW9uIGdldFBhcmVudE9mRWxlbWVudChlbGVtZW50KSB7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5wYXJlbnQoKS5maXJzdCgpO1xuICAgICAgICAgICAgaWYgKHBhcmVudC5maW5kKCcuY2hpbGRyZW4td3JhcHBlcicpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICQocGFyZW50KS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJjaGlsZHJlbi13cmFwcGVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQuZmluZCgnLmNoaWxkcmVuLXdyYXBwZXInKS5maXJzdCgpO1xuXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGdldE5hbWVGcm9tUGFyZW50SW5wdXQgPSBmdW5jdGlvbiBnZXROYW1lRnJvbVBhcmVudElucHV0KHBhcmVudElucHV0LCBhdHRyKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50SW5wdXQuaGFzQ2xhc3MoJ2NoaWxkcmVuLXdyYXBwZXInKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudElucHV0ID0gcGFyZW50SW5wdXQuc2libGluZ3MoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmZpcnN0KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudElucHV0LmF0dHIoYXR0cikgKyAnWycgKyBwYXJlbnRJbnB1dC52YWwoKSArICddJztcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBnZXRJbnB1dEZyb21DaGlsZHJlbldyYXBwZXIgPSBmdW5jdGlvbiBnZXRJbnB1dEZyb21DaGlsZHJlbldyYXBwZXIocGFyZW50Q2hpbGRyZW5XcmFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyZW50Q2hpbGRyZW5XcmFwcGVyLnNpYmxpbmdzKCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5maXJzdCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHBhcmVudENoaWxkcmVuV3JhcHBlciA9IGdldFBhcmVudE9mRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgbGV0IHBhcmVudElucHV0ID0gZ2V0SW5wdXRGcm9tQ2hpbGRyZW5XcmFwcGVyKHBhcmVudENoaWxkcmVuV3JhcHBlcik7XG5cbiAgICAgICAgbGV0IGF0dHIgPSAnbmFtZSc7XG4gICAgICAgIGlmIChwYXJlbnRJbnB1dC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5oYXNDbGFzcygndG9wJykpIHtcbiAgICAgICAgICAgIGF0dHIgPSAnZGF0YS1hdHRyLW5hbWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyZW50SW5wdXQuYXR0cihhdHRyLCBwYXJlbnRJbnB1dC5hdHRyKGF0dHIpLnJlcGxhY2UoJ1tdJywgJycpKTtcblxuICAgICAgICBsZXQgbmFtZSA9IGdldE5hbWVGcm9tUGFyZW50SW5wdXQocGFyZW50SW5wdXQsIGF0dHIpO1xuICAgICAgICBsZXQgZmllbGQgPSBnZXRGaWVsZChsZXZlbCwgbmFtZSk7XG5cbiAgICAgICAgJChwYXJlbnRDaGlsZHJlbldyYXBwZXIpLmFwcGVuZChmaWVsZCk7XG4gICAgICAgIHJlZnJlc2hDb250cm9scyh1bmlxdWVfY29udGFpbmVyX2lkKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdIC5qc19fYWRkLXNpYmxpbmcnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgICAgIGxldCB1bmlxdWVfY29udGFpbmVyX2lkID0gZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5kYXRhKCdpZCcpO1xuICAgICAgICBsZXQgbGV2ZWwgPSBlbGVtZW50LmRhdGEoJ2xldmVsJyk7XG4gICAgICAgIGVsZW1lbnQuY2xvc2VzdCgnLmNoaWxkcmVuLXdyYXBwZXInKS5maW5kKCcuanNfX2FkZC1zaWJsaW5nJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIGxldCBzaWJsaW5nID0gbnVsbDtcbiAgICAgICAgbGV0IGlzX3RvcCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmhhc0NsYXNzKCd0b3AnKSkge1xuICAgICAgICAgICAgaXNfdG9wID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc190b3ApIHtcbiAgICAgICAgICAgIHNpYmxpbmcgPSBlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmZpcnN0KCkuZmluZCgnaW5wdXQnKS5sYXN0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWJsaW5nID0gZWxlbWVudC5zaWJsaW5ncygnaW5wdXQnKS5maXJzdCgpO1xuICAgICAgICAgICAgaWYgKCFzaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgc2libGluZyA9IGVsZW1lbnQuY2xvc2VzdCgnLmNoaWxkcmVuLXdyYXBwZXInKS5maXJzdCgpLmZpbmQoJ2lucHV0JykubGFzdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ2V0UGFyZW50T2ZFbGVtZW50ID0gZnVuY3Rpb24gZ2V0UGFyZW50T2ZFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBlbGVtZW50LmNsb3Nlc3QoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLnBhcmVudCgpLmZpcnN0KCk7XG4gICAgICAgICAgICBpZiAoIXBhcmVudC5oYXNDbGFzcygnZWxlbWVudC13cmFwcGVyJykpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LmZpbmQoJy5lbGVtZW50LXdyYXBwZXInKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgJChwYXJlbnQpLmFwcGVuZCgnPGRpdiBjbGFzcz1cImVsZW1lbnQtd3JhcHBlclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5maW5kKCcuZWxlbWVudC13cmFwcGVyJykuZmlyc3QoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBnZXROYW1lRnJvbVNpYmxpbmcgPSBmdW5jdGlvbiBnZXROYW1lRnJvbVNpYmxpbmcocGFyZW50LCBzaWJsaW5nLCBpc190b3AgPSBmYWxzZSkge1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBzaWJsaW5nLmF0dHIoJ25hbWUnKTtcblxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkSW5wdXRzKHNpYmxpbmcpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IHNpYmxpbmcuZGF0YSgnYXR0ci1uYW1lJykgKyAnW10nO1xuICAgICAgICAgICAgICAgIHNpYmxpbmcucmVtb3ZlQXR0cignbmFtZScpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBsYXN0X2luZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignWycpO1xuICAgICAgICAgICAgbGV0IGFsbW9zdF90aGVyZSA9IG5hbWUuc3Vic3RyKGxhc3RfaW5kZXggKyAxKTtcbiAgICAgICAgICAgIGxldCBsYXN0X3RhZyA9IGFsbW9zdF90aGVyZS5zdWJzdHIoMCwgYWxtb3N0X3RoZXJlLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgICAgICBpZiAoJC5pc051bWVyaWMobGFzdF90YWcpKSB7XG4gICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgnWycgKyBsYXN0X3RhZyArICddJywgJ1snICsgKHBhcnNlSW50KGxhc3RfdGFnLCAxMCkgKyAxKSArICddJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpc190b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgnWycgKyBsYXN0X3RhZyArICddJywgJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgJ1sxXSc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gY2hhbmdlIHNpYmxpbmcgbmFtZSBhdHRyIGlmIG5lY2Vzc2FyeVxuICAgICAgICAgICAgICAgICAgICBpZiAoc2libGluZy5hdHRyKCduYW1lJykuc2xpY2UoJy0yJykgIT09ICdbMF0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VBbGxPY2N1cnJlbmNlc0luVHJlZShzaWJsaW5nLCBzaWJsaW5nLmF0dHIoJ25hbWUnKSwgc2libGluZy5hdHRyKCduYW1lJykgKyAnWzBdJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBwYXJlbnQgPSBnZXRQYXJlbnRPZkVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGxldCBuYW1lID0gZ2V0TmFtZUZyb21TaWJsaW5nKHBhcmVudCwgc2libGluZywgaXNfdG9wKTtcblxuICAgICAgICBsZXQgZmllbGQgPSBnZXRGaWVsZChsZXZlbCwgbmFtZSk7XG4gICAgICAgICQoZmllbGQpLmluc2VydEFmdGVyKHBhcmVudCk7XG5cbiAgICAgICAgcmVmcmVzaENvbnRyb2xzKHVuaXF1ZV9jb250YWluZXJfaWQpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0gLmpzX19yZW1vdmUtaXRlbScsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICQodGhpcykucGFyZW50cygnLmVsZW1lbnQtd3JhcHBlcicpLmZpcnN0KCkucmVtb3ZlKCk7XG4gICAgICAgIGxldCB1bmlxdWVfY29udGFpbmVyX2lkID0gJCh0aGlzKS5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5kYXRhKCdpZCcpO1xuICAgICAgICByZWZyZXNoQ29udHJvbHModW5pcXVlX2NvbnRhaW5lcl9pZCk7XG4gICAgfSk7XG5cbiAgICAvLyBTdG9yZSBvbGQgdmFsdWUgYmVmb3JlIGVkaXRpbmcgYSBmaWVsZFxuICAgICQoZG9jdW1lbnQpLm9uKCdmb2N1c2luJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0gaW5wdXQnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAkKHRoaXMpLmRhdGEoJ2N1cnJlbnQtdmFsdWUnLCAkKHRoaXMpLnZhbCgpKTtcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBmaWVsZCBlZGl0ZWQgZXZlbnRcbiAgICAkKGRvY3VtZW50KS5vbignY2hhbmdlJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0gaW5wdXQnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBsZXQgJGVsID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IG9sZF92YWx1ZSA9ICRlbC5kYXRhKCdjdXJyZW50LXZhbHVlJyk7XG4gICAgICAgIGxldCBuZXdfdmFsdWUgPSAkZWwudmFsKCk7XG5cbiAgICAgICAgbGV0IGZ1bGxfbmFtZSA9ICRlbC5hdHRyKCduYW1lJykgfHwgJGVsLmF0dHIoJ2RhdGEtYXR0ci1uYW1lJyk7IC8vIGZpcnN0LWxldmVsIGl0ZW1zIGhhdmUgYGRhdGEtYXR0ci1uYW1lYCBpbnN0ZWFkIG9mIGBuYW1lYFxuXG4gICAgICAgIGxldCBvbGRfbmFtZV9hdHRyID0gZnVsbF9uYW1lICsgJ1snICsgb2xkX3ZhbHVlICsgJ10nO1xuICAgICAgICBsZXQgbmV3X25hbWVfYXR0ciA9IGZ1bGxfbmFtZSArICdbJyArIG5ld192YWx1ZSArICddJztcblxuICAgICAgICBjaGFuZ2VBbGxPY2N1cnJlbmNlc0luVHJlZSgkZWwsIG9sZF9uYW1lX2F0dHIsIG5ld19uYW1lX2F0dHIpO1xuICAgIH0pO1xuXG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiZ2V0RmllbGQiLCJsZXZlbCIsIm5hbWUiLCJsZXZlbE1hcmdpbiIsInRvcCIsInRoZV9uYW1lIiwibWFyZ2luRGlyIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImRvY3VtZW50IiwiYm9keSIsImRpcmVjdGlvbiIsImZpZWxkIiwiaGFzQ2hpbGRJbnB1dHMiLCIkZWxlbWVudCIsImF0dHIiLCJnZXRUb3BJdGVtcyIsImVsZW1lbnQiLCJyZWZyZXNoQ29udHJvbHMiLCJ1bmlxdWVfaWRlbnRpZmllciIsImhpZGVCdXR0b25zIiwiYWRkQ2xhc3MiLCJyZXN0b3JlQWRkU2libGluZ0J1dHRvbnMiLCJlYWNoIiwiZWxlbWVudHMiLCJjaGlsZHJlbiIsImxhc3QiLCJoYXNDbGFzcyIsImZpbmQiLCJmaXJzdCIsInJlbW92ZUNsYXNzIiwicmVzdG9yZUFkZENoaWxkcmVuQnV0dG9ucyIsInNpYmxpbmdzIiwibGVuZ3RoIiwicHJldmVudFJlbW92aW5nTGFzdFRvcEl0ZW0iLCJ0b3BfaXRlbXMiLCJjaGFuZ2VBbGxPY2N1cnJlbmNlc0luVHJlZSIsIiRlbCIsImN1cnJlbnRfbmFtZSIsIm5ld19uYW1lIiwicGFyZW50cyIsIiRpbnB1dCIsInJlcGxhY2UiLCJyZWFkeSIsIm9uIiwiZXZlbnQiLCJkYXRhIiwiaGFzX3RvcF9pdGVtc193aXRob3V0X2NoaWxkcmVuIiwiZWxlbWVudF9jb250ZW50IiwiaXRlbSIsInZhbCIsImFsZXJ0IiwidW5pcXVlX2NvbnRhaW5lcl9pZCIsImNsb3Nlc3QiLCJnZXRQYXJlbnRPZkVsZW1lbnQiLCJwYXJlbnQiLCJhcHBlbmQiLCJnZXROYW1lRnJvbVBhcmVudElucHV0IiwicGFyZW50SW5wdXQiLCJnZXRJbnB1dEZyb21DaGlsZHJlbldyYXBwZXIiLCJwYXJlbnRDaGlsZHJlbldyYXBwZXIiLCJzaWJsaW5nIiwiaXNfdG9wIiwiZ2V0TmFtZUZyb21TaWJsaW5nIiwicmVtb3ZlQXR0ciIsImxhc3RfaW5kZXgiLCJsYXN0SW5kZXhPZiIsImFsbW9zdF90aGVyZSIsInN1YnN0ciIsImxhc3RfdGFnIiwiaXNOdW1lcmljIiwicGFyc2VJbnQiLCJzbGljZSIsImluc2VydEFmdGVyIiwicmVtb3ZlIiwib2xkX3ZhbHVlIiwibmV3X3ZhbHVlIiwiZnVsbF9uYW1lIiwib2xkX25hbWVfYXR0ciIsIm5ld19uYW1lX2F0dHIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/multilevel.js\n");
/***/ }),
/***/ "./app/forms/fields/parents.js":
/*!*************************************!*\
!*** ./app/forms/fields/parents.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Instances\": () => (/* binding */ Instances),\n/* harmony export */ \"default\": () => (/* binding */ Parents),\n/* harmony export */ \"b64_encode_unicode\": () => (/* binding */ b64_encode_unicode),\n/* harmony export */ \"b64_decode_unicode\": () => (/* binding */ b64_decode_unicode)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/finderjs */ \"./app/utils/finderjs.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\nvar XHRUUID = 0;\nvar Instances = {};\n\nvar Parents = /*#__PURE__*/function () {\n function Parents(container, field, data) {\n var _this = this;\n\n _classCallCheck(this, Parents);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.fieldName = field.attr('name');\n this.field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.data = data;\n this.parentLabel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-label=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.parentName = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n var dataLoad = this.dataLoad;\n this.finder = new _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.container, function (parent, callback) {\n return dataLoad.call(_this, parent, callback);\n }, {\n labelKey: 'name',\n defaultPath: this.field.val(),\n createItemContent: function createItemContent(item) {\n return Parents.createItemContent(this.config, item);\n }\n });\n /*\n this.finder.$emitter.on('leaf-selected', (item) => {\n console.log('selected', item);\n this.finder.emit('create-column', () => this.createSimpleColumn(item));\n });\n this.finder.$emitter.on('item-selected', (selected) => {\n console.log('selected', selected);\n // for future use only - create column-card creation for file with details like in macOS finder\n // this.finder.$emitter('create-column', () => this.createSimpleColumn(selected));\n }); */\n\n this.finder.$emitter.on('column-created', function () {\n _this.container[0].scrollLeft = _this.container[0].scrollWidth - _this.container[0].clientWidth;\n });\n }\n\n _createClass(Parents, [{\n key: \"createSimpleColumn\",\n value: function createSimpleColumn(item) {}\n }, {\n key: \"dataLoad\",\n value: function dataLoad(parent, callback) {\n var _this2 = this;\n\n if (!parent) {\n return callback(this.data);\n }\n\n if (parent.type !== 'dir' || !parent['has-children']) {\n return false;\n }\n\n var UUID = ++XHRUUID;\n this.startLoader();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(this.container), {\n route: b64_encode_unicode(parent.value),\n field: this.field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce\n }),\n success: function success(response) {\n _this2.stopLoader();\n\n if (response.status === 'error') {\n _this2.finder.$emitter.emit('create-column', Parents.createErrorColumn(response.message)[0]);\n\n return false;\n } // stale request\n\n\n if (UUID !== XHRUUID) {\n return false;\n }\n\n return callback(response.data);\n }\n });\n }\n }, {\n key: \"startLoader\",\n value: function startLoader() {\n this.loadingIndicator = Parents.createLoadingColumn();\n this.finder.$emitter.emit('create-column', this.loadingIndicator[0]);\n return this.loadingIndicator;\n }\n }, {\n key: \"stopLoader\",\n value: function stopLoader() {\n return this.loadingIndicator && this.loadingIndicator.remove();\n }\n }], [{\n key: \"createItemContent\",\n value: function createItemContent(config, item) {\n var frag = document.createDocumentFragment();\n var label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<span title=\\\"\".concat(item[config.labelKey], \"\\\" />\"));\n var infoContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span class=\"info-container\" />');\n var iconPrepend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var iconAppend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var badge = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span class=\"badge\" />');\n var prependClasses = ['fa'];\n var appendClasses = ['fa']; // prepend icon\n\n if (item.children || item.type === 'dir') {\n prependClasses.push('fa-folder');\n } else if (item.type === 'root') {\n prependClasses.push('fa-sitemap');\n } else if (item.type === 'file') {\n prependClasses.push('fa-file-o');\n }\n\n iconPrepend.addClass(prependClasses.join(' ')); // text label\n\n label.text(item[config.labelKey]).prepend(iconPrepend);\n label.appendTo(frag); // append icon\n\n if (item.children || item['has-children']) {\n appendClasses.push('fa-caret-right');\n badge.text(item.size || item.count || 0);\n badge.appendTo(infoContainer);\n }\n\n iconAppend.addClass(appendClasses.join(' '));\n iconAppend.appendTo(infoContainer);\n infoContainer.appendTo(frag);\n return frag;\n }\n }, {\n key: \"createLoadingColumn\",\n value: function createLoadingColumn() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n <div class=\\\"fjs-col leaf-col\\\" style=\\\"overflow: hidden;\\\">\\n <div class=\\\"leaf-row\\\">\\n <div class=\\\"grav-loading\\\"><div class=\\\"grav-loader\\\">Loading...</div></div>\\n </div>\\n </div>\\n \");\n }\n }, {\n key: \"createErrorColumn\",\n value: function createErrorColumn(error) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n <div class=\\\"fjs-col leaf-col\\\" style=\\\"overflow: hidden;\\\">\\n <div class=\\\"leaf-row error\\\">\\n <i class=\\\"fa fa-fw fa-warning\\\"></i>\\n <span>\".concat(error, \"</span>\\n </div>\\n </div>\\n \"));\n }\n }]);\n\n return Parents;\n}();\n\n\nvar b64_encode_unicode = function b64_encode_unicode(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n};\nvar b64_decode_unicode = function b64_decode_unicode(str) {\n return decodeURIComponent(atob(str).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n};\n\nvar getExtraFormData = function getExtraFormData(container) {\n var form = container.closest('form');\n\n if (container.closest('[data-remodal-id]').length) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()('form#blueprints');\n }\n\n var data = {};\n var unique_id = form.find('[name=\"__unique_form_id__\"]');\n data['__form-name__'] = form.find('[name=\"__form-name__\"]').val();\n data['form-nonce'] = form.find('[name=\"form-nonce\"]').val();\n\n if (unique_id.length) {\n data['__unique_form_id__'] = unique_id.val();\n }\n\n return data;\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-parents]', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var field = target.closest('.parents-wrapper').find('input[name]');\n var fieldName = field.attr('name');\n\n if (!field.length) {\n fieldName = target.data('parents');\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(target.data('parents'), \"\\\"]\")).first();\n }\n\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(target.data('remodalTarget') || 'parents', \"\\\"]\"));\n var loader = modal.find('.grav-loading');\n var content = modal.find('.parents-content');\n loader.css('display', 'block');\n content.html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(target), {\n route: b64_encode_unicode(field.val()),\n field: field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce,\n initial: true\n }),\n success: function success(response) {\n loader.css('display', 'none');\n\n if (response.status === 'error') {\n content.html(response.message);\n return true;\n }\n\n if (!Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]) {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))] = new Parents(content, field, response.data);\n } else {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))].finder.reload(response.data);\n }\n\n modal.data('parents', Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]);\n modal.data('parents-selectedField', field);\n }\n });\n}); // apply finder selection to field\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-id].parents-container [data-parents-select]', function (event) {\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents');\n var selectedField = modal.data('parentsSelectedField');\n var finder = parents.finder;\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n\n if (selectedField.closest('.remodal').length) {\n var index = field.index(selectedField);\n selectedField.val(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentLabel[index]).text(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentName[index]).text(name);\n } else {\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n }\n\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(modal.data('remodalId'), \"\\\"]\")).data('remodal')];\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QjtBQUNBekMsSUFBQUEsNkNBQUMsQ0FBQ1ksV0FBVyxDQUFDeUcsS0FBRCxDQUFaLENBQUQsQ0FBc0JqRCxJQUF0QixDQUEyQjNCLEtBQTNCO0FBQ0F6QyxJQUFBQSw2Q0FBQyxDQUFDYSxVQUFVLENBQUN3RyxLQUFELENBQVgsQ0FBRCxDQUFxQmpELElBQXJCLENBQTBCZ0QsSUFBMUI7QUFDSCxHQUxELE1BS087QUFDSDVHLElBQUFBLEtBQUssQ0FBQ2EsR0FBTixDQUFVb0IsS0FBVjtBQUNBN0IsSUFBQUEsV0FBVyxDQUFDd0QsSUFBWixDQUFpQjNCLEtBQWpCO0FBQ0E1QixJQUFBQSxVQUFVLENBQUN1RCxJQUFYLENBQWdCZ0QsSUFBaEI7QUFDQXJHLElBQUFBLE1BQU0sQ0FBQ2IsTUFBUCxDQUFja0IsV0FBZCxHQUE0QnFCLEtBQTVCO0FBRUg7O0FBQ0QsTUFBTTZFLE9BQU8sR0FBR3RILDhEQUFBLENBQWlCQSw2Q0FBQyw4QkFBc0J1RyxLQUFLLENBQUM5RixJQUFOLENBQVcsV0FBWCxDQUF0QixTQUFELENBQW9EQSxJQUFwRCxDQUF5RCxTQUF6RCxDQUFqQixDQUFoQjtBQUNBNkcsRUFBQUEsT0FBTyxDQUFDRSxLQUFSO0FBQ0gsQ0ExQkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9wYXJlbnRzLmpzPzQ5YzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBGaW5kZXIgZnJvbSAnLi4vLi4vdXRpbHMvZmluZGVyanMnO1xuaW1wb3J0IHsgY29uZmlnIGFzIGdyYXZDb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5cbmxldCBYSFJVVUlEID0gMDtcbmV4cG9ydCBjb25zdCBJbnN0YW5jZXMgPSB7fTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyZW50cyB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyLCBmaWVsZCwgZGF0YSkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5maWVsZE5hbWUgPSBmaWVsZC5hdHRyKCduYW1lJyk7XG4gICAgICAgIHRoaXMuZmllbGQgPSAkKGBbbmFtZT1cIiR7dGhpcy5maWVsZE5hbWV9XCJdYCk7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMucGFyZW50TGFiZWwgPSAkKGBbZGF0YS1wYXJlbnRzLWZpZWxkLWxhYmVsPVwiJHt0aGlzLmZpZWxkTmFtZX1cIl1gKTtcbiAgICAgICAgdGhpcy5wYXJlbnROYW1lID0gJChgW2RhdGEtcGFyZW50cy1maWVsZC1uYW1lPVwiJHt0aGlzLmZpZWxkTmFtZX1cIl1gKTtcblxuICAgICAgICBjb25zdCBkYXRhTG9hZCA9IHRoaXMuZGF0YUxvYWQ7XG5cbiAgICAgICAgdGhpcy5maW5kZXIgPSBuZXcgRmluZGVyKFxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIsXG4gICAgICAgICAgICAocGFyZW50LCBjYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhTG9hZC5jYWxsKHRoaXMsIHBhcmVudCwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbEtleTogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRQYXRoOiB0aGlzLmZpZWxkLnZhbCgpLFxuICAgICAgICAgICAgICAgIGNyZWF0ZUl0ZW1Db250ZW50OiBmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQYXJlbnRzLmNyZWF0ZUl0ZW1Db250ZW50KHRoaXMuY29uZmlnLCBpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgLypcbiAgICAgICAgdGhpcy5maW5kZXIuJGVtaXR0ZXIub24oJ2xlYWYtc2VsZWN0ZWQnLCAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3NlbGVjdGVkJywgaXRlbSk7XG4gICAgICAgICAgICB0aGlzLmZpbmRlci5lbWl0KCdjcmVhdGUtY29sdW1uJywgKCkgPT4gdGhpcy5jcmVhdGVTaW1wbGVDb2x1bW4oaXRlbSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5vbignaXRlbS1zZWxlY3RlZCcsIChzZWxlY3RlZCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3NlbGVjdGVkJywgc2VsZWN0ZWQpO1xuICAgICAgICAgICAgLy8gZm9yIGZ1dHVyZSB1c2Ugb25seSAtIGNyZWF0ZSBjb2x1bW4tY2FyZCBjcmVhdGlvbiBmb3IgZmlsZSB3aXRoIGRldGFpbHMgbGlrZSBpbiBtYWNPUyBmaW5kZXJcbiAgICAgICAgICAgIC8vIHRoaXMuZmluZGVyLiRlbWl0dGVyKCdjcmVhdGUtY29sdW1uJywgKCkgPT4gdGhpcy5jcmVhdGVTaW1wbGVDb2x1bW4oc2VsZWN0ZWQpKTtcbiAgICAgICAgfSk7ICovXG5cbiAgICAgICAgdGhpcy5maW5kZXIuJGVtaXR0ZXIub24oJ2NvbHVtbi1jcmVhdGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJbMF0uc2Nyb2xsTGVmdCA9IHRoaXMuY29udGFpbmVyWzBdLnNjcm9sbFdpZHRoIC0gdGhpcy5jb250YWluZXJbMF0uY2xpZW50V2lkdGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVJdGVtQ29udGVudChjb25maWcsIGl0ZW0pIHtcbiAgICAgICAgY29uc3QgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcblxuICAgICAgICBjb25zdCBsYWJlbCA9ICQoYDxzcGFuIHRpdGxlPVwiJHtpdGVtW2NvbmZpZy5sYWJlbEtleV19XCIgLz5gKTtcbiAgICAgICAgY29uc3QgaW5mb0NvbnRhaW5lciA9ICQoJzxzcGFuIGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAvPicpO1xuICAgICAgICBjb25zdCBpY29uUHJlcGVuZCA9ICQoJzxpIC8+Jyk7XG4gICAgICAgIGNvbnN0IGljb25BcHBlbmQgPSAkKCc8aSAvPicpO1xuICAgICAgICBjb25zdCBiYWRnZSA9ICQoJzxzcGFuIGNsYXNzPVwiYmFkZ2VcIiAvPicpO1xuICAgICAgICBjb25zdCBwcmVwZW5kQ2xhc3NlcyA9IFsnZmEnXTtcbiAgICAgICAgY29uc3QgYXBwZW5kQ2xhc3NlcyA9IFsnZmEnXTtcblxuICAgICAgICAvLyBwcmVwZW5kIGljb25cbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gfHwgaXRlbS50eXBlID09PSAnZGlyJykge1xuICAgICAgICAgICAgcHJlcGVuZENsYXNzZXMucHVzaCgnZmEtZm9sZGVyJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAncm9vdCcpIHtcbiAgICAgICAgICAgIHByZXBlbmRDbGFzc2VzLnB1c2goJ2ZhLXNpdGVtYXAnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdmaWxlJykge1xuICAgICAgICAgICAgcHJlcGVuZENsYXNzZXMucHVzaCgnZmEtZmlsZS1vJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpY29uUHJlcGVuZC5hZGRDbGFzcyhwcmVwZW5kQ2xhc3Nlcy5qb2luKCcgJykpO1xuXG4gICAgICAgIC8vIHRleHQgbGFiZWxcbiAgICAgICAgbGFiZWwudGV4dChpdGVtW2NvbmZpZy5sYWJlbEtleV0pLnByZXBlbmQoaWNvblByZXBlbmQpO1xuICAgICAgICBsYWJlbC5hcHBlbmRUbyhmcmFnKTtcblxuICAgICAgICAvLyBhcHBlbmQgaWNvblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiB8fCBpdGVtWydoYXMtY2hpbGRyZW4nXSkge1xuICAgICAgICAgICAgYXBwZW5kQ2xhc3Nlcy5wdXNoKCdmYS1jYXJldC1yaWdodCcpO1xuICAgICAgICAgICAgYmFkZ2UudGV4dChpdGVtLnNpemUgfHwgaXRlbS5jb3VudCB8fCAwKTtcbiAgICAgICAgICAgIGJhZGdlLmFwcGVuZFRvKGluZm9Db250YWluZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWNvbkFwcGVuZC5hZGRDbGFzcyhhcHBlbmRDbGFzc2VzLmpvaW4oJyAnKSk7XG4gICAgICAgIGljb25BcHBlbmQuYXBwZW5kVG8oaW5mb0NvbnRhaW5lcik7XG4gICAgICAgIGluZm9Db250YWluZXIuYXBwZW5kVG8oZnJhZyk7XG5cbiAgICAgICAgcmV0dXJuIGZyYWc7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZUxvYWRpbmdDb2x1bW4oKSB7XG4gICAgICAgIHJldHVybiAkKGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmanMtY29sIGxlYWYtY29sXCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWFmLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Jhdi1sb2FkaW5nXCI+PGRpdiBjbGFzcz1cImdyYXYtbG9hZGVyXCI+TG9hZGluZy4uLjwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIGApO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVFcnJvckNvbHVtbihlcnJvcikge1xuICAgICAgICByZXR1cm4gJChgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmpzLWNvbCBsZWFmLWNvbFwiIHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlbjtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVhZi1yb3cgZXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS13YXJuaW5nXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke2Vycm9yfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVTaW1wbGVDb2x1bW4oaXRlbSkge31cblxuICAgIGRhdGFMb2FkKHBhcmVudCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLmRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC50eXBlICE9PSAnZGlyJyB8fCAhcGFyZW50WydoYXMtY2hpbGRyZW4nXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgVVVJRCA9ICsrWEhSVVVJRDtcbiAgICAgICAgdGhpcy5zdGFydExvYWRlcigpO1xuXG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB1cmw6IGAke2dyYXZDb25maWcuY3VycmVudF91cmx9YCxcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZ2V0RXh0cmFGb3JtRGF0YSh0aGlzLmNvbnRhaW5lciksIHtcbiAgICAgICAgICAgICAgICByb3V0ZTogYjY0X2VuY29kZV91bmljb2RlKHBhcmVudC52YWx1ZSksXG4gICAgICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQuZGF0YSgnZmllbGROYW1lJyksXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnZ2V0TGV2ZWxMaXN0aW5nJyxcbiAgICAgICAgICAgICAgICAnYWRtaW4tbm9uY2UnOiBncmF2Q29uZmlnLmFkbWluX25vbmNlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcExvYWRlcigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5lbWl0KCdjcmVhdGUtY29sdW1uJywgUGFyZW50cy5jcmVhdGVFcnJvckNvbHVtbihyZXNwb25zZS5tZXNzYWdlKVswXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gc3RhbGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgIGlmIChVVUlEICE9PSBYSFJVVUlEKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXJ0TG9hZGVyKCkge1xuICAgICAgICB0aGlzLmxvYWRpbmdJbmRpY2F0b3IgPSBQYXJlbnRzLmNyZWF0ZUxvYWRpbmdDb2x1bW4oKTtcbiAgICAgICAgdGhpcy5maW5kZXIuJGVtaXR0ZXIuZW1pdCgnY3JlYXRlLWNvbHVtbicsIHRoaXMubG9hZGluZ0luZGljYXRvclswXSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZ0luZGljYXRvcjtcbiAgICB9XG5cbiAgICBzdG9wTG9hZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nSW5kaWNhdG9yICYmIHRoaXMubG9hZGluZ0luZGljYXRvci5yZW1vdmUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBiNjRfZW5jb2RlX3VuaWNvZGUgPSAoc3RyKSA9PiB7XG4gICAgcmV0dXJuIGJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxcbiAgICAgICAgZnVuY3Rpb24gdG9Tb2xpZEJ5dGVzKG1hdGNoLCBwMSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoJzB4JyArIHAxKTtcbiAgICAgICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGI2NF9kZWNvZGVfdW5pY29kZSA9IChzdHIpID0+IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2Ioc3RyKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgcmV0dXJuICclJyArICgnMDAnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIH0pLmpvaW4oJycpKTtcbn07XG5cbmNvbnN0IGdldEV4dHJhRm9ybURhdGEgPSAoY29udGFpbmVyKSA9PiB7XG4gICAgbGV0IGZvcm0gPSBjb250YWluZXIuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmIChjb250YWluZXIuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKS5sZW5ndGgpIHtcbiAgICAgICAgZm9ybSA9ICQoJ2Zvcm0jYmx1ZXByaW50cycpO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgY29uc3QgdW5pcXVlX2lkID0gZm9ybS5maW5kKCdbbmFtZT1cIl9fdW5pcXVlX2Zvcm1faWRfX1wiXScpO1xuXG4gICAgZGF0YVsnX19mb3JtLW5hbWVfXyddID0gZm9ybS5maW5kKCdbbmFtZT1cIl9fZm9ybS1uYW1lX19cIl0nKS52YWwoKTtcbiAgICBkYXRhWydmb3JtLW5vbmNlJ10gPSBmb3JtLmZpbmQoJ1tuYW1lPVwiZm9ybS1ub25jZVwiXScpLnZhbCgpO1xuXG4gICAgaWYgKHVuaXF1ZV9pZC5sZW5ndGgpIHtcbiAgICAgICAgZGF0YVsnX191bmlxdWVfZm9ybV9pZF9fJ10gPSB1bmlxdWVfaWQudmFsKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG59O1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGFyZW50c10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgZmllbGQgPSB0YXJnZXQuY2xvc2VzdCgnLnBhcmVudHMtd3JhcHBlcicpLmZpbmQoJ2lucHV0W25hbWVdJyk7XG4gICAgbGV0IGZpZWxkTmFtZSA9IGZpZWxkLmF0dHIoJ25hbWUnKTtcblxuICAgIGlmICghZmllbGQubGVuZ3RoKSB7XG4gICAgICAgIGZpZWxkTmFtZSA9IHRhcmdldC5kYXRhKCdwYXJlbnRzJyk7XG4gICAgICAgIGZpZWxkID0gJChgW25hbWU9XCIke3RhcmdldC5kYXRhKCdwYXJlbnRzJyl9XCJdYCkuZmlyc3QoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2RhbCA9ICQoYFtkYXRhLXJlbW9kYWwtaWQ9XCIke3RhcmdldC5kYXRhKCdyZW1vZGFsVGFyZ2V0JykgfHwgJ3BhcmVudHMnfVwiXWApO1xuICAgIGNvbnN0IGxvYWRlciA9IG1vZGFsLmZpbmQoJy5ncmF2LWxvYWRpbmcnKTtcbiAgICBjb25zdCBjb250ZW50ID0gbW9kYWwuZmluZCgnLnBhcmVudHMtY29udGVudCcpO1xuXG4gICAgbG9hZGVyLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuICAgIGNvbnRlbnQuaHRtbCgnJyk7XG4gICAgJC5hamF4KHtcbiAgICAgICAgdXJsOiBgJHtncmF2Q29uZmlnLmN1cnJlbnRfdXJsfWAsXG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBkYXRhOiBPYmplY3QuYXNzaWduKHt9LCBnZXRFeHRyYUZvcm1EYXRhKHRhcmdldCksIHtcbiAgICAgICAgICAgIHJvdXRlOiBiNjRfZW5jb2RlX3VuaWNvZGUoZmllbGQudmFsKCkpLFxuICAgICAgICAgICAgZmllbGQ6IGZpZWxkLmRhdGEoJ2ZpZWxkTmFtZScpLFxuICAgICAgICAgICAgYWN0aW9uOiAnZ2V0TGV2ZWxMaXN0aW5nJyxcbiAgICAgICAgICAgICdhZG1pbi1ub25jZSc6IGdyYXZDb25maWcuYWRtaW5fbm9uY2UsXG4gICAgICAgICAgICBpbml0aWFsOiB0cnVlXG4gICAgICAgIH0pLFxuICAgICAgICBzdWNjZXNzKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBsb2FkZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuaHRtbChyZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdKSB7XG4gICAgICAgICAgICAgICAgSW5zdGFuY2VzW2Ake2ZpZWxkTmFtZX0tJHttb2RhbC5kYXRhKCdyZW1vZGFsSWQnKX1gXSA9IG5ldyBQYXJlbnRzKGNvbnRlbnQsIGZpZWxkLCByZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgSW5zdGFuY2VzW2Ake2ZpZWxkTmFtZX0tJHttb2RhbC5kYXRhKCdyZW1vZGFsSWQnKX1gXS5maW5kZXIucmVsb2FkKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb2RhbC5kYXRhKCdwYXJlbnRzJywgSW5zdGFuY2VzW2Ake2ZpZWxkTmFtZX0tJHttb2RhbC5kYXRhKCdyZW1vZGFsSWQnKX1gXSk7XG4gICAgICAgICAgICBtb2RhbC5kYXRhKCdwYXJlbnRzLXNlbGVjdGVkRmllbGQnLCBmaWVsZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG4vLyBhcHBseSBmaW5kZXIgc2VsZWN0aW9uIHRvIGZpZWxkXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcmVtb2RhbC1pZF0ucGFyZW50cy1jb250YWluZXIgW2RhdGEtcGFyZW50cy1zZWxlY3RdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgbW9kYWwgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmNsb3Nlc3QoJ1tkYXRhLXJlbW9kYWwtaWRdJyk7XG4gICAgY29uc3QgcGFyZW50cyA9IG1vZGFsLmRhdGEoJ3BhcmVudHMnKTtcbiAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbW9kYWwuZGF0YSgncGFyZW50c1NlbGVjdGVkRmllbGQnKTtcbiAgICBjb25zdCBmaW5kZXIgPSBwYXJlbnRzLmZpbmRlcjtcbiAgICBjb25zdCBmaWVsZCA9IHBhcmVudHMuZmllbGQ7XG4gICAgY29uc3QgcGFyZW50TGFiZWwgPSBwYXJlbnRzLnBhcmVudExhYmVsO1xuICAgIGNvbnN0IHBhcmVudE5hbWUgPSBwYXJlbnRzLnBhcmVudE5hbWU7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZmluZGVyLmZpbmRMYXN0QWN0aXZlKCkuaXRlbVswXTtcbiAgICBjb25zdCB2YWx1ZSA9IHNlbGVjdGlvbi5faXRlbVtmaW5kZXIuY29uZmlnLnZhbHVlS2V5XTtcbiAgICBjb25zdCBuYW1lID0gc2VsZWN0aW9uLl9pdGVtW2ZpbmRlci5jb25maWcubGFiZWxLZXldO1xuXG4gICAgaWYgKHNlbGVjdGVkRmllbGQuY2xvc2VzdCgnLnJlbW9kYWwnKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBmaWVsZC5pbmRleChzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgc2VsZWN0ZWRGaWVsZC52YWwodmFsdWUpO1xuICAgICAgICAkKHBhcmVudExhYmVsW2luZGV4XSkudGV4dCh2YWx1ZSk7XG4gICAgICAgICQocGFyZW50TmFtZVtpbmRleF0pLnRleHQobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGQudmFsKHZhbHVlKTtcbiAgICAgICAgcGFyZW50TGFiZWwudGV4dCh2YWx1ZSk7XG4gICAgICAgIHBhcmVudE5hbWUudGV4dChuYW1lKTtcbiAgICAgICAgZmluZGVyLmNvbmZpZy5kZWZhdWx0UGF0aCA9IHZhbHVlO1xuXG4gICAgfVxuICAgIGNvbnN0IHJlbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwWyQoYFtkYXRhLXJlbW9kYWwtaWQ9XCIke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfVwiXWApLmRhdGEoJ3JlbW9kYWwnKV07XG4gICAgcmVtb2RhbC5jbG9zZSgpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIkZpbmRlciIsImNvbmZpZyIsImdyYXZDb25maWciLCJYSFJVVUlEIiwiSW5zdGFuY2VzIiwiUGFyZW50cyIsImNvbnRhaW5lciIsImZpZWxkIiwiZGF0YSIsImZpZWxkTmFtZSIsImF0dHIiLCJwYXJlbnRMYWJlbCIsInBhcmVudE5hbWUiLCJkYXRhTG9hZCIsImZpbmRlciIsInBhcmVudCIsImNhbGxiYWNrIiwiY2FsbCIsImxhYmVsS2V5IiwiZGVmYXVsdFBhdGgiLCJ2YWwiLCJjcmVhdGVJdGVtQ29udGVudCIsIml0ZW0iLCIkZW1pdHRlciIsIm9uIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJ0eXBlIiwiVVVJRCIsInN0YXJ0TG9hZGVyIiwiYWpheCIsInVybCIsImN1cnJlbnRfdXJsIiwibWV0aG9kIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0RXh0cmFGb3JtRGF0YSIsInJvdXRlIiwiYjY0X2VuY29kZV91bmljb2RlIiwidmFsdWUiLCJhY3Rpb24iLCJhZG1pbl9ub25jZSIsInN1Y2Nlc3MiLCJyZXNwb25zZSIsInN0b3BMb2FkZXIiLCJzdGF0dXMiLCJlbWl0IiwiY3JlYXRlRXJyb3JDb2x1bW4iLCJtZXNzYWdlIiwibG9hZGluZ0luZGljYXRvciIsImNyZWF0ZUxvYWRpbmdDb2x1bW4iLCJyZW1vdmUiLCJmcmFnIiwiZG9jdW1lbnQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwibGFiZWwiLCJpbmZvQ29udGFpbmVyIiwiaWNvblByZXBlbmQiLCJpY29uQXBwZW5kIiwiYmFkZ2UiLCJwcmVwZW5kQ2xhc3NlcyIsImFwcGVuZENsYXNzZXMiLCJjaGlsZHJlbiIsInB1c2giLCJhZGRDbGFzcyIsImpvaW4iLCJ0ZXh0IiwicHJlcGVuZCIsImFwcGVuZFRvIiwic2l6ZSIsImNvdW50IiwiZXJyb3IiLCJzdHIiLCJidG9hIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsInRvU29saWRCeXRlcyIsIm1hdGNoIiwicDEiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJiNjRfZGVjb2RlX3VuaWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJhdG9iIiwic3BsaXQiLCJtYXAiLCJjIiwiY2hhckNvZGVBdCIsInRvU3RyaW5nIiwic2xpY2UiLCJmb3JtIiwiY2xvc2VzdCIsImxlbmd0aCIsInVuaXF1ZV9pZCIsImZpbmQiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZpcnN0IiwibW9kYWwiLCJsb2FkZXIiLCJjb250ZW50IiwiY3NzIiwiaHRtbCIsImluaXRpYWwiLCJyZWxvYWQiLCJwYXJlbnRzIiwic2VsZWN0ZWRGaWVsZCIsInNlbGVjdGlvbiIsImZpbmRMYXN0QWN0aXZlIiwiX2l0ZW0iLCJ2YWx1ZUtleSIsIm5hbWUiLCJpbmRleCIsInJlbW9kYWwiLCJsb29rdXAiLCJjbG9zZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/parents.js\n");
/***/ }),
/***/ "./app/forms/fields/permissions.js":
/*!*****************************************!*\
!*** ./app/forms/fields/permissions.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar radioSelector = '.permission-container.parent-section input[type=\"radio\"]';\n\nvar handleParent = function handleParent(event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var container = target.closest('.parent-section');\n var fieldset = container.next('fieldset');\n var radios = fieldset.find(\"input[type=\\\"radio\\\"][value=\\\"\".concat(value, \"\\\"]\"));\n\n if (container.data('isLocked') !== false) {\n container.data('isUpdating', true);\n radios.each(function (index, radio) {\n var ID = radio.id;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).siblings(\"[for=\\\"\".concat(ID, \"\\\"]\")).trigger('click');\n });\n container.data('isUpdating', false);\n }\n};\n\nvar boundHandleParent = handleParent.bind(handleParent);\nbody.on('click', '.permission-container.parent-section label', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.parent-section');\n container.data('isLocked', true);\n});\nbody.on('input', radioSelector, boundHandleParent);\nbody.on('input', '.permissions-container input[type=\"radio\"][data-parent-id]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var parent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[for=\\\"\".concat(target.data('parentId'), \"\\\"]\"));\n var container = target.closest('fieldset').prev('.permission-container.parent-section');\n\n if (container.data('isUpdating') === true) {\n return true;\n }\n\n body.off('input', radioSelector, boundHandleParent);\n container.data('isLocked', false);\n parent.trigger('click');\n body.on('input', radioSelector, boundHandleParent);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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b3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9wZXJtaXNzaW9ucy5qcz9jODVmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG5jb25zdCByYWRpb1NlbGVjdG9yID0gJy5wZXJtaXNzaW9uLWNvbnRhaW5lci5wYXJlbnQtc2VjdGlvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0nO1xuXG5jb25zdCBoYW5kbGVQYXJlbnQgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHZhbHVlID0gdGFyZ2V0LnZhbCgpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCcucGFyZW50LXNlY3Rpb24nKTtcbiAgICBjb25zdCBmaWVsZHNldCA9IGNvbnRhaW5lci5uZXh0KCdmaWVsZHNldCcpO1xuICAgIGNvbnN0IHJhZGlvcyA9IGZpZWxkc2V0LmZpbmQoYGlucHV0W3R5cGU9XCJyYWRpb1wiXVt2YWx1ZT1cIiR7dmFsdWV9XCJdYCk7XG5cbiAgICBpZiAoY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJykgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnRhaW5lci5kYXRhKCdpc1VwZGF0aW5nJywgdHJ1ZSk7XG4gICAgICAgIHJhZGlvcy5lYWNoKChpbmRleCwgcmFkaW8pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IElEID0gcmFkaW8uaWQ7XG4gICAgICAgICAgICAkKHJhZGlvKS5zaWJsaW5ncyhgW2Zvcj1cIiR7SUR9XCJdYCkudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRhaW5lci5kYXRhKCdpc1VwZGF0aW5nJywgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IGJvdW5kSGFuZGxlUGFyZW50ID0gaGFuZGxlUGFyZW50LmJpbmQoaGFuZGxlUGFyZW50KTtcblxuYm9keS5vbignY2xpY2snLCAnLnBlcm1pc3Npb24tY29udGFpbmVyLnBhcmVudC1zZWN0aW9uIGxhYmVsJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLnBhcmVudC1zZWN0aW9uJyk7XG4gICAgY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJywgdHJ1ZSk7XG59KTtcblxuYm9keS5vbignaW5wdXQnLCByYWRpb1NlbGVjdG9yLCBib3VuZEhhbmRsZVBhcmVudCk7XG5cbmJvZHkub24oJ2lucHV0JywgJy5wZXJtaXNzaW9ucy1jb250YWluZXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdW2RhdGEtcGFyZW50LWlkXScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgcGFyZW50ID0gJChgW2Zvcj1cIiR7dGFyZ2V0LmRhdGEoJ3BhcmVudElkJyl9XCJdYCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJ2ZpZWxkc2V0JykucHJldignLnBlcm1pc3Npb24tY29udGFpbmVyLnBhcmVudC1zZWN0aW9uJyk7XG5cbiAgICBpZiAoY29udGFpbmVyLmRhdGEoJ2lzVXBkYXRpbmcnKSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBib2R5Lm9mZignaW5wdXQnLCByYWRpb1NlbGVjdG9yLCBib3VuZEhhbmRsZVBhcmVudCk7XG4gICAgY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJywgZmFsc2UpO1xuICAgIHBhcmVudC50cmlnZ2VyKCdjbGljaycpO1xuICAgIGJvZHkub24oJ2lucHV0JywgcmFkaW9TZWxlY3RvciwgYm91bmRIYW5kbGVQYXJlbnQpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsImJvZHkiLCJyYWRpb1NlbGVjdG9yIiwiaGFuZGxlUGFyZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidmFsdWUiLCJ2YWwiLCJjb250YWluZXIiLCJjbG9zZXN0IiwiZmllbGRzZXQiLCJuZXh0IiwicmFkaW9zIiwiZmluZCIsImRhdGEiLCJlYWNoIiwiaW5kZXgiLCJyYWRpbyIsIklEIiwiaWQiLCJzaWJsaW5ncyIsInRyaWdnZXIiLCJib3VuZEhhbmRsZVBhcmVudCIsImJpbmQiLCJvbiIsInBhcmVudCIsInByZXYiLCJvZmYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/permissions.js\n");
/***/ }),
/***/ "./app/forms/fields/range.js":
/*!***********************************!*\
!*** ./app/forms/fields/range.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[type=\"range\"].rangefield, [type=\"number\"].rangefield', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var type = target.attr('type').toLowerCase();\n var sibling = type === 'range' ? 'number' : 'range';\n var feedback = target.siblings(\"[type=\\\"\".concat(sibling, \"\\\"].rangefield\"));\n feedback.val(target.val());\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3JhbmdlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3Qix1REFBeEIsRUFBaUYsVUFBQ0MsS0FBRCxFQUFXO0FBQ3hGLE1BQU1DLE1BQU0sR0FBR0osNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxhQUFQLENBQWhCO0FBQ0EsTUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLElBQVAsQ0FBWSxNQUFaLEVBQW9CQyxXQUFwQixFQUFiO0FBQ0EsTUFBTUMsT0FBTyxHQUFHSCxJQUFJLEtBQUssT0FBVCxHQUFtQixRQUFuQixHQUE4QixPQUE5QztBQUNBLE1BQU1JLFFBQVEsR0FBR04sTUFBTSxDQUFDTyxRQUFQLG1CQUEwQkYsT0FBMUIsb0JBQWpCO0FBRUFDLEVBQUFBLFFBQVEsQ0FBQ0UsR0FBVCxDQUFhUixNQUFNLENBQUNRLEdBQVAsRUFBYjtBQUNILENBUEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9yYW5nZS5qcz9mOWQ3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdpbnB1dCcsICdbdHlwZT1cInJhbmdlXCJdLnJhbmdlZmllbGQsIFt0eXBlPVwibnVtYmVyXCJdLnJhbmdlZmllbGQnLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHR5cGUgPSB0YXJnZXQuYXR0cigndHlwZScpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2libGluZyA9IHR5cGUgPT09ICdyYW5nZScgPyAnbnVtYmVyJyA6ICdyYW5nZSc7XG4gICAgY29uc3QgZmVlZGJhY2sgPSB0YXJnZXQuc2libGluZ3MoYFt0eXBlPVwiJHtzaWJsaW5nfVwiXS5yYW5nZWZpZWxkYCk7XG5cbiAgICBmZWVkYmFjay52YWwodGFyZ2V0LnZhbCgpKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidHlwZSIsImF0dHIiLCJ0b0xvd2VyQ2FzZSIsInNpYmxpbmciLCJmZWVkYmFjayIsInNpYmxpbmdzIiwidmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/range.js\n");
/***/ }),
/***/ "./app/forms/fields/selectize.js":
/*!***************************************!*\
!*** ./app/forms/fields/selectize.js ***!
\***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectizeField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_selectize_required_fix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/selectize-required-fix */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_selectize_option_click__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/selectize-option-click */ \"./app/utils/selectize-option-click.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar PagesRoute = {\n option: function option(item, escape) {\n var label = escape(item.text).split(' ');\n var arrows = label.shift();\n var slug = label.shift();\n return \"<div class=\\\"selectize-route-option\\\">\\n <span class=\\\"text-grey\\\">\".concat(arrows, \"</span>\\n <span>\\n <span class=\\\"text-update\\\">\").concat(slug.replace('(', '/').replace(')', ''), \"</span>\\n <span>\").concat(label.join(' '), \"</span>\\n </span>\\n </div>\");\n }\n};\n\nvar SelectizeField = /*#__PURE__*/function () {\n function SelectizeField() {\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, SelectizeField);\n\n this.options = Object.assign({}, options);\n this.elements = [];\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-selectize]').each(function (index, element) {\n return _this.add(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(SelectizeField, [{\n key: \"add\",\n value: function add(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n if (element.closest('template').length) {\n return false;\n }\n\n var tag = element.prop('tagName').toLowerCase();\n var isInput = tag === 'input' || tag === 'select';\n var data = (isInput ? element.closest('[data-grav-selectize]') : element).data('grav-selectize') || {};\n var field = isInput ? element : element.find('input, select');\n\n if (field.attr('name') === 'data[route]') {\n data = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n render: PagesRoute\n });\n }\n\n if (!field.length || field.get(0).selectize) {\n return;\n }\n\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default().merge(data.plugins ? data.plugins : [], ['required-fix']);\n field.selectize(jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n plugins: plugins\n }));\n this.elements.push(field.data('selectize'));\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('select.fancy, input.fancy, [data-grav-selectize]').filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).closest('template').length;\n });\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n return _this2.add(field);\n });\n }\n }]);\n\n return SelectizeField;\n}();\n\n\nvar Instance = new SelectizeField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUEsQ0FBUyxFQUFULEVBQWErQixJQUFiLEVBQW1CO0FBQUVRLFFBQUFBLE9BQU8sRUFBUEE7QUFBRixPQUFuQixDQUFoQjtBQUVBLFdBQUt0QixRQUFMLENBQWN3QixJQUFkLENBQW1CVCxLQUFLLENBQUNELElBQU4sQ0FBVyxXQUFYLENBQW5CO0FBQ0g7OztXQUVELHVCQUFjVyxLQUFkLEVBQXFCQztBQUFNO0FBQTNCLE1BQXFEO0FBQUE7O0FBQ2pELFVBQUlDLE1BQU0sR0FBRzVDLDZDQUFDLENBQUMyQyxNQUFELENBQUQsQ0FBVVYsSUFBVixDQUFlLGtEQUFmLEVBQW1FWSxNQUFuRSxDQUEwRSxVQUFDMUIsS0FBRCxFQUFRQyxPQUFSLEVBQW9CO0FBQ3ZHLGVBQU8sQ0FBQ3BCLDZDQUFDLENBQUNvQixPQUFELENBQUQsQ0FBV0ssT0FBWCxDQUFtQixVQUFuQixFQUErQkMsTUFBdkM7QUFDSCxPQUZZLENBQWI7O0FBSUEsVUFBSSxDQUFDa0IsTUFBTSxDQUFDbEIsTUFBWixFQUFvQjtBQUFFO0FBQVM7O0FBRS9Ca0IsTUFBQUEsTUFBTSxDQUFDMUIsSUFBUCxDQUFZLFVBQUNDLEtBQUQsRUFBUWEsS0FBUjtBQUFBLGVBQWtCLE1BQUksQ0FBQ1gsR0FBTCxDQUFTVyxLQUFULENBQWxCO0FBQUEsT0FBWjtBQUNIOzs7Ozs7O0FBR0UsSUFBSWMsUUFBUSxHQUFHLElBQUlqQyxjQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9zZWxlY3RpemUuanM/NzM1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0ICdzZWxlY3RpemUnO1xuaW1wb3J0ICcuLi8uLi91dGlscy9zZWxlY3RpemUtcmVxdWlyZWQtZml4JztcbmltcG9ydCAnLi4vLi4vdXRpbHMvc2VsZWN0aXplLW9wdGlvbi1jbGljayc7XG5cbmNvbnN0IFBhZ2VzUm91dGUgPSB7XG4gICAgb3B0aW9uOiBmdW5jdGlvbihpdGVtLCBlc2NhcGUpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBlc2NhcGUoaXRlbS50ZXh0KS5zcGxpdCgnICcpO1xuICAgICAgICBjb25zdCBhcnJvd3MgPSBsYWJlbC5zaGlmdCgpO1xuICAgICAgICBjb25zdCBzbHVnID0gbGFiZWwuc2hpZnQoKTtcblxuICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJzZWxlY3RpemUtcm91dGUtb3B0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JleVwiPiR7YXJyb3dzfTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cGRhdGVcIj4ke3NsdWcucmVwbGFjZSgnKCcsICcvJykucmVwbGFjZSgnKScsICcnKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+JHtsYWJlbC5qb2luKCcgJyl9PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5gO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlbGVjdGl6ZUZpZWxkIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBbXTtcblxuICAgICAgICAkKCdbZGF0YS1ncmF2LXNlbGVjdGl6ZV0nKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4gdGhpcy5hZGQoZWxlbWVudCkpO1xuICAgICAgICAkKCdib2R5Jykub24oJ211dGF0aW9uLl9ncmF2JywgdGhpcy5fb25BZGRlZE5vZGVzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIGFkZChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChlbGVtZW50LmNsb3Nlc3QoJ3RlbXBsYXRlJykubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdGFnID0gZWxlbWVudC5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgbGV0IGlzSW5wdXQgPSB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JztcblxuICAgICAgICBsZXQgZGF0YSA9IChpc0lucHV0ID8gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1ncmF2LXNlbGVjdGl6ZV0nKSA6IGVsZW1lbnQpLmRhdGEoJ2dyYXYtc2VsZWN0aXplJykgfHwge307XG4gICAgICAgIGxldCBmaWVsZCA9IChpc0lucHV0ID8gZWxlbWVudCA6IGVsZW1lbnQuZmluZCgnaW5wdXQsIHNlbGVjdCcpKTtcblxuICAgICAgICBpZiAoZmllbGQuYXR0cignbmFtZScpID09PSAnZGF0YVtyb3V0ZV0nKSB7XG4gICAgICAgICAgICBkYXRhID0gJC5leHRlbmQoe30sIGRhdGEsIHsgcmVuZGVyOiBQYWdlc1JvdXRlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmaWVsZC5sZW5ndGggfHwgZmllbGQuZ2V0KDApLnNlbGVjdGl6ZSkgeyByZXR1cm47IH1cbiAgICAgICAgY29uc3QgcGx1Z2lucyA9ICQubWVyZ2UoZGF0YS5wbHVnaW5zID8gZGF0YS5wbHVnaW5zIDogW10sIFsncmVxdWlyZWQtZml4J10pO1xuICAgICAgICBmaWVsZC5zZWxlY3RpemUoJC5leHRlbmQoe30sIGRhdGEsIHsgcGx1Z2lucyB9KSk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy5wdXNoKGZpZWxkLmRhdGEoJ3NlbGVjdGl6ZScpKTtcbiAgICB9XG5cbiAgICBfb25BZGRlZE5vZGVzKGV2ZW50LCB0YXJnZXQvKiAsIHJlY29yZCwgaW5zdGFuY2UgKi8pIHtcbiAgICAgICAgbGV0IGZpZWxkcyA9ICQodGFyZ2V0KS5maW5kKCdzZWxlY3QuZmFuY3ksIGlucHV0LmZhbmN5LCBbZGF0YS1ncmF2LXNlbGVjdGl6ZV0nKS5maWx0ZXIoKGluZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISQoZWxlbWVudCkuY2xvc2VzdCgndGVtcGxhdGUnKS5sZW5ndGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB0aGlzLmFkZChmaWVsZCkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBTZWxlY3RpemVGaWVsZCgpO1xuIl0sIm5hbWVzIjpbIiQiLCJQYWdlc1JvdXRlIiwib3B0aW9uIiwiaXRlbSIsImVzY2FwZSIsImxhYmVsIiwidGV4dCIsInNwbGl0IiwiYXJyb3dzIiwic2hpZnQiLCJzbHVnIiwicmVwbGFjZSIsImpvaW4iLCJTZWxlY3RpemVGaWVsZCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJlbGVtZW50cyIsImVhY2giLCJpbmRleCIsImVsZW1lbnQiLCJhZGQiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiY2xvc2VzdCIsImxlbmd0aCIsInRhZyIsInByb3AiLCJ0b0xvd2VyQ2FzZSIsImlzSW5wdXQiLCJkYXRhIiwiZmllbGQiLCJmaW5kIiwiYXR0ciIsImV4dGVuZCIsInJlbmRlciIsImdldCIsInNlbGVjdGl6ZSIsInBsdWdpbnMiLCJtZXJnZSIsInB1c2giLCJldmVudCIsInRhcmdldCIsImZpZWxkcyIsImZpbHRlciIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/selectize.js\n");
/***/ }),
/***/ "./app/forms/fields/selectunique.js":
/*!******************************************!*\
!*** ./app/forms/fields/selectunique.js ***!
\******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectUniqueField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/object/forIn */ \"./node_modules/mout/object/forIn.js\");\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n // import { config } from 'grav-config';\n\nvar Data = {};\n\nvar SelectUniqueField = /*#__PURE__*/function () {\n function SelectUniqueField(options) {\n var _this = this;\n\n _classCallCheck(this, SelectUniqueField);\n\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-select-observe]').each(function (index, element) {\n return _this.addSelect(element);\n }).last().trigger('change', {\n load: true\n });\n body.on('mutation._grav', this._onAddedNodes.bind(this));\n body.on('mutation_removed._grav', this._onRemovedNodes.bind(this));\n }\n\n _createClass(SelectUniqueField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target, record, instance) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-select-observe]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addSelect(field);\n }\n });\n }\n }, {\n key: \"_onRemovedNodes\",\n value: function _onRemovedNodes(event, data\n /* , instance */\n ) {\n var _this3 = this;\n\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.target);\n var holder = target.data('collectionHolder');\n\n if (!holder) {\n return false;\n }\n\n var node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.mutation.removedNodes);\n var value = node.find('[data-select-observe]').val();\n\n if (value) {\n Data[holder].state[value] = value;\n }\n\n target.find('[data-select-observe]').each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (field.val() !== value) {\n _this3.updateOptions(field);\n }\n });\n }\n }, {\n key: \"addSelect\",\n value: function addSelect(element) {\n var _this4 = this;\n\n this.items = this.items.add(element);\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n var options = element.closest('[data-select-unique]').data('selectUnique');\n\n if (!Data[holder]) {\n var data = {};\n\n if (Array.isArray(options)) {\n options.slice(0).map(function (item) {\n data[item] = item;\n });\n } else {\n data = Object.assign({}, options);\n }\n\n Data[holder] = {\n original: null,\n state: null\n };\n Data[holder].original = Object.assign({}, data);\n Data[holder].state = Object.assign({}, data);\n }\n\n this.updateOptions(element);\n element.data('originalValue', value);\n element.on('change', function (event, extras) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (target.data('dummyChange')) {\n target.data('dummyChange', false);\n return false;\n }\n\n _this4.refreshOptions(target, extras && extras.load ? null : element.data('originalValue'));\n\n element.data('originalValue', target.val());\n });\n }\n }, {\n key: \"updateOptions\",\n value: function updateOptions(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === value ? 'selected=\"selected\"' : '';\n\n if (element.get(0).selectize) {\n var selectize = element.data('selectize');\n selectize.removeOption(k);\n selectize.addOption({\n value: k,\n text: v\n });\n } else {\n element.append(\"<option value=\\\"\".concat(k, \"\\\" \").concat(selected, \">\").concat(v, \"</option>\"));\n }\n\n if (selected) {\n if (element.get(0).selectize) {\n var _selectize = element.data('selectize');\n\n _selectize.setValue(k);\n }\n\n delete Data[holder].state[value];\n }\n });\n }\n }, {\n key: \"refreshOptions\",\n value: function refreshOptions(element, originalValue) {\n var value = element.val();\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n delete Data[holder].state[value];\n\n if (originalValue && Data[holder].original[originalValue]) {\n Data[holder].state[originalValue] = Data[holder].original[originalValue];\n }\n\n this.items.each(function (index, select) {\n select = jquery__WEBPACK_IMPORTED_MODULE_0___default()(select);\n\n if (select[0] === element[0]) {\n return;\n }\n\n var selectedValue = select.val();\n select.data('dummyChange', true);\n\n if (select.get(0).selectize) {\n var selectize = select.data('selectize');\n\n if (selectize) {\n selectize.clearOptions();\n\n if (selectedValue) {\n selectize.addOption({\n value: selectedValue,\n text: Data[holder].original[selectedValue] || selectedValue\n });\n }\n\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n selectize.addOption({\n value: k,\n text: v\n });\n });\n selectize.setValue(selectedValue, true);\n }\n } else {\n select.empty();\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === selectedValue ? 'selected=\"selected\"' : '';\n select.append(\"<option value=\\\"\".concat(k, \"\\\" \").concat(selected, \">\").concat(v, \"</option>\"));\n });\n }\n\n select.data('dummyChange', false);\n });\n }\n }]);\n\n return SelectUniqueField;\n}();\n\n\nvar Instance = new SelectUniqueField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUV2RCxJQUFJLENBQUM0QixNQUFELENBQUosQ0FBYWdCLFFBQWIsQ0FBc0JnQixhQUF0QixLQUF3Q0E7QUFGOUIsZUFBcEI7QUFJSDs7QUFFRDdELFlBQUFBLHdEQUFLLENBQUNDLElBQUksQ0FBQzRCLE1BQUQsQ0FBSixDQUFhTSxLQUFkLEVBQXFCLFVBQUNjLENBQUQsRUFBSUMsQ0FBSixFQUFVO0FBQ2hDRyxjQUFBQSxTQUFTLENBQUNFLFNBQVYsQ0FBb0I7QUFBRXRCLGdCQUFBQSxLQUFLLEVBQUVpQixDQUFUO0FBQVlNLGdCQUFBQSxJQUFJLEVBQUVQO0FBQWxCLGVBQXBCO0FBQ0gsYUFGSSxDQUFMO0FBSUFJLFlBQUFBLFNBQVMsQ0FBQ0ssUUFBVixDQUFtQkcsYUFBbkIsRUFBa0MsSUFBbEM7QUFDSDtBQUNKLFNBbkJELE1BbUJPO0FBQ0hELFVBQUFBLE1BQU0sQ0FBQ0csS0FBUDtBQUNBL0QsVUFBQUEsd0RBQUssQ0FBQ0MsSUFBSSxDQUFDNEIsTUFBRCxDQUFKLENBQWFNLEtBQWQsRUFBcUIsVUFBQ2MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDaEMsZ0JBQU1DLFFBQVEsR0FBR0QsQ0FBQyxLQUFLVyxhQUFOLEdBQXNCLHFCQUF0QixHQUE4QyxFQUEvRDtBQUNBRCxZQUFBQSxNQUFNLENBQUNILE1BQVAsMkJBQWdDUCxDQUFoQyxnQkFBc0NDLFFBQXRDLGNBQWtERixDQUFsRDtBQUNILFdBSEksQ0FBTDtBQUlIOztBQUVEVyxRQUFBQSxNQUFNLENBQUNoQyxJQUFQLENBQVksYUFBWixFQUEyQixLQUEzQjtBQUNILE9BbkNEO0FBb0NIOzs7Ozs7O0FBR0UsSUFBSW9DLFFBQVEsR0FBRyxJQUFJOUQsaUJBQUosRUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL3NlbGVjdHVuaXF1ZS5qcz8yMDQ5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgZm9ySW4gZnJvbSAnbW91dC9vYmplY3QvZm9ySW4nO1xuLy8gaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5jb25zdCBEYXRhID0ge307XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3RVbmlxdWVGaWVsZCB7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgICQoJ1tkYXRhLXNlbGVjdC1vYnNlcnZlXScpLmVhY2goKGluZGV4LCBlbGVtZW50KSA9PiB0aGlzLmFkZFNlbGVjdChlbGVtZW50KSkubGFzdCgpLnRyaWdnZXIoJ2NoYW5nZScsIHsgbG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgYm9keS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgICAgIGJvZHkub24oJ211dGF0aW9uX3JlbW92ZWQuX2dyYXYnLCB0aGlzLl9vblJlbW92ZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBfb25BZGRlZE5vZGVzKGV2ZW50LCB0YXJnZXQsIHJlY29yZCwgaW5zdGFuY2UpIHtcbiAgICAgICAgbGV0IGZpZWxkcyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS1zZWxlY3Qtb2JzZXJ2ZV0nKTtcbiAgICAgICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoIX50aGlzLml0ZW1zLmluZGV4KGZpZWxkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX29uUmVtb3ZlZE5vZGVzKGV2ZW50LCBkYXRhLyogLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGRhdGEudGFyZ2V0KTtcbiAgICAgICAgY29uc3QgaG9sZGVyID0gdGFyZ2V0LmRhdGEoJ2NvbGxlY3Rpb25Ib2xkZXInKTtcbiAgICAgICAgaWYgKCFob2xkZXIpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9ICQoZGF0YS5tdXRhdGlvbi5yZW1vdmVkTm9kZXMpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG5vZGUuZmluZCgnW2RhdGEtc2VsZWN0LW9ic2VydmVdJykudmFsKCk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgRGF0YVtob2xkZXJdLnN0YXRlW3ZhbHVlXSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGFyZ2V0LmZpbmQoJ1tkYXRhLXNlbGVjdC1vYnNlcnZlXScpLmVhY2goKGluZGV4LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZmllbGQgPSAkKGZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKGZpZWxkLnZhbCgpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZFNlbGVjdChlbGVtZW50KSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmFkZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmF0dHIoJ3ZhbHVlJyk7XG4gICAgICAgIGNvbnN0IGhvbGRlciA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtY29sbGVjdGlvbi1ob2xkZXJdJykuZGF0YSgnY29sbGVjdGlvbkhvbGRlcicpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1zZWxlY3QtdW5pcXVlXScpLmRhdGEoJ3NlbGVjdFVuaXF1ZScpO1xuXG4gICAgICAgIGlmICghRGF0YVtob2xkZXJdKSB7XG4gICAgICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnNsaWNlKDApLm1hcCgoaXRlbSkgPT4geyBkYXRhW2l0ZW1dID0gaXRlbTsgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgRGF0YVtob2xkZXJdID0geyBvcmlnaW5hbDogbnVsbCwgc3RhdGU6IG51bGwgfTtcbiAgICAgICAgICAgIERhdGFbaG9sZGVyXS5vcmlnaW5hbCA9IE9iamVjdC5hc3NpZ24oe30sIGRhdGEpO1xuICAgICAgICAgICAgRGF0YVtob2xkZXJdLnN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoZWxlbWVudCk7XG5cbiAgICAgICAgZWxlbWVudC5kYXRhKCdvcmlnaW5hbFZhbHVlJywgdmFsdWUpO1xuICAgICAgICBlbGVtZW50Lm9uKCdjaGFuZ2UnLCAoZXZlbnQsIGV4dHJhcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuZGF0YSgnZHVtbXlDaGFuZ2UnKSkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5kYXRhKCdkdW1teUNoYW5nZScsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVmcmVzaE9wdGlvbnModGFyZ2V0LCBleHRyYXMgJiYgZXh0cmFzLmxvYWQgPyBudWxsIDogZWxlbWVudC5kYXRhKCdvcmlnaW5hbFZhbHVlJykpO1xuICAgICAgICAgICAgZWxlbWVudC5kYXRhKCdvcmlnaW5hbFZhbHVlJywgdGFyZ2V0LnZhbCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlT3B0aW9ucyhlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQuYXR0cigndmFsdWUnKTtcbiAgICAgICAgY29uc3QgaG9sZGVyID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1jb2xsZWN0aW9uLWhvbGRlcl0nKS5kYXRhKCdjb2xsZWN0aW9uSG9sZGVyJyk7XG5cbiAgICAgICAgZm9ySW4oRGF0YVtob2xkZXJdLnN0YXRlLCAodiwgaykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBrID09PSB2YWx1ZSA/ICdzZWxlY3RlZD1cInNlbGVjdGVkXCInIDogJyc7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50LmdldCgwKS5zZWxlY3RpemUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RpemUgPSBlbGVtZW50LmRhdGEoJ3NlbGVjdGl6ZScpO1xuICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5yZW1vdmVPcHRpb24oayk7XG4gICAgICAgICAgICAgICAgc2VsZWN0aXplLmFkZE9wdGlvbih7IHZhbHVlOiBrLCB0ZXh0OiB2IH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZChgPG9wdGlvbiB2YWx1ZT1cIiR7a31cIiAke3NlbGVjdGVkfT4ke3Z9PC9vcHRpb24+YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmdldCgwKS5zZWxlY3RpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aXplID0gZWxlbWVudC5kYXRhKCdzZWxlY3RpemUnKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aXplLnNldFZhbHVlKGspO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgRGF0YVtob2xkZXJdLnN0YXRlW3ZhbHVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVmcmVzaE9wdGlvbnMoZWxlbWVudCwgb3JpZ2luYWxWYWx1ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGhvbGRlciA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtY29sbGVjdGlvbi1ob2xkZXJdJykuZGF0YSgnY29sbGVjdGlvbkhvbGRlcicpO1xuICAgICAgICBkZWxldGUgRGF0YVtob2xkZXJdLnN0YXRlW3ZhbHVlXTtcblxuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZSAmJiBEYXRhW2hvbGRlcl0ub3JpZ2luYWxbb3JpZ2luYWxWYWx1ZV0pIHtcbiAgICAgICAgICAgIERhdGFbaG9sZGVyXS5zdGF0ZVtvcmlnaW5hbFZhbHVlXSA9IERhdGFbaG9sZGVyXS5vcmlnaW5hbFtvcmlnaW5hbFZhbHVlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXRlbXMuZWFjaCgoaW5kZXgsIHNlbGVjdCkgPT4ge1xuICAgICAgICAgICAgc2VsZWN0ID0gJChzZWxlY3QpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdFswXSA9PT0gZWxlbWVudFswXSkgeyByZXR1cm47IH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHNlbGVjdC52YWwoKTtcbiAgICAgICAgICAgIHNlbGVjdC5kYXRhKCdkdW1teUNoYW5nZScsIHRydWUpO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0LmdldCgwKS5zZWxlY3RpemUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RpemUgPSBzZWxlY3QuZGF0YSgnc2VsZWN0aXplJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5jbGVhck9wdGlvbnMoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aXplLmFkZE9wdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogRGF0YVtob2xkZXJdLm9yaWdpbmFsW3NlbGVjdGVkVmFsdWVdIHx8IHNlbGVjdGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZm9ySW4oRGF0YVtob2xkZXJdLnN0YXRlLCAodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aXplLmFkZE9wdGlvbih7IHZhbHVlOiBrLCB0ZXh0OiB2IH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RpemUuc2V0VmFsdWUoc2VsZWN0ZWRWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZWxlY3QuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBmb3JJbihEYXRhW2hvbGRlcl0uc3RhdGUsICh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gayA9PT0gc2VsZWN0ZWRWYWx1ZSA/ICdzZWxlY3RlZD1cInNlbGVjdGVkXCInIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdC5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke2t9XCIgJHtzZWxlY3RlZH0+JHt2fTwvb3B0aW9uPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZWxlY3QuZGF0YSgnZHVtbXlDaGFuZ2UnLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBTZWxlY3RVbmlxdWVGaWVsZCgpO1xuIl0sIm5hbWVzIjpbIiQiLCJmb3JJbiIsIkRhdGEiLCJTZWxlY3RVbmlxdWVGaWVsZCIsIm9wdGlvbnMiLCJib2R5IiwiaXRlbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJkZWZhdWx0cyIsImVhY2giLCJpbmRleCIsImVsZW1lbnQiLCJhZGRTZWxlY3QiLCJsYXN0IiwidHJpZ2dlciIsImxvYWQiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiX29uUmVtb3ZlZE5vZGVzIiwiZXZlbnQiLCJ0YXJnZXQiLCJyZWNvcmQiLCJpbnN0YW5jZSIsImZpZWxkcyIsImZpbmQiLCJsZW5ndGgiLCJmaWVsZCIsImRhdGEiLCJob2xkZXIiLCJub2RlIiwibXV0YXRpb24iLCJyZW1vdmVkTm9kZXMiLCJ2YWx1ZSIsInZhbCIsInN0YXRlIiwidXBkYXRlT3B0aW9ucyIsImFkZCIsImF0dHIiLCJjbG9zZXN0IiwiQXJyYXkiLCJpc0FycmF5Iiwic2xpY2UiLCJtYXAiLCJpdGVtIiwib3JpZ2luYWwiLCJleHRyYXMiLCJjdXJyZW50VGFyZ2V0IiwicmVmcmVzaE9wdGlvbnMiLCJ2IiwiayIsInNlbGVjdGVkIiwiZ2V0Iiwic2VsZWN0aXplIiwicmVtb3ZlT3B0aW9uIiwiYWRkT3B0aW9uIiwidGV4dCIsImFwcGVuZCIsInNldFZhbHVlIiwib3JpZ2luYWxWYWx1ZSIsInNlbGVjdCIsInNlbGVjdGVkVmFsdWUiLCJjbGVhck9wdGlvbnMiLCJlbXB0eSIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/selectunique.js\n");
/***/ }),
/***/ "./app/forms/fields/text.js":
/*!**********************************!*\
!*** ./app/forms/fields/text.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.copy-to-clipboard').click(function (event) {\n var $tempElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<input>');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').append($tempElement);\n $tempElement.val(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).prev('input').val()).select();\n document.execCommand('Copy');\n $tempElement.remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-hint', 'Copied to clipboard!').addClass('hint--left');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3RleHQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0IsWUFBVztBQUN6QkYsRUFBQUEsNkNBQUMsQ0FBQyxvQkFBRCxDQUFELENBQXdCRyxLQUF4QixDQUE4QixVQUFTQyxLQUFULEVBQWdCO0FBQzFDLFFBQUlDLFlBQVksR0FBR0wsNkNBQUMsQ0FBQyxTQUFELENBQXBCO0FBQ0FBLElBQUFBLDZDQUFDLENBQUMsTUFBRCxDQUFELENBQVVNLE1BQVYsQ0FBaUJELFlBQWpCO0FBQ0FBLElBQUFBLFlBQVksQ0FBQ0UsR0FBYixDQUFpQlAsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUVEsSUFBUixDQUFhLE9BQWIsRUFBc0JELEdBQXRCLEVBQWpCLEVBQThDRSxNQUE5QztBQUNBUixJQUFBQSxRQUFRLENBQUNTLFdBQVQsQ0FBcUIsTUFBckI7QUFDQUwsSUFBQUEsWUFBWSxDQUFDTSxNQUFiO0FBRUFYLElBQUFBLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVFZLElBQVIsQ0FBYSxXQUFiLEVBQTBCLHNCQUExQixFQUFrREMsUUFBbEQsQ0FBMkQsWUFBM0Q7QUFDSCxHQVJEO0FBU0gsQ0FWRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvZm9ybXMvZmllbGRzL3RleHQuanM/OGUxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAkKCcuY29weS10by1jbGlwYm9hcmQnKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgJHRlbXBFbGVtZW50ID0gJCgnPGlucHV0PicpO1xuICAgICAgICAkKCdib2R5JykuYXBwZW5kKCR0ZW1wRWxlbWVudCk7XG4gICAgICAgICR0ZW1wRWxlbWVudC52YWwoJCh0aGlzKS5wcmV2KCdpbnB1dCcpLnZhbCgpKS5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTtcbiAgICAgICAgJHRlbXBFbGVtZW50LnJlbW92ZSgpO1xuXG4gICAgICAgICQodGhpcykuYXR0cignZGF0YS1oaW50JywgJ0NvcGllZCB0byBjbGlwYm9hcmQhJykuYWRkQ2xhc3MoJ2hpbnQtLWxlZnQnKTtcbiAgICB9KTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsInJlYWR5IiwiY2xpY2siLCJldmVudCIsIiR0ZW1wRWxlbWVudCIsImFwcGVuZCIsInZhbCIsInByZXYiLCJzZWxlY3QiLCJleGVjQ29tbWFuZCIsInJlbW92ZSIsImF0dHIiLCJhZGRDbGFzcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/text.js\n");
/***/ }),
/***/ "./app/forms/form.js":
/*!***************************!*\
!*** ./app/forms/form.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Form),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n/* Dependencies for checking if changes happened since load on a form\nimport toastr from '../utils/toastr';\nimport { translations } from 'grav-config';\nimport { Instance as FormState } from './state';\n*/\n\nvar Form = /*#__PURE__*/function () {\n function Form(form) {\n var _this = this;\n\n _classCallCheck(this, Form);\n\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n\n if (!this.form.length || this.form.prop('tagName').toLowerCase() !== 'form') {\n return;\n }\n /* Option for not saving while nothing in a form has changed\n this.form.on('submit', (event) => {\n if (FormState.equals()) {\n event.preventDefault();\n toastr.info(translations.PLUGIN_ADMIN.NOTHING_TO_SAVE);\n }\n }); */\n\n\n this._attachShortcuts();\n\n this._attachToggleables();\n\n this._attachDisabledFields();\n\n this._submitUncheckedFields();\n\n this.observer = new MutationObserver(this.addedNodes);\n this.form.each(function (index, form) {\n return _this.observer.observe(form, {\n subtree: true,\n childList: true\n });\n });\n }\n\n _createClass(Form, [{\n key: \"_attachShortcuts\",\n value: function _attachShortcuts() {\n // CTRL + S / CMD + S - shortcut for [Save] when available\n var saveTask = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#titlebar [name=\"task\"][value=\"save\"][form=\"blueprints\"]');\n\n if (saveTask.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('keydown', function (event) {\n var key = String.fromCharCode(event.which).toLowerCase();\n\n if (!event.shiftKey && (event.ctrlKey && !event.altKey || event.metaKey) && key === 's') {\n event.preventDefault();\n saveTask.click();\n }\n });\n }\n }\n }, {\n key: \"_attachToggleables\",\n value: function _attachToggleables() {\n var query = '[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]';\n this.form.on('change', query, function (event) {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var enabled = toggle.is(':checked');\n var parent = toggle.closest('.form-field');\n var label = parent.find('label.toggleable');\n var fields = parent.find('.form-data');\n var inputs = fields.find('input, select, textarea, button');\n label.add(fields).css('opacity', enabled ? '' : 0.7);\n inputs.map(function (index, input) {\n var isSelectize = input.selectize;\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n\n if (isSelectize) {\n isSelectize[enabled ? 'enable' : 'disable']();\n } else {\n input.prop('disabled', !enabled);\n }\n });\n });\n this.form.find(query).trigger('change');\n }\n }, {\n key: \"_attachDisabledFields\",\n value: function _attachDisabledFields() {\n var prefix = '.form-field-toggleable .form-data';\n var query = [];\n ['input', 'select', 'label[for]', 'textarea', '.selectize-control'].forEach(function (item) {\n query.push(\"\".concat(prefix, \" \").concat(item));\n });\n this.form.on('mousedown', query.join(', '), function (event) {\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var isFor = input.prop('for');\n var isSelectize = (input.hasClass('selectize-control') || input.parents('.selectize-control')).length;\n\n if (isFor) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(isFor, \"\\\"]\"));\n }\n\n if (isSelectize) {\n input = input.closest('.selectize-control').siblings('select[name]');\n }\n\n if (!input.prop('disabled')) {\n return true;\n }\n\n var toggle = input.closest('.form-field').find('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]');\n toggle.trigger('click');\n });\n }\n }, {\n key: \"_submitUncheckedFields\",\n value: function _submitUncheckedFields() {\n var submitted = false;\n this.form.each(function (index, form) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n form.on('submit', function () {\n // workaround for MS Edge, submitting multiple forms at the same time\n if (submitted) {\n return false;\n }\n\n var formId = form.attr('id');\n var unchecked = form.find('input[type=\"checkbox\"]:not(:checked):not(:disabled)');\n var submit = form.find('[type=\"submit\"]').add(\"[form=\\\"\".concat(formId, \"\\\"][type=\\\"submit\\\"]\"));\n\n if (!unchecked.length) {\n return true;\n }\n\n submit.addClass('pointer-events-disabled');\n unchecked.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var name = element.prop('name');\n var fake = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<input type=\\\"hidden\\\" name=\\\"\".concat(name, \"\\\" value=\\\"0\\\" />\"));\n form.append(fake);\n });\n submitted = true;\n return true;\n });\n });\n }\n }, {\n key: \"addedNodes\",\n value: function addedNodes(mutations) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type !== 'childList') {\n return;\n }\n\n if (mutation.addedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation._grav', mutation.target, mutation, _this2);\n }\n\n if (mutation.removedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation_removed._grav', {\n target: mutation.target,\n mutation: mutation\n }, _this2);\n }\n });\n }\n }]);\n\n return Form;\n}();\n\n\nvar Instance = new Form('form#blueprints');//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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c291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9mb3JtLmpzPzk0NjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuLyogRGVwZW5kZW5jaWVzIGZvciBjaGVja2luZyBpZiBjaGFuZ2VzIGhhcHBlbmVkIHNpbmNlIGxvYWQgb24gYSBmb3JtXG5pbXBvcnQgdG9hc3RyIGZyb20gJy4uL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgeyB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBGb3JtU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbiovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm0ge1xuICAgIGNvbnN0cnVjdG9yKGZvcm0pIHtcbiAgICAgICAgdGhpcy5mb3JtID0gJChmb3JtKTtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0ubGVuZ3RoIHx8IHRoaXMuZm9ybS5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKSAhPT0gJ2Zvcm0nKSB7IHJldHVybjsgfVxuXG4gICAgICAgIC8qIE9wdGlvbiBmb3Igbm90IHNhdmluZyB3aGlsZSBub3RoaW5nIGluIGEgZm9ybSBoYXMgY2hhbmdlZFxuXG4gICAgICAgIHRoaXMuZm9ybS5vbignc3VibWl0JywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoRm9ybVN0YXRlLmVxdWFscygpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0b2FzdHIuaW5mbyh0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PVEhJTkdfVE9fU0FWRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pOyAqL1xuXG4gICAgICAgIHRoaXMuX2F0dGFjaFNob3J0Y3V0cygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hUb2dnbGVhYmxlcygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hEaXNhYmxlZEZpZWxkcygpO1xuICAgICAgICB0aGlzLl9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5hZGRlZE5vZGVzKTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB0aGlzLm9ic2VydmVyLm9ic2VydmUoZm9ybSwgeyBzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIF9hdHRhY2hTaG9ydGN1dHMoKSB7XG4gICAgICAgIC8vIENUUkwgKyBTIC8gQ01EICsgUyAtIHNob3J0Y3V0IGZvciBbU2F2ZV0gd2hlbiBhdmFpbGFibGVcbiAgICAgICAgbGV0IHNhdmVUYXNrID0gJCgnI3RpdGxlYmFyIFtuYW1lPVwidGFza1wiXVt2YWx1ZT1cInNhdmVcIl1bZm9ybT1cImJsdWVwcmludHNcIl0nKTtcblxuICAgICAgICBpZiAoc2F2ZVRhc2subGVuZ3RoKSB7XG4gICAgICAgICAgICAkKGdsb2JhbCkub24oJ2tleWRvd24nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQud2hpY2gpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSAmJiAoKGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmFsdEtleSkgfHwgZXZlbnQubWV0YUtleSkgJiYga2V5ID09PSAncycpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2F2ZVRhc2suY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9hdHRhY2hUb2dnbGVhYmxlcygpIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSc7XG5cbiAgICAgICAgdGhpcy5mb3JtLm9uKCdjaGFuZ2UnLCBxdWVyeSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgdG9nZ2xlID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgbGV0IGVuYWJsZWQgPSB0b2dnbGUuaXMoJzpjaGVja2VkJyk7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gdG9nZ2xlLmNsb3Nlc3QoJy5mb3JtLWZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBwYXJlbnQuZmluZCgnbGFiZWwudG9nZ2xlYWJsZScpO1xuICAgICAgICAgICAgbGV0IGZpZWxkcyA9IHBhcmVudC5maW5kKCcuZm9ybS1kYXRhJyk7XG4gICAgICAgICAgICBsZXQgaW5wdXRzID0gZmllbGRzLmZpbmQoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24nKTtcblxuICAgICAgICAgICAgbGFiZWwuYWRkKGZpZWxkcykuY3NzKCdvcGFjaXR5JywgZW5hYmxlZCA/ICcnIDogMC43KTtcbiAgICAgICAgICAgIGlucHV0cy5tYXAoKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IGlucHV0LnNlbGVjdGl6ZTtcbiAgICAgICAgICAgICAgICBpbnB1dCA9ICQoaW5wdXQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzU2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aXplW2VuYWJsZWQgPyAnZW5hYmxlJyA6ICdkaXNhYmxlJ10oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmZpbmQocXVlcnkpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgIH1cblxuICAgIF9hdHRhY2hEaXNhYmxlZEZpZWxkcygpIHtcbiAgICAgICAgbGV0IHByZWZpeCA9ICcuZm9ybS1maWVsZC10b2dnbGVhYmxlIC5mb3JtLWRhdGEnO1xuICAgICAgICBsZXQgcXVlcnkgPSBbXTtcblxuICAgICAgICBbJ2lucHV0JywgJ3NlbGVjdCcsICdsYWJlbFtmb3JdJywgJ3RleHRhcmVhJywgJy5zZWxlY3RpemUtY29udHJvbCddLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHF1ZXJ5LnB1c2goYCR7cHJlZml4fSAke2l0ZW19YCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS5vbignbW91c2Vkb3duJywgcXVlcnkuam9pbignLCAnKSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBsZXQgaXNGb3IgPSBpbnB1dC5wcm9wKCdmb3InKTtcbiAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IChpbnB1dC5oYXNDbGFzcygnc2VsZWN0aXplLWNvbnRyb2wnKSB8fCBpbnB1dC5wYXJlbnRzKCcuc2VsZWN0aXplLWNvbnRyb2wnKSkubGVuZ3RoO1xuXG4gICAgICAgICAgICBpZiAoaXNGb3IpIHsgaW5wdXQgPSAkKGBbaWQ9XCIke2lzRm9yfVwiXWApOyB9XG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RpemUpIHsgaW5wdXQgPSBpbnB1dC5jbG9zZXN0KCcuc2VsZWN0aXplLWNvbnRyb2wnKS5zaWJsaW5ncygnc2VsZWN0W25hbWVdJyk7IH1cblxuICAgICAgICAgICAgaWYgKCFpbnB1dC5wcm9wKCdkaXNhYmxlZCcpKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICAgICAgICAgIGxldCB0b2dnbGUgPSBpbnB1dC5jbG9zZXN0KCcuZm9ybS1maWVsZCcpLmZpbmQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXScpO1xuICAgICAgICAgICAgdG9nZ2xlLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKSB7XG4gICAgICAgIGxldCBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB7XG4gICAgICAgICAgICBmb3JtID0gJChmb3JtKTtcbiAgICAgICAgICAgIGZvcm0ub24oJ3N1Ym1pdCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBNUyBFZGdlLCBzdWJtaXR0aW5nIG11bHRpcGxlIGZvcm1zIGF0IHRoZSBzYW1lIHRpbWVcbiAgICAgICAgICAgICAgICBpZiAoc3VibWl0dGVkKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1JZCA9IGZvcm0uYXR0cignaWQnKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5jaGVja2VkID0gZm9ybS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKTpub3QoOmRpc2FibGVkKScpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJtaXQgPSBmb3JtLmZpbmQoJ1t0eXBlPVwic3VibWl0XCJdJykuYWRkKGBbZm9ybT1cIiR7Zm9ybUlkfVwiXVt0eXBlPVwic3VibWl0XCJdYCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXVuY2hlY2tlZC5sZW5ndGgpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgICAgIHN1Ym1pdC5hZGRDbGFzcygncG9pbnRlci1ldmVudHMtZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB1bmNoZWNrZWQuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gZWxlbWVudC5wcm9wKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmYWtlID0gJChgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiJHtuYW1lfVwiIHZhbHVlPVwiMFwiIC8+YCk7XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kKGZha2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkZWROb2RlcyhtdXRhdGlvbnMpIHtcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2NoaWxkTGlzdCcpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5hZGRlZE5vZGVzKSB7XG4gICAgICAgICAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ211dGF0aW9uLl9ncmF2JywgbXV0YXRpb24udGFyZ2V0LCBtdXRhdGlvbiwgdGhpcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMpIHtcbiAgICAgICAgICAgICAgICAkKCdib2R5JykudHJpZ2dlcignbXV0YXRpb25fcmVtb3ZlZC5fZ3JhdicsIHsgdGFyZ2V0OiBtdXRhdGlvbi50YXJnZXQsIG11dGF0aW9uIH0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRm9ybSgnZm9ybSNibHVlcHJpbnRzJyk7XG4iXSwibmFtZXMiOlsiJCIsIkZvcm0iLCJmb3JtIiwibGVuZ3RoIiwicHJvcCIsInRvTG93ZXJDYXNlIiwiX2F0dGFjaFNob3J0Y3V0cyIsIl9hdHRhY2hUb2dnbGVhYmxlcyIsIl9hdHRhY2hEaXNhYmxlZEZpZWxkcyIsIl9zdWJtaXRVbmNoZWNrZWRGaWVsZHMiLCJvYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJhZGRlZE5vZGVzIiwiZWFjaCIsImluZGV4Iiwib2JzZXJ2ZSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJzYXZlVGFzayIsImdsb2JhbCIsIm9uIiwiZXZlbnQiLCJrZXkiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJ3aGljaCIsInNoaWZ0S2V5IiwiY3RybEtleSIsImFsdEtleSIsIm1ldGFLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImNsaWNrIiwicXVlcnkiLCJ0b2dnbGUiLCJ0YXJnZXQiLCJlbmFibGVkIiwiaXMiLCJwYXJlbnQiLCJjbG9zZXN0IiwibGFiZWwiLCJmaW5kIiwiZmllbGRzIiwiaW5wdXRzIiwiYWRkIiwiY3NzIiwibWFwIiwiaW5wdXQiLCJpc1NlbGVjdGl6ZSIsInNlbGVjdGl6ZSIsInRyaWdnZXIiLCJwcmVmaXgiLCJmb3JFYWNoIiwiaXRlbSIsInB1c2giLCJqb2luIiwiaXNGb3IiLCJoYXNDbGFzcyIsInBhcmVudHMiLCJzaWJsaW5ncyIsInN1Ym1pdHRlZCIsImZvcm1JZCIsImF0dHIiLCJ1bmNoZWNrZWQiLCJzdWJtaXQiLCJhZGRDbGFzcyIsImVsZW1lbnQiLCJuYW1lIiwiZmFrZSIsImFwcGVuZCIsIm11dGF0aW9ucyIsIm11dGF0aW9uIiwidHlwZSIsInJlbW92ZWROb2RlcyIsIkluc3RhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/form.js\n");
/***/ }),
/***/ "./app/forms/index.js":
/*!****************************!*\
!*** ./app/forms/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ \"./app/forms/state.js\");\n/* harmony import */ var _form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form */ \"./app/forms/form.js\");\n/* harmony import */ var _fields__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fields */ \"./app/forms/fields/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Form: {\n Form: _form__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Instance: _form__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n Fields: _fields__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n FormState: {\n FormState: _state__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _state__WEBPACK_IMPORTED_MODULE_0__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFFQTtBQUVBLGlFQUFlO0FBQ1hHLEVBQUFBLElBQUksRUFBRTtBQUNGQSxJQUFBQSxJQUFJLEVBQUpBLDZDQURFO0FBRUZGLElBQUFBLFFBQVEsRUFBRUcsMkNBQVlBO0FBRnBCLEdBREs7QUFLWEMsRUFBQUEsTUFBTSxFQUFOQSwrQ0FMVztBQU1YTCxFQUFBQSxTQUFTLEVBQUU7QUFDUEEsSUFBQUEsU0FBUyxFQUFUQSw4Q0FETztBQUVQQyxJQUFBQSxRQUFRLEVBQUVDLDRDQUFpQkE7QUFGcEI7QUFOQSxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9mb3Jtcy9pbmRleC5qcz85MjczIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGb3JtU3RhdGUsIHsgSW5zdGFuY2UgYXMgRm9ybVN0YXRlSW5zdGFuY2UgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCBGb3JtLCB7IEluc3RhbmNlIGFzIEZvcm1JbnN0YW5jZSB9IGZyb20gJy4vZm9ybSc7XG5cbmltcG9ydCBGaWVsZHMgZnJvbSAnLi9maWVsZHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgRm9ybToge1xuICAgICAgICBGb3JtLFxuICAgICAgICBJbnN0YW5jZTogRm9ybUluc3RhbmNlXG4gICAgfSxcbiAgICBGaWVsZHMsXG4gICAgRm9ybVN0YXRlOiB7XG4gICAgICAgIEZvcm1TdGF0ZSxcbiAgICAgICAgSW5zdGFuY2U6IEZvcm1TdGF0ZUluc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyJGb3JtU3RhdGUiLCJJbnN0YW5jZSIsIkZvcm1TdGF0ZUluc3RhbmNlIiwiRm9ybSIsIkZvcm1JbnN0YW5jZSIsIkZpZWxkcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/index.js\n");
/***/ }),
/***/ "./app/forms/state.js":
/*!****************************!*\
!*** ./app/forms/state.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FormState),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance),\n/* harmony export */ \"DOMBehaviors\": () => (/* binding */ DOMBehaviors)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! immutable */ \"./node_modules/immutable/dist/immutable.js\");\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(immutable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! immutablediff */ \"./node_modules/immutablediff/src/diff.js\");\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(immutablediff__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar FormLoadState = {};\nvar DOMBehaviors = {\n attach: function attach() {\n this.preventUnload();\n this.preventClickAway();\n },\n preventUnload: function preventUnload() {\n var selector = '[name=\"task\"][value^=\"save\"], [data-delete-action], [data-flex-safe-action]';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events').beforeunload || []).filter(function (event) {\n return event.namespace === '_grav';\n }).length) {\n return;\n } // Allow some elements to leave the page without native confirmation\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n }); // Catch browser uri change / refresh attempt and stop it if the form state is dirty\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav', function () {\n if (Instance.equals() === false) {\n return 'You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes.';\n }\n });\n },\n preventClickAway: function preventClickAway() {\n var selector = 'a[href]:not([href^=\"#\"]):not([target=\"_blank\"]):not([href^=\"javascript:\"])';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).get(0), 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).get(0), 'events').click || []).filter(function (event) {\n return event.namespace === '_grav';\n })) {\n return;\n } // Prevent clicking away if the form state is dirty\n // instead, display a confirmation before continuing\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n var isClean = Instance.equals();\n\n if (isClean === null || isClean) {\n return true;\n }\n\n event.preventDefault();\n var destination = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('href');\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"]');\n var lookup = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal.data('remodal')];\n var buttons = jquery__WEBPACK_IMPORTED_MODULE_0___default()('a.button', modal);\n\n var handler = function handler(event) {\n event.preventDefault();\n var action = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('leave-action');\n buttons.off('click', handler);\n lookup.close();\n\n if (action === 'continue') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n __webpack_require__.g.location.href = destination;\n }\n };\n\n buttons.on('click', handler);\n lookup.open();\n });\n }\n};\n\nvar FormState = /*#__PURE__*/function () {\n function FormState() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n ignore: [],\n form_id: 'blueprints'\n };\n\n _classCallCheck(this, FormState);\n\n this.options = options;\n this.refresh();\n\n if (!this.form || !this.fields.length) {\n return;\n }\n\n FormLoadState = this.collect();\n this.loadState = FormLoadState;\n DOMBehaviors.attach();\n }\n\n _createClass(FormState, [{\n key: \"refresh\",\n value: function refresh() {\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id)).filter(':noparents(.remodal)');\n this.fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id, \" *, [form=\\\"\").concat(this.options.form_id, \"\\\"]\")).filter(':input:not(.no-form)').filter(':noparents(.remodal)');\n return this;\n }\n }, {\n key: \"collect\",\n value: function collect() {\n var _this = this;\n\n if (!this.form || !this.fields.length) {\n return;\n }\n\n var values = {};\n this.refresh().fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n var name = field.prop('name');\n var type = field.prop('type');\n var tag = field.prop('tagName').toLowerCase();\n var value;\n\n if (name.startsWith('toggleable_') || name === 'data[lang]' || name === 'data[redirect]') {\n return;\n }\n\n switch (type) {\n case 'checkbox':\n value = field.is(':checked');\n break;\n\n case 'radio':\n if (!field.is(':checked')) {\n return;\n }\n\n value = field.val();\n break;\n\n default:\n value = field.val();\n }\n\n if (tag === 'select' && value === null) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n value = value.join('|');\n }\n\n if (name && !~_this.options.ignore.indexOf(name)) {\n values[name] = value;\n }\n });\n return immutable__WEBPACK_IMPORTED_MODULE_1___default().OrderedMap(values);\n }\n }, {\n key: \"diff\",\n value: function diff() {\n return immutablediff__WEBPACK_IMPORTED_MODULE_2___default()(FormLoadState, this.collect());\n } // When the form doesn't exist or there are no fields, `equals` returns `null`\n // for this reason, _NEVER_ check with !Instance.equals(), use Instance.equals() === false\n\n }, {\n key: \"equals\",\n value: function equals() {\n if (!this.form || !this.fields.length) {\n return null;\n }\n\n return immutable__WEBPACK_IMPORTED_MODULE_1___default().is(FormLoadState, this.collect());\n }\n }]);\n\n return FormState;\n}();\n\n\n;\nvar Instance = new FormState();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvZm9ybXMvc3RhdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBSUcsYUFBYSxHQUFHLEVBQXBCO0FBRUEsSUFBTUMsWUFBWSxHQUFHO0FBQ2pCQyxFQUFBQSxNQURpQixvQkFDUjtBQUNMLFNBQUtDLGFBQUw7QUFDQSxTQUFLQyxnQkFBTDtBQUNILEdBSmdCO0FBTWpCRCxFQUFBQSxhQU5pQiwyQkFNRDtBQUNaLFFBQUlFLFFBQVEsR0FBRyw2RUFBZjs7QUFDQSxRQUFJUixtREFBQSxDQUFRVSxNQUFSLEVBQWdCLFFBQWhCLEtBQTZCLENBQUNWLG1EQUFBLENBQVFVLE1BQVIsRUFBZ0IsUUFBaEIsRUFBMEJDLFlBQTFCLElBQTBDLEVBQTNDLEVBQStDQyxNQUEvQyxDQUFzRCxVQUFDQyxLQUFEO0FBQUEsYUFBV0EsS0FBSyxDQUFDQyxTQUFOLEtBQW9CLE9BQS9CO0FBQUEsS0FBdEQsRUFBOEZDLE1BQS9ILEVBQXVJO0FBQ25JO0FBQ0gsS0FKVyxDQU1aOzs7QUFDQWYsSUFBQUEsNkNBQUMsQ0FBQ1EsUUFBRCxDQUFELENBQVlRLEVBQVosQ0FBZSxhQUFmLEVBQThCLFVBQVNILEtBQVQsRUFBZ0I7QUFDMUNiLE1BQUFBLDZDQUFDLENBQUNpQixxQkFBRCxDQUFELENBQVVDLEdBQVYsQ0FBYyxjQUFkO0FBQ0gsS0FGRCxFQVBZLENBV1o7O0FBQ0FsQixJQUFBQSw2Q0FBQyxDQUFDaUIscUJBQUQsQ0FBRCxDQUFVRCxFQUFWLENBQWEsb0JBQWIsRUFBbUMsWUFBTTtBQUNyQyxVQUFJRyxRQUFRLENBQUNDLE1BQVQsT0FBc0IsS0FBMUIsRUFBaUM7QUFDN0IsZUFBTyw2SUFBUDtBQUNIO0FBQ0osS0FKRDtBQUtILEdBdkJnQjtBQXlCakJiLEVBQUFBLGdCQXpCaUIsOEJBeUJFO0FBQ2YsUUFBSUMsUUFBUSxHQUFHLDRFQUFmOztBQUVBLFFBQUlSLG1EQUFBLENBQVFBLDZDQUFDLENBQUNRLFFBQUQsQ0FBRCxDQUFZYSxHQUFaLENBQWdCLENBQWhCLENBQVIsRUFBNEIsUUFBNUIsS0FBeUMsQ0FBQ3JCLG1EQUFBLENBQVFBLDZDQUFDLENBQUNRLFFBQUQsQ0FBRCxDQUFZYSxHQUFaLENBQWdCLENBQWhCLENBQVIsRUFBNEIsUUFBNUIsRUFBc0NDLEtBQXRDLElBQStDLEVBQWhELEVBQW9EVixNQUFwRCxDQUEyRCxVQUFDQyxLQUFEO0FBQUEsYUFBV0EsS0FBSyxDQUFDQyxTQUFOLEtBQW9CLE9BQS9CO0FBQUEsS0FBM0QsQ0FBN0MsRUFBaUo7QUFDN0k7QUFDSCxLQUxjLENBT2Y7QUFDQTs7O0FBQ0FkLElBQUFBLDZDQUFDLENBQUNRLFFBQUQsQ0FBRCxDQUFZUSxFQUFaLENBQWUsYUFBZixFQUE4QixVQUFTSCxLQUFULEVBQWdCO0FBQzFDLFVBQUlVLE9BQU8sR0FBR0osUUFBUSxDQUFDQyxNQUFULEVBQWQ7O0FBQ0EsVUFBSUcsT0FBTyxLQUFLLElBQVosSUFBb0JBLE9BQXhCLEVBQWlDO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBRWpEVixNQUFBQSxLQUFLLENBQUNXLGNBQU47QUFFQSxVQUFJQyxXQUFXLEdBQUd6Qiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRMEIsSUFBUixDQUFhLE1BQWIsQ0FBbEI7QUFDQSxVQUFJQyxLQUFLLEdBQUczQiw2Q0FBQyxDQUFDLDZCQUFELENBQWI7QUFDQSxVQUFJNEIsTUFBTSxHQUFHNUIsOERBQUEsQ0FBaUIyQixLQUFLLENBQUNHLElBQU4sQ0FBVyxTQUFYLENBQWpCLENBQWI7QUFDQSxVQUFJQyxPQUFPLEdBQUcvQiw2Q0FBQyxDQUFDLFVBQUQsRUFBYTJCLEtBQWIsQ0FBZjs7QUFFQSxVQUFJSyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFTbkIsS0FBVCxFQUFnQjtBQUMxQkEsUUFBQUEsS0FBSyxDQUFDVyxjQUFOO0FBQ0EsWUFBSVMsTUFBTSxHQUFHakMsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUThCLElBQVIsQ0FBYSxjQUFiLENBQWI7QUFFQUMsUUFBQUEsT0FBTyxDQUFDYixHQUFSLENBQVksT0FBWixFQUFxQmMsT0FBckI7QUFDQUosUUFBQUEsTUFBTSxDQUFDTSxLQUFQOztBQUVBLFlBQUlELE1BQU0sS0FBSyxVQUFmLEVBQTJCO0FBQ3ZCakMsVUFBQUEsNkNBQUMsQ0FBQ2lCLHFCQUFELENBQUQsQ0FBVUMsR0FBVixDQUFjLGNBQWQ7QUFDQUQsVUFBQUEscUJBQU0sQ0FBQ2tCLFFBQVAsQ0FBZ0JDLElBQWhCLEdBQXVCWCxXQUF2QjtBQUNIO0FBQ0osT0FYRDs7QUFhQU0sTUFBQUEsT0FBTyxDQUFDZixFQUFSLENBQVcsT0FBWCxFQUFvQmdCLE9BQXBCO0FBQ0FKLE1BQUFBLE1BQU0sQ0FBQ1MsSUFBUDtBQUNILEtBMUJEO0FBMkJIO0FBN0RnQixDQUFyQjs7SUFnRXFCQztBQUNqQix1QkFHRztBQUFBLFFBSFNDLE9BR1QsdUVBSG1CO0FBQ2xCQyxNQUFBQSxNQUFNLEVBQUUsRUFEVTtBQUVsQkMsTUFBQUEsT0FBTyxFQUFFO0FBRlMsS0FHbkI7O0FBQUE7O0FBQ0MsU0FBS0YsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0csT0FBTDs7QUFFQSxRQUFJLENBQUMsS0FBS0MsSUFBTixJQUFjLENBQUMsS0FBS0MsTUFBTCxDQUFZN0IsTUFBL0IsRUFBdUM7QUFBRTtBQUFTOztBQUNsRFosSUFBQUEsYUFBYSxHQUFHLEtBQUswQyxPQUFMLEVBQWhCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQjNDLGFBQWpCO0FBQ0FDLElBQUFBLFlBQVksQ0FBQ0MsTUFBYjtBQUNIOzs7O1dBRUQsbUJBQVU7QUFDTixXQUFLc0MsSUFBTCxHQUFZM0MsNkNBQUMsZ0JBQVMsS0FBS3VDLE9BQUwsQ0FBYUUsT0FBdEIsRUFBRCxDQUFrQzdCLE1BQWxDLENBQXlDLHNCQUF6QyxDQUFaO0FBQ0EsV0FBS2dDLE1BQUwsR0FBYzVDLDZDQUFDLGdCQUFTLEtBQUt1QyxPQUFMLENBQWFFLE9BQXRCLHlCQUEyQyxLQUFLRixPQUFMLENBQWFFLE9BQXhELFNBQUQsQ0FBc0U3QixNQUF0RSxDQUE2RSxzQkFBN0UsRUFBcUdBLE1BQXJHLENBQTRHLHNCQUE1RyxDQUFkO0FBRUEsYUFBTyxJQUFQO0FBQ0g7OztXQUVELG1CQUFVO0FBQUE7O0FBQ04sVUFBSSxDQUFDLEtBQUsrQixJQUFOLElBQWMsQ0FBQyxLQUFLQyxNQUFMLENBQVk3QixNQUEvQixFQUF1QztBQUFFO0FBQVM7O0FBRWxELFVBQUlnQyxNQUFNLEdBQUcsRUFBYjtBQUNBLFdBQUtMLE9BQUwsR0FBZUUsTUFBZixDQUFzQkksSUFBdEIsQ0FBMkIsVUFBQ0MsS0FBRCxFQUFRQyxLQUFSLEVBQWtCO0FBQ3pDQSxRQUFBQSxLQUFLLEdBQUdsRCw2Q0FBQyxDQUFDa0QsS0FBRCxDQUFUO0FBQ0EsWUFBSUMsSUFBSSxHQUFHRCxLQUFLLENBQUNFLElBQU4sQ0FBVyxNQUFYLENBQVg7QUFDQSxZQUFJQyxJQUFJLEdBQUdILEtBQUssQ0FBQ0UsSUFBTixDQUFXLE1BQVgsQ0FBWDtBQUNBLFlBQUlFLEdBQUcsR0FBR0osS0FBSyxDQUFDRSxJQUFOLENBQVcsU0FBWCxFQUFzQkcsV0FBdEIsRUFBVjtBQUNBLFlBQUlDLEtBQUo7O0FBRUEsWUFBSUwsSUFBSSxDQUFDTSxVQUFMLENBQWdCLGFBQWhCLEtBQWtDTixJQUFJLEtBQUssWUFBM0MsSUFBMkRBLElBQUksS0FBSyxnQkFBeEUsRUFBMEY7QUFDdEY7QUFDSDs7QUFFRCxnQkFBUUUsSUFBUjtBQUNJLGVBQUssVUFBTDtBQUNJRyxZQUFBQSxLQUFLLEdBQUdOLEtBQUssQ0FBQ1EsRUFBTixDQUFTLFVBQVQsQ0FBUjtBQUNBOztBQUNKLGVBQUssT0FBTDtBQUNJLGdCQUFJLENBQUNSLEtBQUssQ0FBQ1EsRUFBTixDQUFTLFVBQVQsQ0FBTCxFQUEyQjtBQUFFO0FBQVM7O0FBQ3RDRixZQUFBQSxLQUFLLEdBQUdOLEtBQUssQ0FBQ1MsR0FBTixFQUFSO0FBQ0E7O0FBQ0o7QUFDSUgsWUFBQUEsS0FBSyxHQUFHTixLQUFLLENBQUNTLEdBQU4sRUFBUjtBQVRSOztBQVlBLFlBQUlMLEdBQUcsS0FBSyxRQUFSLElBQW9CRSxLQUFLLEtBQUssSUFBbEMsRUFBd0M7QUFDcENBLFVBQUFBLEtBQUssR0FBRyxFQUFSO0FBQ0g7O0FBRUQsWUFBSUksS0FBSyxDQUFDQyxPQUFOLENBQWNMLEtBQWQsQ0FBSixFQUEwQjtBQUN0QkEsVUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNNLElBQU4sQ0FBVyxHQUFYLENBQVI7QUFDSDs7QUFFRCxZQUFJWCxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUksQ0FBQ1osT0FBTCxDQUFhQyxNQUFiLENBQW9CdUIsT0FBcEIsQ0FBNEJaLElBQTVCLENBQWQsRUFBaUQ7QUFDN0NKLFVBQUFBLE1BQU0sQ0FBQ0ksSUFBRCxDQUFOLEdBQWVLLEtBQWY7QUFDSDtBQUNKLE9BbENEO0FBb0NBLGFBQU92RCwyREFBQSxDQUFxQjhDLE1BQXJCLENBQVA7QUFDSDs7O1dBRUQsZ0JBQU87QUFDSCxhQUFPN0Msb0RBQWEsQ0FBQ0MsYUFBRCxFQUFnQixLQUFLMEMsT0FBTCxFQUFoQixDQUFwQjtBQUNILE1BRUQ7QUFDQTs7OztXQUNBLGtCQUFTO0FBQ0wsVUFBSSxDQUFDLEtBQUtGLElBQU4sSUFBYyxDQUFDLEtBQUtDLE1BQUwsQ0FBWTdCLE1BQS9CLEVBQXVDO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBQ3ZELGFBQU9kLG1EQUFBLENBQWFFLGFBQWIsRUFBNEIsS0FBSzBDLE9BQUwsRUFBNUIsQ0FBUDtBQUNIOzs7Ozs7O0FBQ0o7QUFFTSxJQUFJMUIsUUFBUSxHQUFHLElBQUltQixTQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL3N0YXRlLmpzPzY3ZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBJbW11dGFibGUgZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCBpbW11dGFibGVkaWZmIGZyb20gJ2ltbXV0YWJsZWRpZmYnO1xuaW1wb3J0ICcuLi91dGlscy9qcXVlcnktdXRpbHMnO1xuXG5sZXQgRm9ybUxvYWRTdGF0ZSA9IHt9O1xuXG5jb25zdCBET01CZWhhdmlvcnMgPSB7XG4gICAgYXR0YWNoKCkge1xuICAgICAgICB0aGlzLnByZXZlbnRVbmxvYWQoKTtcbiAgICAgICAgdGhpcy5wcmV2ZW50Q2xpY2tBd2F5KCk7XG4gICAgfSxcblxuICAgIHByZXZlbnRVbmxvYWQoKSB7XG4gICAgICAgIGxldCBzZWxlY3RvciA9ICdbbmFtZT1cInRhc2tcIl1bdmFsdWVePVwic2F2ZVwiXSwgW2RhdGEtZGVsZXRlLWFjdGlvbl0sIFtkYXRhLWZsZXgtc2FmZS1hY3Rpb25dJztcbiAgICAgICAgaWYgKCQuX2RhdGEod2luZG93LCAnZXZlbnRzJykgJiYgKCQuX2RhdGEod2luZG93LCAnZXZlbnRzJykuYmVmb3JldW5sb2FkIHx8IFtdKS5maWx0ZXIoKGV2ZW50KSA9PiBldmVudC5uYW1lc3BhY2UgPT09ICdfZ3JhdicpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgc29tZSBlbGVtZW50cyB0byBsZWF2ZSB0aGUgcGFnZSB3aXRob3V0IG5hdGl2ZSBjb25maXJtYXRpb25cbiAgICAgICAgJChzZWxlY3Rvcikub24oJ2NsaWNrLl9ncmF2JywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICQoZ2xvYmFsKS5vZmYoJ2JlZm9yZXVubG9hZCcpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDYXRjaCBicm93c2VyIHVyaSBjaGFuZ2UgLyByZWZyZXNoIGF0dGVtcHQgYW5kIHN0b3AgaXQgaWYgdGhlIGZvcm0gc3RhdGUgaXMgZGlydHlcbiAgICAgICAgJChnbG9iYWwpLm9uKCdiZWZvcmV1bmxvYWQuX2dyYXYnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoSW5zdGFuY2UuZXF1YWxzKCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdZb3UgaGF2ZSBtYWRlIGNoYW5nZXMgb24gdGhpcyBwYWdlIHRoYXQgeW91IGhhdmUgbm90IHlldCBjb25maXJtZWQuIElmIHlvdSBuYXZpZ2F0ZSBhd2F5IGZyb20gdGhpcyBwYWdlIHlvdSB3aWxsIGxvc2UgeW91ciB1bnNhdmVkIGNoYW5nZXMuJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIHByZXZlbnRDbGlja0F3YXkoKSB7XG4gICAgICAgIGxldCBzZWxlY3RvciA9ICdhW2hyZWZdOm5vdChbaHJlZl49XCIjXCJdKTpub3QoW3RhcmdldD1cIl9ibGFua1wiXSk6bm90KFtocmVmXj1cImphdmFzY3JpcHQ6XCJdKSc7XG5cbiAgICAgICAgaWYgKCQuX2RhdGEoJChzZWxlY3RvcikuZ2V0KDApLCAnZXZlbnRzJykgJiYgKCQuX2RhdGEoJChzZWxlY3RvcikuZ2V0KDApLCAnZXZlbnRzJykuY2xpY2sgfHwgW10pLmZpbHRlcigoZXZlbnQpID0+IGV2ZW50Lm5hbWVzcGFjZSA9PT0gJ19ncmF2JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXZlbnQgY2xpY2tpbmcgYXdheSBpZiB0aGUgZm9ybSBzdGF0ZSBpcyBkaXJ0eVxuICAgICAgICAvLyBpbnN0ZWFkLCBkaXNwbGF5IGEgY29uZmlybWF0aW9uIGJlZm9yZSBjb250aW51aW5nXG4gICAgICAgICQoc2VsZWN0b3IpLm9uKCdjbGljay5fZ3JhdicsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICBsZXQgaXNDbGVhbiA9IEluc3RhbmNlLmVxdWFscygpO1xuICAgICAgICAgICAgaWYgKGlzQ2xlYW4gPT09IG51bGwgfHwgaXNDbGVhbikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBsZXQgZGVzdGluYXRpb24gPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgICAgIGxldCBtb2RhbCA9ICQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJjaGFuZ2VzXCJdJyk7XG4gICAgICAgICAgICBsZXQgbG9va3VwID0gJC5yZW1vZGFsLmxvb2t1cFttb2RhbC5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICAgICAgbGV0IGJ1dHRvbnMgPSAkKCdhLmJ1dHRvbicsIG1vZGFsKTtcblxuICAgICAgICAgICAgbGV0IGhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbGV0IGFjdGlvbiA9ICQodGhpcykuZGF0YSgnbGVhdmUtYWN0aW9uJyk7XG5cbiAgICAgICAgICAgICAgICBidXR0b25zLm9mZignY2xpY2snLCBoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBsb29rdXAuY2xvc2UoKTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24gPT09ICdjb250aW51ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgJChnbG9iYWwpLm9mZignYmVmb3JldW5sb2FkJyk7XG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYnV0dG9ucy5vbignY2xpY2snLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGxvb2t1cC5vcGVuKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm1TdGF0ZSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHtcbiAgICAgICAgaWdub3JlOiBbXSxcbiAgICAgICAgZm9ybV9pZDogJ2JsdWVwcmludHMnXG4gICAgfSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCAhdGhpcy5maWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuICAgICAgICBGb3JtTG9hZFN0YXRlID0gdGhpcy5jb2xsZWN0KCk7XG4gICAgICAgIHRoaXMubG9hZFN0YXRlID0gRm9ybUxvYWRTdGF0ZTtcbiAgICAgICAgRE9NQmVoYXZpb3JzLmF0dGFjaCgpO1xuICAgIH1cblxuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuZm9ybSA9ICQoYGZvcm0jJHt0aGlzLm9wdGlvbnMuZm9ybV9pZH1gKS5maWx0ZXIoJzpub3BhcmVudHMoLnJlbW9kYWwpJyk7XG4gICAgICAgIHRoaXMuZmllbGRzID0gJChgZm9ybSMke3RoaXMub3B0aW9ucy5mb3JtX2lkfSAqLCBbZm9ybT1cIiR7dGhpcy5vcHRpb25zLmZvcm1faWR9XCJdYCkuZmlsdGVyKCc6aW5wdXQ6bm90KC5uby1mb3JtKScpLmZpbHRlcignOm5vcGFyZW50cygucmVtb2RhbCknKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb2xsZWN0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCAhdGhpcy5maWVsZHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCB2YWx1ZXMgPSB7fTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCkuZmllbGRzLmVhY2goKGluZGV4LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZmllbGQgPSAkKGZpZWxkKTtcbiAgICAgICAgICAgIGxldCBuYW1lID0gZmllbGQucHJvcCgnbmFtZScpO1xuICAgICAgICAgICAgbGV0IHR5cGUgPSBmaWVsZC5wcm9wKCd0eXBlJyk7XG4gICAgICAgICAgICBsZXQgdGFnID0gZmllbGQucHJvcCgndGFnTmFtZScpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBsZXQgdmFsdWU7XG5cbiAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJ3RvZ2dsZWFibGVfJykgfHwgbmFtZSA9PT0gJ2RhdGFbbGFuZ10nIHx8IG5hbWUgPT09ICdkYXRhW3JlZGlyZWN0XScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NoZWNrYm94JzpcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC5pcygnOmNoZWNrZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLmlzKCc6Y2hlY2tlZCcpKSB7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpZWxkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpZWxkLnZhbCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGFnID09PSAnc2VsZWN0JyAmJiB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuam9pbignfCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmFtZSAmJiAhfnRoaXMub3B0aW9ucy5pZ25vcmUuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gSW1tdXRhYmxlLk9yZGVyZWRNYXAodmFsdWVzKTtcbiAgICB9XG5cbiAgICBkaWZmKCkge1xuICAgICAgICByZXR1cm4gaW1tdXRhYmxlZGlmZihGb3JtTG9hZFN0YXRlLCB0aGlzLmNvbGxlY3QoKSk7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgZm9ybSBkb2Vzbid0IGV4aXN0IG9yIHRoZXJlIGFyZSBubyBmaWVsZHMsIGBlcXVhbHNgIHJldHVybnMgYG51bGxgXG4gICAgLy8gZm9yIHRoaXMgcmVhc29uLCBfTkVWRVJfIGNoZWNrIHdpdGggIUluc3RhbmNlLmVxdWFscygpLCB1c2UgSW5zdGFuY2UuZXF1YWxzKCkgPT09IGZhbHNlXG4gICAgZXF1YWxzKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCAhdGhpcy5maWVsZHMubGVuZ3RoKSB7IHJldHVybiBudWxsOyB9XG4gICAgICAgIHJldHVybiBJbW11dGFibGUuaXMoRm9ybUxvYWRTdGF0ZSwgdGhpcy5jb2xsZWN0KCkpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRm9ybVN0YXRlKCk7XG5cbmV4cG9ydCB7IERPTUJlaGF2aW9ycyB9O1xuIl0sIm5hbWVzIjpbIiQiLCJJbW11dGFibGUiLCJpbW11dGFibGVkaWZmIiwiRm9ybUxvYWRTdGF0ZSIsIkRPTUJlaGF2aW9ycyIsImF0dGFjaCIsInByZXZlbnRVbmxvYWQiLCJwcmV2ZW50Q2xpY2tBd2F5Iiwic2VsZWN0b3IiLCJfZGF0YSIsIndpbmRvdyIsImJlZm9yZXVubG9hZCIsImZpbHRlciIsImV2ZW50IiwibmFtZXNwYWNlIiwibGVuZ3RoIiwib24iLCJnbG9iYWwiLCJvZmYiLCJJbnN0YW5jZSIsImVxdWFscyIsImdldCIsImNsaWNrIiwiaXNDbGVhbiIsInByZXZlbnREZWZhdWx0IiwiZGVzdGluYXRpb24iLCJhdHRyIiwibW9kYWwiLCJsb29rdXAiLCJyZW1vZGFsIiwiZGF0YSIsImJ1dHRvbnMiLCJoYW5kbGVyIiwiYWN0aW9uIiwiY2xvc2UiLCJsb2NhdGlvbiIsImhyZWYiLCJvcGVuIiwiRm9ybVN0YXRlIiwib3B0aW9ucyIsImlnbm9yZSIsImZvcm1faWQiLCJyZWZyZXNoIiwiZm9ybSIsImZpZWxkcyIsImNvbGxlY3QiLCJsb2FkU3RhdGUiLCJ2YWx1ZXMiLCJlYWNoIiwiaW5kZXgiLCJmaWVsZCIsIm5hbWUiLCJwcm9wIiwidHlwZSIsInRhZyIsInRvTG93ZXJDYXNlIiwidmFsdWUiLCJzdGFydHNXaXRoIiwiaXMiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiaW5kZXhPZiIsIk9yZGVyZWRNYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/state.js\n");
/***/ }),
/***/ "./app/main.js":
/*!*********************!*\
!*** ./app/main.js ***!
\*********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/polyfill */ \"./node_modules/@babel/polyfill/lib/index.js\");\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_polyfill__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_remodal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/remodal */ \"./app/utils/remodal.js\");\n/* harmony import */ var simplebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simplebar */ \"./node_modules/simplebar/dist/simplebar.esm.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _utils_keepalive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/keepalive */ \"./app/utils/keepalive.js\");\n/* harmony import */ var _updates__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updates */ \"./app/updates/index.js\");\n/* harmony import */ var _dashboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dashboard */ \"./app/dashboard/index.js\");\n/* harmony import */ var _pages__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages */ \"./app/pages/index.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./plugins */ \"./app/plugins/index.js\");\n/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./themes */ \"./app/themes/index.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./media */ \"./app/media/index.js\");\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_2fa__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils/2fa */ \"./app/utils/2fa.js\");\n/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tools */ \"./app/tools/index.js\");\n/* harmony import */ var _whitelabel__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./whitelabel */ \"./app/whitelabel/index.js\");\n/* harmony import */ var _utils_bootstrap_transition__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/bootstrap-transition */ \"./app/utils/bootstrap-transition.js\");\n/* harmony import */ var _utils_bootstrap_collapse__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./utils/bootstrap-collapse */ \"./app/utils/bootstrap-collapse.js\");\n/* harmony import */ var _utils_bootstrap_dropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/bootstrap-dropdown */ \"./app/utils/bootstrap-dropdown.js\");\n/* harmony import */ var _utils_tabs_memory__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/tabs-memory */ \"./app/utils/tabs-memory.js\");\n/* harmony import */ var _utils_changelog__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./utils/changelog */ \"./app/utils/changelog.js\");\n/* harmony import */ var _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./utils/sidebar */ \"./app/utils/sidebar.js\");\n// polyfills\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // bootstrap jQuery extensions\n\n\n\n // tabs memory\n\n // changelog\n\n // Main Sidebar\n\n // starts the keep alive, auto runs every X seconds\n\n_utils_keepalive__WEBPACK_IMPORTED_MODULE_5__[\"default\"].start(); // global event to catch sidebar_state changes\n\njquery__WEBPACK_IMPORTED_MODULE_1___default()(__webpack_require__.g).on('sidebar_state._grav', function () {\n Object.keys(_dashboard__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Chart.Instances).forEach(function (chart) {\n setTimeout(function () {\n return _dashboard__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Chart.Instances[chart].chart.update();\n }, 10);\n });\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n GPM: {\n GPM: _utils_gpm__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Instance: _utils_gpm__WEBPACK_IMPORTED_MODULE_4__.Instance\n },\n KeepAlive: _utils_keepalive__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Dashboard: _dashboard__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Pages: _pages__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n Forms: _forms__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n Updates: {\n Updates: _updates__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n Notifications: _updates__WEBPACK_IMPORTED_MODULE_6__.Notifications,\n Feed: _updates__WEBPACK_IMPORTED_MODULE_6__.Feed,\n Instance: _updates__WEBPACK_IMPORTED_MODULE_6__.Instance\n },\n Sidebar: {\n Sidebar: _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n Instance: _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__.Instance\n },\n MediaFilter: {\n MediaFilter: _media__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n Instance: _media__WEBPACK_IMPORTED_MODULE_13__.Instance\n },\n Scrollbar: {\n Scrollbar: {\n deprecated: true\n },\n Instance: {\n deprecated: true\n }\n },\n Utils: {\n request: _utils_request__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n toastr: _utils_toastr__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n Cookies: _utils_cookies__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvbWFpbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFDQTtBQUNBO0NBR0E7O0NBR0E7O0NBR0E7O0NBR0E7O0FBQ0FJLDhEQUFBLElBRUE7O0FBQ0FKLDZDQUFDLENBQUNvQixxQkFBRCxDQUFELENBQVVDLEVBQVYsQ0FBYSxxQkFBYixFQUFvQyxZQUFNO0FBQ3RDQyxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWWQsa0VBQVosRUFBdUNpQixPQUF2QyxDQUErQyxVQUFDQyxLQUFELEVBQVc7QUFDdERDLElBQUFBLFVBQVUsQ0FBQztBQUFBLGFBQU1uQixrRUFBQSxDQUEwQmtCLEtBQTFCLEVBQWlDQSxLQUFqQyxDQUF1Q0UsTUFBdkMsRUFBTjtBQUFBLEtBQUQsRUFBd0QsRUFBeEQsQ0FBVjtBQUNILEdBRkQ7QUFHSCxDQUpEO0FBTUEsaUVBQWU7QUFDWDVCLEVBQUFBLEdBQUcsRUFBRTtBQUNEQSxJQUFBQSxHQUFHLEVBQUhBLGtEQURDO0FBRURDLElBQUFBLFFBQVEsRUFBRUMsZ0RBQUdBO0FBRlosR0FETTtBQUtYQyxFQUFBQSxTQUFTLEVBQVRBLHdEQUxXO0FBTVhLLEVBQUFBLFNBQVMsRUFBVEEsa0RBTlc7QUFPWEMsRUFBQUEsS0FBSyxFQUFMQSw4Q0FQVztBQVFYQyxFQUFBQSxLQUFLLEVBQUxBLDhDQVJXO0FBU1hOLEVBQUFBLE9BQU8sRUFBRTtBQUNMQSxJQUFBQSxPQUFPLEVBQVBBLGdEQURLO0FBRUxFLElBQUFBLGFBQWEsRUFBYkEsbURBRks7QUFHTEMsSUFBQUEsSUFBSSxFQUFKQSwwQ0FISztBQUlMTixJQUFBQSxRQUFRLEVBQUVJLDhDQUFPQTtBQUpaLEdBVEU7QUFlWFcsRUFBQUEsT0FBTyxFQUFFO0FBQ0xBLElBQUFBLE9BQU8sRUFBUEEsdURBREs7QUFFTGYsSUFBQUEsUUFBUSxFQUFFZ0IscURBQU9BO0FBRlosR0FmRTtBQW1CWEwsRUFBQUEsV0FBVyxFQUFFO0FBQ1RBLElBQUFBLFdBQVcsRUFBWEEsK0NBRFM7QUFFVFgsSUFBQUEsUUFBUSxFQUFFWSw2Q0FBbUJBO0FBRnBCLEdBbkJGO0FBdUJYZ0IsRUFBQUEsU0FBUyxFQUFFO0FBQUVBLElBQUFBLFNBQVMsRUFBRTtBQUFFQyxNQUFBQSxVQUFVLEVBQUU7QUFBZCxLQUFiO0FBQW1DN0IsSUFBQUEsUUFBUSxFQUFFO0FBQUU2QixNQUFBQSxVQUFVLEVBQUU7QUFBZDtBQUE3QyxHQXZCQTtBQXdCWEMsRUFBQUEsS0FBSyxFQUFFO0FBQUVoQixJQUFBQSxPQUFPLEVBQVBBLHVEQUFGO0FBQVdELElBQUFBLE1BQU0sRUFBTkEsc0RBQVg7QUFBbUJILElBQUFBLE9BQU8sRUFBUEEsdURBQU9BO0FBQTFCO0FBeEJJLENBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL21haW4uanM/ZjE2MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwb2x5ZmlsbHNcbmltcG9ydCAnQGJhYmVsL3BvbHlmaWxsJztcblxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi91dGlscy9yZW1vZGFsJztcbmltcG9ydCAnc2ltcGxlYmFyJztcbmltcG9ydCBHUE0sIHsgSW5zdGFuY2UgYXMgZ3BtIH0gZnJvbSAnLi91dGlscy9ncG0nO1xuaW1wb3J0IEtlZXBBbGl2ZSBmcm9tICcuL3V0aWxzL2tlZXBhbGl2ZSc7XG5pbXBvcnQgVXBkYXRlcywgeyBJbnN0YW5jZSBhcyB1cGRhdGVzLCBOb3RpZmljYXRpb25zLCBGZWVkIH0gZnJvbSAnLi91cGRhdGVzJztcbmltcG9ydCBEYXNoYm9hcmQgZnJvbSAnLi9kYXNoYm9hcmQnO1xuaW1wb3J0IFBhZ2VzIGZyb20gJy4vcGFnZXMnO1xuaW1wb3J0IEZvcm1zIGZyb20gJy4vZm9ybXMnO1xuaW1wb3J0IENvb2tpZXMgZnJvbSAnLi91dGlscy9jb29raWVzJztcbmltcG9ydCAnLi9wbHVnaW5zJztcbmltcG9ydCAnLi90aGVtZXMnO1xuaW1wb3J0IE1lZGlhRmlsdGVyLCB7IEluc3RhbmNlIGFzIE1lZGlhRmlsdGVySW5zdGFuY2V9IGZyb20gJy4vbWVkaWEnO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0ICcuL3V0aWxzLzJmYSc7XG5pbXBvcnQgJy4vdG9vbHMnO1xuaW1wb3J0ICcuL3doaXRlbGFiZWwnO1xuXG4vLyBib290c3RyYXAgalF1ZXJ5IGV4dGVuc2lvbnNcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtdHJhbnNpdGlvbic7XG5pbXBvcnQgJy4vdXRpbHMvYm9vdHN0cmFwLWNvbGxhcHNlJztcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtZHJvcGRvd24nO1xuXG4vLyB0YWJzIG1lbW9yeVxuaW1wb3J0ICcuL3V0aWxzL3RhYnMtbWVtb3J5JztcblxuLy8gY2hhbmdlbG9nXG5pbXBvcnQgJy4vdXRpbHMvY2hhbmdlbG9nJztcblxuLy8gTWFpbiBTaWRlYmFyXG5pbXBvcnQgU2lkZWJhciwgeyBJbnN0YW5jZSBhcyBzaWRlYmFyIH0gZnJvbSAnLi91dGlscy9zaWRlYmFyJztcblxuLy8gc3RhcnRzIHRoZSBrZWVwIGFsaXZlLCBhdXRvIHJ1bnMgZXZlcnkgWCBzZWNvbmRzXG5LZWVwQWxpdmUuc3RhcnQoKTtcblxuLy8gZ2xvYmFsIGV2ZW50IHRvIGNhdGNoIHNpZGViYXJfc3RhdGUgY2hhbmdlc1xuJChnbG9iYWwpLm9uKCdzaWRlYmFyX3N0YXRlLl9ncmF2JywgKCkgPT4ge1xuICAgIE9iamVjdC5rZXlzKERhc2hib2FyZC5DaGFydC5JbnN0YW5jZXMpLmZvckVhY2goKGNoYXJ0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGFzaGJvYXJkLkNoYXJ0Lkluc3RhbmNlc1tjaGFydF0uY2hhcnQudXBkYXRlKCksIDEwKTtcbiAgICB9KTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgR1BNOiB7XG4gICAgICAgIEdQTSxcbiAgICAgICAgSW5zdGFuY2U6IGdwbVxuICAgIH0sXG4gICAgS2VlcEFsaXZlLFxuICAgIERhc2hib2FyZCxcbiAgICBQYWdlcyxcbiAgICBGb3JtcyxcbiAgICBVcGRhdGVzOiB7XG4gICAgICAgIFVwZGF0ZXMsXG4gICAgICAgIE5vdGlmaWNhdGlvbnMsXG4gICAgICAgIEZlZWQsXG4gICAgICAgIEluc3RhbmNlOiB1cGRhdGVzXG4gICAgfSxcbiAgICBTaWRlYmFyOiB7XG4gICAgICAgIFNpZGViYXIsXG4gICAgICAgIEluc3RhbmNlOiBzaWRlYmFyXG4gICAgfSxcbiAgICBNZWRpYUZpbHRlcjoge1xuICAgICAgICBNZWRpYUZpbHRlcixcbiAgICAgICAgSW5zdGFuY2U6IE1lZGlhRmlsdGVySW5zdGFuY2VcbiAgICB9LFxuICAgIFNjcm9sbGJhcjogeyBTY3JvbGxiYXI6IHsgZGVwcmVjYXRlZDogdHJ1ZSB9LCBJbnN0YW5jZTogeyBkZXByZWNhdGVkOiB0cnVlIH0gfSxcbiAgICBVdGlsczogeyByZXF1ZXN0LCB0b2FzdHIsIENvb2tpZXMgfVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiR1BNIiwiSW5zdGFuY2UiLCJncG0iLCJLZWVwQWxpdmUiLCJVcGRhdGVzIiwidXBkYXRlcyIsIk5vdGlmaWNhdGlvbnMiLCJGZWVkIiwiRGFzaGJvYXJkIiwiUGFnZXMiLCJGb3JtcyIsIkNvb2tpZXMiLCJNZWRpYUZpbHRlciIsIk1lZGlhRmlsdGVySW5zdGFuY2UiLCJ0b2FzdHIiLCJyZXF1ZXN0IiwiU2lkZWJhciIsInNpZGViYXIiLCJzdGFydCIsImdsb2JhbCIsIm9uIiwiT2JqZWN0Iiwia2V5cyIsIkNoYXJ0IiwiSW5zdGFuY2VzIiwiZm9yRWFjaCIsImNoYXJ0Iiwic2V0VGltZW91dCIsInVwZGF0ZSIsIlNjcm9sbGJhciIsImRlcHJlY2F0ZWQiLCJVdGlscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/main.js\n");
/***/ }),
/***/ "./app/media/index.js":
/*!****************************!*\
!*** ./app/media/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Filter),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar Filter = /*#__PURE__*/function () {\n function Filter() {\n _classCallCheck(this, Filter);\n\n this.URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager/\");\n }\n\n _createClass(Filter, [{\n key: \"filter\",\n value: function filter(name, value) {\n var filtered = [];\n var keys = Object.keys(grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params);\n\n if (!~keys.indexOf(name)) {\n keys.push(name);\n }\n\n keys.forEach(function (key) {\n var filter = Filter.cleanValue(key === name ? value : grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params[key]);\n\n if (filter !== '*') {\n filtered.push(\"\".concat(key).concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filter));\n }\n });\n __webpack_require__.g.location = this.URI + filtered.join('/');\n }\n }], [{\n key: \"cleanValue\",\n value: function cleanValue(value) {\n return encodeURIComponent(value.replace('/', '\\\\'));\n }\n }]);\n\n return Filter;\n}();\n\n\nvar Instance = new Filter();\nvar isLoading = false;\nvar filters = {};\nvar global_index = 1;\nvar files_ended = false;\nvar MEDIA_PAGINATION_INTERVAL = 20;\n/* handle changing file type / date filter */\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('change', '.thumbs-list-container select.filter', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var filterName = target.data('name');\n var filterValue = target.val();\n\n if (filterValue) {\n filters[filterName] = filterValue;\n } else {\n delete filters[filterName];\n }\n\n filterFiles();\n});\n/* initialize media uploader */\n\nif (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0].dropzone.on('queuecomplete', function () {\n var body = {};\n\n if (filters.page) {\n body.page = filters.page;\n }\n\n if (filters.date) {\n body.date = filters.date;\n }\n\n if (filters.type) {\n body.type = filters.type;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.files.forEach(function (file) {\n file.previewElement.remove();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone').first().removeClass('dz-started');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"clearMediaCache\"), {\n method: 'post',\n body: body\n }, function () {\n filterFiles();\n });\n });\n}\n/* handle loading media */\n\n\nvar loadMedia = function loadMedia(filters, callback) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media.json/tmpl\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"media-list-content/index\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(global_index);\n\n if (filters.page) {\n url += \"/page\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.page.split('/').join('%5C'));\n }\n\n if (filters.type && filters.type !== '*') {\n url += \"/type\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.type);\n }\n\n if (filters.date && filters.date !== '*') {\n url += \"/date\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.date);\n }\n\n if (!isLoading) {\n isLoading = true;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').show();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().get(url, function (content) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').append(content);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('change');\n isLoading = false;\n global_index++;\n callback(content);\n });\n }\n};\n\nvar cleanFilesList = function cleanFilesList() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files .card-item').remove();\n};\n\nvar resetActiveStateInSidebar = function resetActiveStateInSidebar() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.pages-list-container .row').removeClass('active'); // clear active state in sidebar\n};\n\nvar showEmptyState = function showEmptyState() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container').append('<p class=\"card-item empty-space\">No media found</p>');\n};\n\nvar filterFiles = function filterFiles() {\n cleanFilesList();\n global_index = 0;\n files_ended = false;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.empty-space').remove();\n loadMedia(filters, function (content) {\n if (!content.trim().length) {\n showEmptyState();\n } else {\n if (!filters.page && (!filters.date || filters.date === '*') && (!filters.type || filters.type === '*')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').trigger('fillView');\n }\n }\n });\n};\n/* handle changing page */\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.pages-list-container .js__page-link', function (event) {\n var page = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).data('page');\n filters['page'] = page;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html(page); // set indication\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').removeClass('hidden'); // activate reset pages icon\n\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.row').addClass('active'); // set active state in sidebar\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').removeClass('hidden'); // customize processing URL, as the page changes dynamically\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.on('processing', function (file) {\n this.options.url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager\").concat(page, \".json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"addmedia\");\n });\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').addClass('hidden');\n filterFiles();\n disableInfiniteScrolling(); // only infinite scroll on main list, not inside single pages\n});\n/* handle clearing page filter */\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.js__reset-pages-filter', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html('All Pages'); // set indication\n\n cleanFilesList();\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').addClass('hidden'); // remove reset pages icon\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').removeClass('hidden');\n delete filters['page'];\n filterFiles();\n});\n/* handle infinite loading */\n\nvar enableInfiniteScrolling = function enableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n var view = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mediapicker-scroll').last();\n\n if (!view.length) {\n return;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(view).on('scroll', function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).scrollTop() + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).innerHeight() + 100 >= jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)[0].scrollHeight) {\n fillView();\n }\n });\n};\n\nvar loadNextBatch = function loadNextBatch(callback) {\n if (files_ended) {\n return;\n }\n\n loadMedia({}, function (content) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(content).length || content.split('card-item').length - 1 < MEDIA_PAGINATION_INTERVAL) {\n files_ended = true;\n } else {\n if (callback) {\n callback();\n }\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('input');\n });\n};\n\nvar fillView = function fillView() {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset()) {\n setTimeout(function () {\n // retry later\n fillView();\n }, 300);\n return;\n }\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset().top - 1 <= jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container').height()) {\n loadNextBatch(function () {\n fillView();\n });\n }\n};\n/* disable infinite loading */\n\n\nvar disableInfiniteScrolling = function disableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').unbind('scroll');\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').on('fillView', function (event) {\n // the first batch got the max number of media files, try loading more\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files')[0].innerHTML.split('card-item').length - 1 === MEDIA_PAGINATION_INTERVAL) {\n fillView();\n enableInfiniteScrolling();\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TUFBdEIsQ0FBNkIsUUFBN0I7QUFDSCxDQUhEOztBQUtBcEYsNkNBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0I4QixFQUFoQixDQUFtQixVQUFuQixFQUErQixVQUFTQyxLQUFULEVBQWdCO0FBQzNDO0FBQ0EsTUFBSy9CLDZDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCLENBQWhCLEVBQW1CcUYsU0FBbkIsQ0FBNkIvQixLQUE3QixDQUFtQyxXQUFuQyxFQUFnRFcsTUFBaEQsR0FBeUQsQ0FBMUQsS0FBaUVwQyx5QkFBckUsRUFBZ0c7QUFDNUZnRCxJQUFBQSxRQUFRO0FBQ1JOLElBQUFBLHVCQUF1QjtBQUMxQjtBQUNKLENBTkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL21lZGlhL2luZGV4LmpzPzE1NDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdXJpX3BhcmFtcyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLlVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vbWVkaWEtbWFuYWdlci9gO1xuICAgIH1cblxuICAgIGZpbHRlcihuYW1lLCB2YWx1ZSkge1xuICAgICAgICBsZXQgZmlsdGVyZWQgPSBbXTtcbiAgICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyh1cmlfcGFyYW1zKTtcbiAgICAgICAgaWYgKCF+a2V5cy5pbmRleE9mKG5hbWUpKSB7IGtleXMucHVzaChuYW1lKTsgfVxuXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBsZXQgZmlsdGVyID0gRmlsdGVyLmNsZWFuVmFsdWUoa2V5ID09PSBuYW1lID8gdmFsdWUgOiB1cmlfcGFyYW1zW2tleV0pO1xuICAgICAgICAgICAgaWYgKGZpbHRlciAhPT0gJyonKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyZWQucHVzaChgJHtrZXl9JHtjb25maWcucGFyYW1fc2VwfSR7ZmlsdGVyfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBnbG9iYWwubG9jYXRpb24gPSB0aGlzLlVSSSArIGZpbHRlcmVkLmpvaW4oJy8nKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY2xlYW5WYWx1ZSh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlLnJlcGxhY2UoJy8nLCAnXFxcXCcpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRmlsdGVyKCk7XG52YXIgaXNMb2FkaW5nID0gZmFsc2U7XG5cbnZhciBmaWx0ZXJzID0ge307XG52YXIgZ2xvYmFsX2luZGV4ID0gMTtcbnZhciBmaWxlc19lbmRlZCA9IGZhbHNlO1xuY29uc3QgTUVESUFfUEFHSU5BVElPTl9JTlRFUlZBTCA9IDIwO1xuXG4vKiBoYW5kbGUgY2hhbmdpbmcgZmlsZSB0eXBlIC8gZGF0ZSBmaWx0ZXIgKi9cbiQoJ2JvZHknKS5vbignY2hhbmdlJywgJy50aHVtYnMtbGlzdC1jb250YWluZXIgc2VsZWN0LmZpbHRlcicsIChldmVudCkgPT4ge1xuICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBmaWx0ZXJOYW1lID0gdGFyZ2V0LmRhdGEoJ25hbWUnKTtcbiAgICBsZXQgZmlsdGVyVmFsdWUgPSB0YXJnZXQudmFsKCk7XG5cbiAgICBpZiAoZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgZmlsdGVyc1tmaWx0ZXJOYW1lXSA9IGZpbHRlclZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBmaWx0ZXJzW2ZpbHRlck5hbWVdO1xuICAgIH1cblxuICAgIGZpbHRlckZpbGVzKCk7XG59KTtcblxuLyogaW5pdGlhbGl6ZSBtZWRpYSB1cGxvYWRlciAqL1xuaWYgKCQoJy50aHVtYnMtbGlzdC1jb250YWluZXIgLmRyb3B6b25lJylbMF0pIHtcbiAgICAkKCcudGh1bWJzLWxpc3QtY29udGFpbmVyIC5kcm9wem9uZScpWzBdLmRyb3B6b25lLm9uKCdxdWV1ZWNvbXBsZXRlJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIGxldCBib2R5ID0ge307XG4gICAgICAgIGlmIChmaWx0ZXJzLnBhZ2UpIHsgYm9keS5wYWdlID0gZmlsdGVycy5wYWdlOyB9XG4gICAgICAgIGlmIChmaWx0ZXJzLmRhdGUpIHsgYm9keS5kYXRlID0gZmlsdGVycy5kYXRlOyB9XG4gICAgICAgIGlmIChmaWx0ZXJzLnR5cGUpIHsgYm9keS50eXBlID0gZmlsdGVycy50eXBlOyB9XG5cbiAgICAgICAgJCgnLmRyb3B6b25lJylbMF0uZHJvcHpvbmUuZmlsZXMuZm9yRWFjaChmdW5jdGlvbihmaWxlKSB7IGZpbGUucHJldmlld0VsZW1lbnQucmVtb3ZlKCk7IH0pO1xuICAgICAgICAkKCcuZHJvcHpvbmUnKS5maXJzdCgpLnJlbW92ZUNsYXNzKCdkei1zdGFydGVkJyk7XG5cbiAgICAgICAgcmVxdWVzdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L21lZGlhLW1hbmFnZXIuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWNsZWFyTWVkaWFDYWNoZWAsIHsgbWV0aG9kOiAncG9zdCcsIGJvZHkgfSwgKCkgPT4ge1xuICAgICAgICAgICAgZmlsdGVyRmlsZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbi8qIGhhbmRsZSBsb2FkaW5nIG1lZGlhICovXG52YXIgbG9hZE1lZGlhID0gZnVuY3Rpb24gbG9hZE1lZGlhKGZpbHRlcnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHVybCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vbWVkaWEuanNvbi90bXBsJHtjb25maWcucGFyYW1fc2VwfW1lZGlhLWxpc3QtY29udGVudC9pbmRleCR7Y29uZmlnLnBhcmFtX3NlcH0ke2dsb2JhbF9pbmRleH1gO1xuXG4gICAgaWYgKGZpbHRlcnMucGFnZSkge1xuICAgICAgICB1cmwgKz0gYC9wYWdlJHtjb25maWcucGFyYW1fc2VwfSR7KGZpbHRlcnMucGFnZSkuc3BsaXQoJy8nKS5qb2luKCclNUMnKX1gO1xuICAgIH1cbiAgICBpZiAoZmlsdGVycy50eXBlICYmIGZpbHRlcnMudHlwZSAhPT0gJyonKSB7XG4gICAgICAgIHVybCArPSBgL3R5cGUke2NvbmZpZy5wYXJhbV9zZXB9JHtmaWx0ZXJzLnR5cGV9YDtcbiAgICB9XG4gICAgaWYgKGZpbHRlcnMuZGF0ZSAmJiBmaWx0ZXJzLmRhdGUgIT09ICcqJykge1xuICAgICAgICB1cmwgKz0gYC9kYXRlJHtjb25maWcucGFyYW1fc2VwfSR7ZmlsdGVycy5kYXRlfWA7XG4gICAgfVxuXG4gICAgaWYgKCFpc0xvYWRpbmcpIHtcbiAgICAgICAgaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAkKCcuc3Bpbm5pbmctd2hlZWwnKS5zaG93KCk7XG4gICAgICAgICQuZ2V0KHVybCwgZnVuY3Rpb24oY29udGVudCkge1xuICAgICAgICAgICAgJCgnLmpzX19maWxlcycpLmFwcGVuZChjb250ZW50KTtcbiAgICAgICAgICAgICQoJy5zcGlubmluZy13aGVlbCcpLmhpZGUoKTtcbiAgICAgICAgICAgICQoJy5tZWRpYS1jb250YWluZXIgLm1lZGlhLXJhbmdlJykudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGdsb2JhbF9pbmRleCsrO1xuXG4gICAgICAgICAgICBjYWxsYmFjayhjb250ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxudmFyIGNsZWFuRmlsZXNMaXN0ID0gZnVuY3Rpb24gY2xlYW5GaWxlc0xpc3QoKSB7XG4gICAgJCgnLmpzX19maWxlcyAuY2FyZC1pdGVtJykucmVtb3ZlKCk7XG59O1xuXG52YXIgcmVzZXRBY3RpdmVTdGF0ZUluU2lkZWJhciA9IGZ1bmN0aW9uIHJlc2V0QWN0aXZlU3RhdGVJblNpZGViYXIoKSB7XG4gICAgJCgnLnBhZ2VzLWxpc3QtY29udGFpbmVyIC5yb3cnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7IC8vIGNsZWFyIGFjdGl2ZSBzdGF0ZSBpbiBzaWRlYmFyXG59O1xuXG52YXIgc2hvd0VtcHR5U3RhdGUgPSBmdW5jdGlvbiBzaG93RW1wdHlTdGF0ZSgpIHtcbiAgICAkKCcudGh1bWJzLWxpc3QtY29udGFpbmVyJykuYXBwZW5kKCc8cCBjbGFzcz1cImNhcmQtaXRlbSBlbXB0eS1zcGFjZVwiPk5vIG1lZGlhIGZvdW5kPC9wPicpO1xufTtcblxudmFyIGZpbHRlckZpbGVzID0gZnVuY3Rpb24gZmlsdGVyRmlsZXMoKSB7XG4gICAgY2xlYW5GaWxlc0xpc3QoKTtcbiAgICBnbG9iYWxfaW5kZXggPSAwO1xuICAgIGZpbGVzX2VuZGVkID0gZmFsc2U7XG4gICAgJCgnLmVtcHR5LXNwYWNlJykucmVtb3ZlKCk7XG4gICAgbG9hZE1lZGlhKGZpbHRlcnMsIGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICAgICAgaWYgKCFjb250ZW50LnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNob3dFbXB0eVN0YXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWZpbHRlcnMucGFnZSAmJiAoIWZpbHRlcnMuZGF0ZSB8fCBmaWx0ZXJzLmRhdGUgPT09ICcqJykgJiYgKCFmaWx0ZXJzLnR5cGUgfHwgZmlsdGVycy50eXBlID09PSAnKicpKSB7XG4gICAgICAgICAgICAgICAgJCgnLmpzX19maWxlcycpLnRyaWdnZXIoJ2ZpbGxWaWV3Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbi8qIGhhbmRsZSBjaGFuZ2luZyBwYWdlICovXG4kKCdib2R5Jykub24oJ2NsaWNrJywgJy5wYWdlcy1saXN0LWNvbnRhaW5lciAuanNfX3BhZ2UtbGluaycsIChldmVudCkgPT4ge1xuICAgIHZhciBwYWdlID0gJChldmVudC50YXJnZXQpLmRhdGEoJ3BhZ2UnKTtcbiAgICBmaWx0ZXJzWydwYWdlJ10gPSBwYWdlO1xuXG4gICAgJCgnLm1lZGlhLWxpc3QtdGl0bGUgLnBhZ2UtaW5kaWNhdG9yJykuaHRtbChwYWdlKTsgLy8gc2V0IGluZGljYXRpb25cbiAgICAkKCcuanNfX3Jlc2V0LXBhZ2VzLWZpbHRlcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsgLy8gYWN0aXZhdGUgcmVzZXQgcGFnZXMgaWNvblxuICAgIHJlc2V0QWN0aXZlU3RhdGVJblNpZGViYXIoKTtcbiAgICAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLnJvdycpLmFkZENsYXNzKCdhY3RpdmUnKTsgLy8gc2V0IGFjdGl2ZSBzdGF0ZSBpbiBzaWRlYmFyXG4gICAgJCgnLmpzX19maWxlLXVwbG9hZGVyJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgLy8gY3VzdG9taXplIHByb2Nlc3NpbmcgVVJMLCBhcyB0aGUgcGFnZSBjaGFuZ2VzIGR5bmFtaWNhbGx5XG4gICAgaWYgKCQoJy5kcm9wem9uZScpWzBdKSB7XG4gICAgICAgICQoJy5kcm9wem9uZScpWzBdLmRyb3B6b25lLm9uKCdwcm9jZXNzaW5nJywgZnVuY3Rpb24oZmlsZSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnVybCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vbWVkaWEtbWFuYWdlciR7cGFnZX0uanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWFkZG1lZGlhYDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgJCgnLmpzX19idXR0b24tY2xlYXItbWVkaWEtY2FjaGUnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgZmlsdGVyRmlsZXMoKTtcblxuICAgIGRpc2FibGVJbmZpbml0ZVNjcm9sbGluZygpOyAvLyBvbmx5IGluZmluaXRlIHNjcm9sbCBvbiBtYWluIGxpc3QsIG5vdCBpbnNpZGUgc2luZ2xlIHBhZ2VzXG59KTtcblxuLyogaGFuZGxlIGNsZWFyaW5nIHBhZ2UgZmlsdGVyICovXG4kKCdib2R5Jykub24oJ2NsaWNrJywgJy5qc19fcmVzZXQtcGFnZXMtZmlsdGVyJywgKGV2ZW50KSA9PiB7XG4gICAgJCgnLm1lZGlhLWxpc3QtdGl0bGUgLnBhZ2UtaW5kaWNhdG9yJykuaHRtbCgnQWxsIFBhZ2VzJyk7IC8vIHNldCBpbmRpY2F0aW9uXG4gICAgY2xlYW5GaWxlc0xpc3QoKTtcbiAgICByZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyKCk7XG4gICAgJCgnLmpzX19yZXNldC1wYWdlcy1maWx0ZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7IC8vIHJlbW92ZSByZXNldCBwYWdlcyBpY29uXG4gICAgJCgnLmpzX19maWxlLXVwbG9hZGVyJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICQoJy5qc19fYnV0dG9uLWNsZWFyLW1lZGlhLWNhY2hlJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgIGRlbGV0ZSBmaWx0ZXJzWydwYWdlJ107XG5cbiAgICBmaWx0ZXJGaWxlcygpO1xufSk7XG5cbi8qIGhhbmRsZSBpbmZpbml0ZSBsb2FkaW5nICovXG52YXIgZW5hYmxlSW5maW5pdGVTY3JvbGxpbmcgPSBmdW5jdGlvbiBlbmFibGVJbmZpbml0ZVNjcm9sbGluZygpIHtcbiAgICAkKCcuc3Bpbm5pbmctd2hlZWwnKS5oaWRlKCk7XG4gICAgdmFyIHZpZXcgPSAkKCcubWVkaWFwaWNrZXItc2Nyb2xsJykubGFzdCgpO1xuXG4gICAgaWYgKCF2aWV3Lmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICQodmlldykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoKCQodGhpcykuc2Nyb2xsVG9wKCkgKyAkKHRoaXMpLmlubmVySGVpZ2h0KCkgKyAxMDApID49ICQodGhpcylbMF0uc2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgICAgICBmaWxsVmlldygpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG52YXIgbG9hZE5leHRCYXRjaCA9IGZ1bmN0aW9uIGxvYWROZXh0QmF0Y2goY2FsbGJhY2spIHtcbiAgICBpZiAoZmlsZXNfZW5kZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvYWRNZWRpYSh7fSwgZnVuY3Rpb24oY29udGVudCkge1xuICAgICAgICBpZiAoISQoY29udGVudCkubGVuZ3RoIHx8ICgoY29udGVudC5zcGxpdCgnY2FyZC1pdGVtJykubGVuZ3RoIC0gMSkgPCBNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMKSkge1xuICAgICAgICAgICAgZmlsZXNfZW5kZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICQoJy5tZWRpYS1jb250YWluZXIgLm1lZGlhLXJhbmdlJykudHJpZ2dlcignaW5wdXQnKTtcbiAgICB9KTtcbn07XG5cbnZhciBmaWxsVmlldyA9IGZ1bmN0aW9uIGZpbGxWaWV3KCkge1xuICAgIGlmICghJCgnLmpzX19maWxlcycpLmZpbmQoJy5jYXJkLWl0ZW0nKS5sYXN0KCkub2Zmc2V0KCkpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIHJldHJ5IGxhdGVyXG4gICAgICAgICAgICBmaWxsVmlldygpO1xuICAgICAgICB9LCAzMDApO1xuXG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJCgnLmpzX19maWxlcycpLmZpbmQoJy5jYXJkLWl0ZW0nKS5sYXN0KCkub2Zmc2V0KCkudG9wIC0gMSA8PSAkKCcubWVkaWEtY29udGFpbmVyJykuaGVpZ2h0KCkpIHtcbiAgICAgICAgbG9hZE5leHRCYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbi8qIGRpc2FibGUgaW5maW5pdGUgbG9hZGluZyAqL1xudmFyIGRpc2FibGVJbmZpbml0ZVNjcm9sbGluZyA9IGZ1bmN0aW9uIGRpc2FibGVJbmZpbml0ZVNjcm9sbGluZygpIHtcbiAgICAkKCcuc3Bpbm5pbmctd2hlZWwnKS5oaWRlKCk7XG4gICAgJCgnLmNvbnRlbnQtd3JhcHBlcicpLnVuYmluZCgnc2Nyb2xsJyk7XG59O1xuXG4kKCcuanNfX2ZpbGVzJykub24oJ2ZpbGxWaWV3JywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAvLyB0aGUgZmlyc3QgYmF0Y2ggZ290IHRoZSBtYXggbnVtYmVyIG9mIG1lZGlhIGZpbGVzLCB0cnkgbG9hZGluZyBtb3JlXG4gICAgaWYgKCgkKCcuanNfX2ZpbGVzJylbMF0uaW5uZXJIVE1MLnNwbGl0KCdjYXJkLWl0ZW0nKS5sZW5ndGggLSAxKSA9PT0gTUVESUFfUEFHSU5BVElPTl9JTlRFUlZBTCkge1xuICAgICAgICBmaWxsVmlldygpO1xuICAgICAgICBlbmFibGVJbmZpbml0ZVNjcm9sbGluZygpO1xuICAgIH1cbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJjb25maWciLCJ1cmlfcGFyYW1zIiwicmVxdWVzdCIsIkZpbHRlciIsIlVSSSIsImJhc2VfdXJsX3JlbGF0aXZlIiwibmFtZSIsInZhbHVlIiwiZmlsdGVyZWQiLCJrZXlzIiwiT2JqZWN0IiwiaW5kZXhPZiIsInB1c2giLCJmb3JFYWNoIiwia2V5IiwiZmlsdGVyIiwiY2xlYW5WYWx1ZSIsInBhcmFtX3NlcCIsImdsb2JhbCIsImxvY2F0aW9uIiwiam9pbiIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJJbnN0YW5jZSIsImlzTG9hZGluZyIsImZpbHRlcnMiLCJnbG9iYWxfaW5kZXgiLCJmaWxlc19lbmRlZCIsIk1FRElBX1BBR0lOQVRJT05fSU5URVJWQUwiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZpbHRlck5hbWUiLCJkYXRhIiwiZmlsdGVyVmFsdWUiLCJ2YWwiLCJmaWx0ZXJGaWxlcyIsImRyb3B6b25lIiwiYm9keSIsInBhZ2UiLCJkYXRlIiwidHlwZSIsImZpbGVzIiwiZmlsZSIsInByZXZpZXdFbGVtZW50IiwicmVtb3ZlIiwiZmlyc3QiLCJyZW1vdmVDbGFzcyIsIm1ldGhvZCIsImxvYWRNZWRpYSIsImNhbGxiYWNrIiwidXJsIiwic3BsaXQiLCJzaG93IiwiZ2V0IiwiY29udGVudCIsImFwcGVuZCIsImhpZGUiLCJ0cmlnZ2VyIiwiY2xlYW5GaWxlc0xpc3QiLCJyZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyIiwic2hvd0VtcHR5U3RhdGUiLCJ0cmltIiwibGVuZ3RoIiwiaHRtbCIsInBhcmVudHMiLCJhZGRDbGFzcyIsIm9wdGlvbnMiLCJkaXNhYmxlSW5maW5pdGVTY3JvbGxpbmciLCJlbmFibGVJbmZpbml0ZVNjcm9sbGluZyIsInZpZXciLCJsYXN0Iiwic2Nyb2xsVG9wIiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJmaWxsVmlldyIsImxvYWROZXh0QmF0Y2giLCJmaW5kIiwib2Zmc2V0Iiwic2V0VGltZW91dCIsInRvcCIsImhlaWdodCIsInVuYmluZCIsImlubmVySFRNTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/media/index.js\n");
/***/ }),
/***/ "./app/pages/filter.js":
/*!*****************************!*\
!*** ./app/pages/filter.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PagesFilter),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tree */ \"./app/pages/tree.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_selectize_required_fix_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/selectize-required-fix.js */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_7__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n\n\n\n/* @formatter:off */\n\n/* eslint-disable */\n\nvar options = [{\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.MODULE,\n key: 'Module',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.VISIBLE,\n key: 'Visible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ROUTABLE,\n key: 'Routable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.PUBLISHED,\n key: 'Published',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_MODULE,\n key: 'NonModule',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_VISIBLE,\n key: 'NonVisible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_ROUTABLE,\n key: 'NonRoutable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_PUBLISHED,\n key: 'NonPublished',\n cat: 'mode'\n}];\n/* @formatter:on */\n\n/* eslint-enable */\n\nvar PagesFilter = /*#__PURE__*/function () {\n function PagesFilter(filters, search) {\n var _this = this;\n\n _classCallCheck(this, PagesFilter);\n\n this.filters = jquery__WEBPACK_IMPORTED_MODULE_0___default()(filters);\n this.search = jquery__WEBPACK_IMPORTED_MODULE_0___default()(search);\n this.options = options;\n this.tree = _tree__WEBPACK_IMPORTED_MODULE_4__.Instance;\n var storage = JSON.parse(localStorage.getItem('grav:admin:pages:filter') || '{}');\n\n if (!this.filters.length || !this.search.length) {\n return;\n }\n\n this.labels = this.filters.data('filter-labels');\n this.search.on('input', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function () {\n return _this.filter();\n }, 250));\n this.filters.on('change', function () {\n return _this.filter();\n }); // restore state\n\n if (storage.flags || storage.query) {\n this.setValues(storage);\n this.filter();\n }\n\n this._initSelectize();\n }\n\n _createClass(PagesFilter, [{\n key: \"filter\",\n value: function filter(value) {\n var _this2 = this;\n\n var data = {\n flags: '',\n query: ''\n };\n\n if (_typeof(value) === 'object') {\n Object.assign(data, value);\n }\n\n if (typeof value === 'string') {\n data.query = value;\n }\n\n if (typeof value === 'undefined') {\n data.flags = this.filters.val();\n data.query = this.search.val();\n }\n\n if (!Object.keys(data).filter(function (key) {\n return data[key] !== '';\n }).length) {\n this.resetValues();\n return;\n }\n\n data.flags = data.flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',');\n this.setValues({\n flags: data.flags,\n query: data.query\n }, 'silent');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/pages-filter.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"filterPages\"), {\n method: 'post',\n body: data\n }, function (response) {\n _this2.refreshDOM(response);\n });\n }\n }, {\n key: \"refreshDOM\",\n value: function refreshDOM(response) {\n var _this3 = this;\n\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-nav-id]');\n\n if (!response) {\n items.removeClass('search-match').show();\n this.tree.restore();\n return;\n }\n\n items.removeClass('search-match').hide();\n response.results.forEach(function (page) {\n var match = items.filter(\"[data-nav-id=\\\"\".concat(page, \"\\\"]\")).addClass('search-match').show();\n match.parents('[data-nav-id]').addClass('search-match').show();\n\n _this3.tree.expand(page, 'no-store');\n });\n }\n }, {\n key: \"setValues\",\n value: function setValues(_ref, silent) {\n var _ref$flags = _ref.flags,\n flags = _ref$flags === void 0 ? '' : _ref$flags,\n _ref$query = _ref.query,\n query = _ref$query === void 0 ? '' : _ref$query;\n var flagsArray = flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',').split(',');\n\n if (this.filters.val() !== flags) {\n var selectize = this.filters.data('selectize');\n this.filters[selectize ? 'setValue' : 'val'](flagsArray, silent);\n }\n\n if (this.search.val() !== query) {\n this.search.val(query);\n }\n\n localStorage.setItem('grav:admin:pages:filter', JSON.stringify({\n flags: flags,\n query: query\n }));\n }\n }, {\n key: \"resetValues\",\n value: function resetValues() {\n this.setValues('', 'silent');\n this.refreshDOM();\n }\n }, {\n key: \"_initSelectize\",\n value: function _initSelectize() {\n var _this4 = this;\n\n var extras = {\n type: this.filters.data('filter-types') || {},\n access: this.filters.data('filter-access-levels') || {}\n };\n Object.keys(extras).forEach(function (cat) {\n Object.keys(extras[cat]).forEach(function (key) {\n _this4.options.push({\n cat: cat,\n key: key,\n flag: extras[cat][key]\n });\n });\n });\n this.filters.selectize({\n maxItems: null,\n valueField: 'key',\n labelField: 'flag',\n searchField: ['flag', 'key'],\n options: this.options,\n optgroups: this.labels,\n optgroupField: 'cat',\n optgroupLabelField: 'name',\n optgroupValueField: 'id',\n optgroupOrder: this.labels.map(function (item) {\n return item.id;\n }),\n plugins: ['optgroup_columns', 'required-fix']\n });\n }\n }]);\n\n return PagesFilter;\n}();\n\n\nvar Instance = new PagesFilter('input[name=\"page-filter\"]', 'input[name=\"page-search\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RCxZQUFBQSxHQUFHLEVBQUhBLEdBRGM7QUFFZEQsWUFBQUEsR0FBRyxFQUFIQSxHQUZjO0FBR2RILFlBQUFBLElBQUksRUFBRTZELE1BQU0sQ0FBQ3pELEdBQUQsQ0FBTixDQUFZRCxHQUFaO0FBSFEsV0FBbEI7QUFLSCxTQU5EO0FBT0gsT0FSRDtBQVVBLFdBQUtVLE9BQUwsQ0FBYTZDLFNBQWIsQ0FBdUI7QUFDbkJPLFFBQUFBLFFBQVEsRUFBRSxJQURTO0FBRW5CQyxRQUFBQSxVQUFVLEVBQUUsS0FGTztBQUduQkMsUUFBQUEsVUFBVSxFQUFFLE1BSE87QUFJbkJDLFFBQUFBLFdBQVcsRUFBRSxDQUFDLE1BQUQsRUFBUyxLQUFULENBSk07QUFLbkJyRSxRQUFBQSxPQUFPLEVBQUUsS0FBS0EsT0FMSztBQU1uQnNFLFFBQUFBLFNBQVMsRUFBRSxLQUFLL0MsTUFORztBQU9uQmdELFFBQUFBLGFBQWEsRUFBRSxLQVBJO0FBUW5CQyxRQUFBQSxrQkFBa0IsRUFBRSxNQVJEO0FBU25CQyxRQUFBQSxrQkFBa0IsRUFBRSxJQVREO0FBVW5CQyxRQUFBQSxhQUFhLEVBQUUsS0FBS25ELE1BQUwsQ0FBWW9ELEdBQVosQ0FBZ0IsVUFBQ0MsSUFBRDtBQUFBLGlCQUFVQSxJQUFJLENBQUNDLEVBQWY7QUFBQSxTQUFoQixDQVZJO0FBV25CQyxRQUFBQSxPQUFPLEVBQUUsQ0FBQyxrQkFBRCxFQUFxQixjQUFyQjtBQVhVLE9BQXZCO0FBYUg7Ozs7Ozs7QUFHTCxJQUFJaEYsUUFBUSxHQUFHLElBQUllLFdBQUosQ0FBZ0IsMkJBQWhCLEVBQTZDLDJCQUE3QyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9maWx0ZXIuanM/NDc0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdkZWJvdW5jZSc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBwYWdlc1RyZWUgfSBmcm9tICcuL3RyZWUnO1xuaW1wb3J0ICdzZWxlY3RpemUnO1xuaW1wb3J0ICcuLi91dGlscy9zZWxlY3RpemUtcmVxdWlyZWQtZml4LmpzJztcbmltcG9ydCAnLi4vdXRpbHMvc3RvcmFnZSc7XG5cbi8qIEBmb3JtYXR0ZXI6b2ZmICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuY29uc3Qgb3B0aW9ucyA9IFtcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTU9EVUxFLCAgICAgICAga2V5OiAnTW9kdWxlJywgICAgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5WSVNJQkxFLCAgICAgICBrZXk6ICdWaXNpYmxlJywgICAgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5ST1VUQUJMRSwgICAgICBrZXk6ICdSb3V0YWJsZScsICAgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5QVUJMSVNIRUQsICAgICBrZXk6ICdQdWJsaXNoZWQnLCAgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5OT05fTU9EVUxFLCAgICBrZXk6ICdOb25Nb2R1bGUnLCAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PTl9WSVNJQkxFLCAgIGtleTogJ05vblZpc2libGUnLCAgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PTl9ST1VUQUJMRSwgIGtleTogJ05vblJvdXRhYmxlJywgIGNhdDogJ21vZGUnIH0sXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PTl9QVUJMSVNIRUQsIGtleTogJ05vblB1Ymxpc2hlZCcsIGNhdDogJ21vZGUnIH1cbl07XG4vKiBAZm9ybWF0dGVyOm9uICovXG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VzRmlsdGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWx0ZXJzLCBzZWFyY2gpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gJChmaWx0ZXJzKTtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSAkKHNlYXJjaCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMudHJlZSA9IHBhZ2VzVHJlZTtcbiAgICAgICAgbGV0IHN0b3JhZ2UgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdncmF2OmFkbWluOnBhZ2VzOmZpbHRlcicpIHx8ICd7fScpO1xuXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJzLmxlbmd0aCB8fCAhdGhpcy5zZWFyY2gubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMubGFiZWxzID0gdGhpcy5maWx0ZXJzLmRhdGEoJ2ZpbHRlci1sYWJlbHMnKTtcblxuICAgICAgICB0aGlzLnNlYXJjaC5vbignaW5wdXQnLCBkZWJvdW5jZSgoKSA9PiB0aGlzLmZpbHRlcigpLCAyNTApKTtcbiAgICAgICAgdGhpcy5maWx0ZXJzLm9uKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLmZpbHRlcigpKTtcblxuICAgICAgICAvLyByZXN0b3JlIHN0YXRlXG4gICAgICAgIGlmIChzdG9yYWdlLmZsYWdzIHx8IHN0b3JhZ2UucXVlcnkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzKHN0b3JhZ2UpO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luaXRTZWxlY3RpemUoKTtcbiAgICB9XG5cbiAgICBmaWx0ZXIodmFsdWUpIHtcbiAgICAgICAgbGV0IGRhdGEgPSB7IGZsYWdzOiAnJywgcXVlcnk6ICcnIH07XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBkYXRhLnF1ZXJ5ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRhdGEuZmxhZ3MgPSB0aGlzLmZpbHRlcnMudmFsKCk7XG4gICAgICAgICAgICBkYXRhLnF1ZXJ5ID0gdGhpcy5zZWFyY2gudmFsKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGRhdGEpLmZpbHRlcigoa2V5KSA9PiBkYXRhW2tleV0gIT09ICcnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRWYWx1ZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGEuZmxhZ3MgPSBkYXRhLmZsYWdzLnJlcGxhY2UoLyhcXHN7MSx9KT8sKFxcc3sxLH0pPy9nLCAnLCcpO1xuICAgICAgICB0aGlzLnNldFZhbHVlcyh7IGZsYWdzOiBkYXRhLmZsYWdzLCBxdWVyeTogZGF0YS5xdWVyeSB9LCAnc2lsZW50Jyk7XG5cbiAgICAgICAgcmVxdWVzdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3BhZ2VzLWZpbHRlci5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9ZmlsdGVyUGFnZXNgLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hET00ocmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWZyZXNoRE9NKHJlc3BvbnNlKSB7XG4gICAgICAgIGxldCBpdGVtcyA9ICQoJ1tkYXRhLW5hdi1pZF0nKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpdGVtcy5yZW1vdmVDbGFzcygnc2VhcmNoLW1hdGNoJykuc2hvdygpO1xuICAgICAgICAgICAgdGhpcy50cmVlLnJlc3RvcmUoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbXMucmVtb3ZlQ2xhc3MoJ3NlYXJjaC1tYXRjaCcpLmhpZGUoKTtcblxuICAgICAgICByZXNwb25zZS5yZXN1bHRzLmZvckVhY2goKHBhZ2UpID0+IHtcbiAgICAgICAgICAgIGxldCBtYXRjaCA9IGl0ZW1zLmZpbHRlcihgW2RhdGEtbmF2LWlkPVwiJHtwYWdlfVwiXWApLmFkZENsYXNzKCdzZWFyY2gtbWF0Y2gnKS5zaG93KCk7XG4gICAgICAgICAgICBtYXRjaC5wYXJlbnRzKCdbZGF0YS1uYXYtaWRdJykuYWRkQ2xhc3MoJ3NlYXJjaC1tYXRjaCcpLnNob3coKTtcblxuICAgICAgICAgICAgdGhpcy50cmVlLmV4cGFuZChwYWdlLCAnbm8tc3RvcmUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWVzKHsgZmxhZ3MgPSAnJywgcXVlcnkgPSAnJ30sIHNpbGVudCkge1xuICAgICAgICBsZXQgZmxhZ3NBcnJheSA9IGZsYWdzLnJlcGxhY2UoLyhcXHN7MSx9KT8sKFxcc3sxLH0pPy9nLCAnLCcpLnNwbGl0KCcsJyk7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlcnMudmFsKCkgIT09IGZsYWdzKSB7XG4gICAgICAgICAgICBsZXQgc2VsZWN0aXplID0gdGhpcy5maWx0ZXJzLmRhdGEoJ3NlbGVjdGl6ZScpO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3NlbGVjdGl6ZSA/ICdzZXRWYWx1ZScgOiAndmFsJ10oZmxhZ3NBcnJheSwgc2lsZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWFyY2gudmFsKCkgIT09IHF1ZXJ5KSB7IHRoaXMuc2VhcmNoLnZhbChxdWVyeSk7IH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ3JhdjphZG1pbjpwYWdlczpmaWx0ZXInLCBKU09OLnN0cmluZ2lmeSh7IGZsYWdzLCBxdWVyeSB9KSk7XG4gICAgfVxuXG4gICAgcmVzZXRWYWx1ZXMoKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKCcnLCAnc2lsZW50Jyk7XG4gICAgICAgIHRoaXMucmVmcmVzaERPTSgpO1xuICAgIH1cblxuICAgIF9pbml0U2VsZWN0aXplKCkge1xuICAgICAgICBsZXQgZXh0cmFzID0ge1xuICAgICAgICAgICAgdHlwZTogdGhpcy5maWx0ZXJzLmRhdGEoJ2ZpbHRlci10eXBlcycpIHx8IHt9LFxuICAgICAgICAgICAgYWNjZXNzOiB0aGlzLmZpbHRlcnMuZGF0YSgnZmlsdGVyLWFjY2Vzcy1sZXZlbHMnKSB8fCB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIE9iamVjdC5rZXlzKGV4dHJhcykuZm9yRWFjaCgoY2F0KSA9PiB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhleHRyYXNbY2F0XSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBjYXQsXG4gICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgZmxhZzogZXh0cmFzW2NhdF1ba2V5XVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlsdGVycy5zZWxlY3RpemUoe1xuICAgICAgICAgICAgbWF4SXRlbXM6IG51bGwsXG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAna2V5JyxcbiAgICAgICAgICAgIGxhYmVsRmllbGQ6ICdmbGFnJyxcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkOiBbJ2ZsYWcnLCAna2V5J10sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICBvcHRncm91cHM6IHRoaXMubGFiZWxzLFxuICAgICAgICAgICAgb3B0Z3JvdXBGaWVsZDogJ2NhdCcsXG4gICAgICAgICAgICBvcHRncm91cExhYmVsRmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgIG9wdGdyb3VwVmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgICAgIG9wdGdyb3VwT3JkZXI6IHRoaXMubGFiZWxzLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCksXG4gICAgICAgICAgICBwbHVnaW5zOiBbJ29wdGdyb3VwX2NvbHVtbnMnLCAncmVxdWlyZWQtZml4J11cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5sZXQgSW5zdGFuY2UgPSBuZXcgUGFnZXNGaWx0ZXIoJ2lucHV0W25hbWU9XCJwYWdlLWZpbHRlclwiXScsICdpbnB1dFtuYW1lPVwicGFnZS1zZWFyY2hcIl0nKTtcbmV4cG9ydCB7IEluc3RhbmNlIH07XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInRyYW5zbGF0aW9ucyIsInJlcXVlc3QiLCJkZWJvdW5jZSIsIkluc3RhbmNlIiwicGFnZXNUcmVlIiwib3B0aW9ucyIsImZsYWciLCJQTFVHSU5fQURNSU4iLCJNT0RVTEUiLCJrZXkiLCJjYXQiLCJWSVNJQkxFIiwiUk9VVEFCTEUiLCJQVUJMSVNIRUQiLCJOT05fTU9EVUxFIiwiTk9OX1ZJU0lCTEUiLCJOT05fUk9VVEFCTEUiLCJOT05fUFVCTElTSEVEIiwiUGFnZXNGaWx0ZXIiLCJmaWx0ZXJzIiwic2VhcmNoIiwidHJlZSIsInN0b3JhZ2UiLCJKU09OIiwicGFyc2UiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwibGVuZ3RoIiwibGFiZWxzIiwiZGF0YSIsIm9uIiwiZmlsdGVyIiwiZmxhZ3MiLCJxdWVyeSIsInNldFZhbHVlcyIsIl9pbml0U2VsZWN0aXplIiwidmFsdWUiLCJPYmplY3QiLCJhc3NpZ24iLCJ2YWwiLCJrZXlzIiwicmVzZXRWYWx1ZXMiLCJyZXBsYWNlIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJyZWZyZXNoRE9NIiwiaXRlbXMiLCJyZW1vdmVDbGFzcyIsInNob3ciLCJyZXN0b3JlIiwiaGlkZSIsInJlc3VsdHMiLCJmb3JFYWNoIiwicGFnZSIsIm1hdGNoIiwiYWRkQ2xhc3MiLCJwYXJlbnRzIiwiZXhwYW5kIiwic2lsZW50IiwiZmxhZ3NBcnJheSIsInNwbGl0Iiwic2VsZWN0aXplIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImV4dHJhcyIsInR5cGUiLCJhY2Nlc3MiLCJwdXNoIiwibWF4SXRlbXMiLCJ2YWx1ZUZpZWxkIiwibGFiZWxGaWVsZCIsInNlYXJjaEZpZWxkIiwib3B0Z3JvdXBzIiwib3B0Z3JvdXBGaWVsZCIsIm9wdGdyb3VwTGFiZWxGaWVsZCIsIm9wdGdyb3VwVmFsdWVGaWVsZCIsIm9wdGdyb3VwT3JkZXIiLCJtYXAiLCJpdGVtIiwiaWQiLCJwbHVnaW5zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/filter.js\n");
/***/ }),
/***/ "./app/pages/index.js":
/*!****************************!*\
!*** ./app/pages/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ \"./app/pages/filter.js\");\n/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./page */ \"./app/pages/page/index.js\");\n\n\n\n\n\nvar pad = function pad(n, s) {\n return \"000\".concat(n).substr(-s);\n}; // Pages Ordering\n\n\nvar Ordering = null;\nvar orderingElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#ordering');\n\nif (orderingElement.length) {\n Ordering = new sortablejs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](orderingElement.get(0), {\n filter: '.ignore',\n onUpdate: function onUpdate() {\n /* Old single page index behavior\n let item = $(event.item);\n let index = orderingElement.children().index(item) + 1;\n $('[data-order]').val(index);\n */\n var indexes = [];\n var children = orderingElement.children();\n var padZero = (children.length + '').split('').length;\n children.each(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n indexes.push(item.data('id'));\n item.find('.page-order').text(\"\".concat(pad(index + 1, padZero), \".\"));\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-order]').val(indexes.join(','));\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[name=\"data[folder]\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var activeOrder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-id][data-active-id]');\n activeOrder.data('id', target.val());\n Ordering.options.onUpdate();\n });\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Ordering: Ordering,\n Page: _page__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n PageFilters: {\n PageFilters: _filter__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Instance: _filter__WEBPACK_IMPORTED_MODULE_2__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTU0sR0FBRyxHQUFHLFNBQU5BLEdBQU0sQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsU0FBVSxhQUFPRCxDQUFQLEVBQVlFLE1BQVosQ0FBbUIsQ0FBQ0QsQ0FBcEIsQ0FBVjtBQUFBLENBQVosRUFFQTs7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHLElBQWY7QUFDQSxJQUFJQyxlQUFlLEdBQUdYLDZDQUFDLENBQUMsV0FBRCxDQUF2Qjs7QUFDQSxJQUFJVyxlQUFlLENBQUNDLE1BQXBCLEVBQTRCO0FBQ3hCRixFQUFBQSxRQUFRLEdBQUcsSUFBSVQsa0RBQUosQ0FBYVUsZUFBZSxDQUFDRSxHQUFoQixDQUFvQixDQUFwQixDQUFiLEVBQXFDO0FBQzVDQyxJQUFBQSxNQUFNLEVBQUUsU0FEb0M7QUFFNUNDLElBQUFBLFFBQVEsRUFBRSxvQkFBVztBQUNqQjtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBR1ksVUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxVQUFNQyxRQUFRLEdBQUdOLGVBQWUsQ0FBQ00sUUFBaEIsRUFBakI7QUFDQSxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0QsUUFBUSxDQUFDTCxNQUFULEdBQWtCLEVBQW5CLEVBQXVCTyxLQUF2QixDQUE2QixFQUE3QixFQUFpQ1AsTUFBakQ7QUFDQUssTUFBQUEsUUFBUSxDQUFDRyxJQUFULENBQWMsVUFBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWlCO0FBQzNCQSxRQUFBQSxJQUFJLEdBQUd0Qiw2Q0FBQyxDQUFDc0IsSUFBRCxDQUFSO0FBQ0FOLFFBQUFBLE9BQU8sQ0FBQ08sSUFBUixDQUFhRCxJQUFJLENBQUNFLElBQUwsQ0FBVSxJQUFWLENBQWI7QUFDQUYsUUFBQUEsSUFBSSxDQUFDRyxJQUFMLENBQVUsYUFBVixFQUF5QkMsSUFBekIsV0FBaUNwQixHQUFHLENBQUNlLEtBQUssR0FBRyxDQUFULEVBQVlILE9BQVosQ0FBcEM7QUFDSCxPQUpEO0FBTUFsQixNQUFBQSw2Q0FBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQjJCLEdBQWxCLENBQXNCWCxPQUFPLENBQUNZLElBQVIsQ0FBYSxHQUFiLENBQXRCO0FBQ0g7QUFwQjJDLEdBQXJDLENBQVg7QUF1QkE1QixFQUFBQSw2Q0FBQyxDQUFDNkIsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHVCQUF4QixFQUFpRCxVQUFDQyxLQUFELEVBQVc7QUFDeEQsUUFBTUMsTUFBTSxHQUFHaEMsNkNBQUMsQ0FBQytCLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLFFBQU1DLFdBQVcsR0FBR2xDLDZDQUFDLENBQUMsMkJBQUQsQ0FBckI7QUFFQWtDLElBQUFBLFdBQVcsQ0FBQ1YsSUFBWixDQUFpQixJQUFqQixFQUF1QlEsTUFBTSxDQUFDTCxHQUFQLEVBQXZCO0FBRUFqQixJQUFBQSxRQUFRLENBQUN5QixPQUFULENBQWlCcEIsUUFBakI7QUFDSCxHQVBEO0FBU0g7O0FBRUQsaUVBQWU7QUFDWEwsRUFBQUEsUUFBUSxFQUFSQSxRQURXO0FBRVhMLEVBQUFBLElBQUksRUFBSkEsNkNBRlc7QUFHWEgsRUFBQUEsV0FBVyxFQUFFO0FBQ1RBLElBQUFBLFdBQVcsRUFBWEEsK0NBRFM7QUFFVEMsSUFBQUEsUUFBUSxFQUFFQyw2Q0FBbUJBO0FBRnBCO0FBSEYsQ0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvaW5kZXguanM/N2EzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnO1xuaW1wb3J0IFBhZ2VGaWx0ZXJzLCB7IEluc3RhbmNlIGFzIFBhZ2VGaWx0ZXJzSW5zdGFuY2UgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgUGFnZSBmcm9tICcuL3BhZ2UnO1xuXG5jb25zdCBwYWQgPSAobiwgcykgPT4gKGAwMDAke259YCkuc3Vic3RyKC1zKTtcblxuLy8gUGFnZXMgT3JkZXJpbmdcbmxldCBPcmRlcmluZyA9IG51bGw7XG5sZXQgb3JkZXJpbmdFbGVtZW50ID0gJCgnI29yZGVyaW5nJyk7XG5pZiAob3JkZXJpbmdFbGVtZW50Lmxlbmd0aCkge1xuICAgIE9yZGVyaW5nID0gbmV3IFNvcnRhYmxlKG9yZGVyaW5nRWxlbWVudC5nZXQoMCksIHtcbiAgICAgICAgZmlsdGVyOiAnLmlnbm9yZScsXG4gICAgICAgIG9uVXBkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8qIE9sZCBzaW5nbGUgcGFnZSBpbmRleCBiZWhhdmlvclxuXG4gICAgICAgICAgICBsZXQgaXRlbSA9ICQoZXZlbnQuaXRlbSk7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSBvcmRlcmluZ0VsZW1lbnQuY2hpbGRyZW4oKS5pbmRleChpdGVtKSArIDE7XG4gICAgICAgICAgICAkKCdbZGF0YS1vcmRlcl0nKS52YWwoaW5kZXgpO1xuICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbGV0IGluZGV4ZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gb3JkZXJpbmdFbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICBjb25zdCBwYWRaZXJvID0gKGNoaWxkcmVuLmxlbmd0aCArICcnKS5zcGxpdCgnJykubGVuZ3RoO1xuICAgICAgICAgICAgY2hpbGRyZW4uZWFjaCgoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtID0gJChpdGVtKTtcbiAgICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaXRlbS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbmQoJy5wYWdlLW9yZGVyJykudGV4dChgJHtwYWQoaW5kZXggKyAxLCBwYWRaZXJvKX0uYCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnW2RhdGEtb3JkZXJdJykudmFsKGluZGV4ZXMuam9pbignLCcpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2lucHV0JywgJ1tuYW1lPVwiZGF0YVtmb2xkZXJdXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9yZGVyID0gJCgnW2RhdGEtaWRdW2RhdGEtYWN0aXZlLWlkXScpO1xuXG4gICAgICAgIGFjdGl2ZU9yZGVyLmRhdGEoJ2lkJywgdGFyZ2V0LnZhbCgpKTtcblxuICAgICAgICBPcmRlcmluZy5vcHRpb25zLm9uVXBkYXRlKCk7XG4gICAgfSk7XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIE9yZGVyaW5nLFxuICAgIFBhZ2UsXG4gICAgUGFnZUZpbHRlcnM6IHtcbiAgICAgICAgUGFnZUZpbHRlcnMsXG4gICAgICAgIEluc3RhbmNlOiBQYWdlRmlsdGVyc0luc3RhbmNlXG4gICAgfVxufTtcbiJdLCJuYW1lcyI6WyIkIiwiU29ydGFibGUiLCJQYWdlRmlsdGVycyIsIkluc3RhbmNlIiwiUGFnZUZpbHRlcnNJbnN0YW5jZSIsIlBhZ2UiLCJwYWQiLCJuIiwicyIsInN1YnN0ciIsIk9yZGVyaW5nIiwib3JkZXJpbmdFbGVtZW50IiwibGVuZ3RoIiwiZ2V0IiwiZmlsdGVyIiwib25VcGRhdGUiLCJpbmRleGVzIiwiY2hpbGRyZW4iLCJwYWRaZXJvIiwic3BsaXQiLCJlYWNoIiwiaW5kZXgiLCJpdGVtIiwicHVzaCIsImRhdGEiLCJmaW5kIiwidGV4dCIsInZhbCIsImpvaW4iLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiYWN0aXZlT3JkZXIiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/index.js\n");
/***/ }),
/***/ "./app/pages/page/add.js":
/*!*******************************!*\
!*** ./app/pages/page/add.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar custom = false;\nvar folder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[folder]\"], [data-remodal-id=\"module\"] input[name=\"data[folder]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[folder]\"]');\nvar title = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[title]\"], [data-remodal-id=\"module\"] input[name=\"data[title]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[title]\"]');\n\nvar getFields = function getFields(type, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var query = \"[data-remodal-id=\\\"\".concat(target.closest('[data-remodal-id]').data('remodal-id'), \"\\\"]\");\n return {\n title: type === 'title' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[title]\\\"]\")),\n folder: type === 'folder' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[folder]\\\"]\"))\n };\n};\n\ntitle.on('input focus blur', function (event) {\n if (custom) {\n return true;\n }\n\n var elements = getFields('title', event.currentTarget);\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(elements.title.val(), {\n custom: {\n \"'\": '',\n '': '',\n '': ''\n }\n });\n elements.folder.val(slug);\n});\nfolder.on('input', function (event) {\n var elements = getFields('folder', event.currentTarget);\n var input = elements.folder.get(0);\n var value = elements.folder.val();\n var selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n value = value.toLowerCase().replace(/\\s/g, '-').replace(/[^a-z0-9_\\-]/g, '');\n elements.folder.val(value);\n custom = !!value; // restore cursor position\n\n input.setSelectionRange(selection.start, selection.end);\n});\nfolder.on('focus blur', function (event) {\n return getFields('title', event.currentTarget).title.trigger('input');\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[name=\"data[route]\"]', function (event) {\n var rawroute = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n var pageTemplate = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"data[name]\"]');\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"getChildTypes\");\n\n if (pageTemplate.length === 0) {\n return;\n }\n\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(URI, {\n method: 'post',\n body: {\n rawroute: rawroute\n }\n }, function (response) {\n var type = response.child_type;\n\n if (type !== '' && type !== 'default') {\n pageTemplate.val(type);\n pageTemplate.data('selectize').setValue(type);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OUMsQ0FBc0QsT0FBdEQsQ0FBWDtBQUFBLENBQXhCO0FBRUE5Qiw2Q0FBQyxDQUFDK0IsUUFBRCxDQUFELENBQVluQixFQUFaLENBQWUsUUFBZixFQUF5QixzQkFBekIsRUFBaUQsVUFBQ0MsS0FBRCxFQUFXO0FBQ3hELE1BQU1tQixRQUFRLEdBQUdoQyw2Q0FBQyxDQUFDYSxLQUFLLENBQUNFLGFBQVAsQ0FBRCxDQUF1QkcsR0FBdkIsRUFBakI7QUFDQSxNQUFNZSxZQUFZLEdBQUdqQyw2Q0FBQyxDQUFDLHFCQUFELENBQXRCO0FBQ0EsTUFBTWtDLEdBQUcsYUFBTWhDLGlFQUFOLDRCQUFnREEseURBQWhELGtCQUFUOztBQUVBLE1BQUkrQixZQUFZLENBQUNJLE1BQWIsS0FBd0IsQ0FBNUIsRUFBK0I7QUFDM0I7QUFDSDs7QUFFRHBDLEVBQUFBLDBEQUFPLENBQUNpQyxHQUFELEVBQU07QUFDVEksSUFBQUEsTUFBTSxFQUFFLE1BREM7QUFFVEMsSUFBQUEsSUFBSSxFQUFFO0FBQUVQLE1BQUFBLFFBQVEsRUFBUkE7QUFBRjtBQUZHLEdBQU4sRUFHSixVQUFDUSxRQUFELEVBQWM7QUFDYixRQUFNakMsSUFBSSxHQUFHaUMsUUFBUSxDQUFDQyxVQUF0Qjs7QUFDQSxRQUFJbEMsSUFBSSxLQUFLLEVBQVQsSUFBZUEsSUFBSSxLQUFLLFNBQTVCLEVBQXVDO0FBQ25DMEIsTUFBQUEsWUFBWSxDQUFDZixHQUFiLENBQWlCWCxJQUFqQjtBQUNBMEIsTUFBQUEsWUFBWSxDQUFDdEIsSUFBYixDQUFrQixXQUFsQixFQUErQitCLFFBQS9CLENBQXdDbkMsSUFBeEM7QUFDSDtBQUNKLEdBVE0sQ0FBUDtBQVVILENBbkJEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9wYWdlL2FkZC5qcz9iMjI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2pxdWVyeS11dGlscyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxubGV0IGN1c3RvbSA9IGZhbHNlO1xubGV0IGZvbGRlciA9ICQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbFwiXSBpbnB1dFtuYW1lPVwiZGF0YVtmb2xkZXJdXCJdLCBbZGF0YS1yZW1vZGFsLWlkPVwibW9kdWxlXCJdIGlucHV0W25hbWU9XCJkYXRhW2ZvbGRlcl1cIl0sIFtkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbC1wYWdlLWNvcHlcIl0gaW5wdXRbbmFtZT1cImRhdGFbZm9sZGVyXVwiXScpO1xubGV0IHRpdGxlID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cIm1vZGFsXCJdIGlucHV0W25hbWU9XCJkYXRhW3RpdGxlXVwiXSwgW2RhdGEtcmVtb2RhbC1pZD1cIm1vZHVsZVwiXSBpbnB1dFtuYW1lPVwiZGF0YVt0aXRsZV1cIl0sIFtkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbC1wYWdlLWNvcHlcIl0gaW5wdXRbbmFtZT1cImRhdGFbdGl0bGVdXCJdJyk7XG5sZXQgZ2V0RmllbGRzID0gKHR5cGUsIHRhcmdldCkgPT4ge1xuICAgIHRhcmdldCA9ICQodGFyZ2V0KTtcbiAgICBsZXQgcXVlcnkgPSBgW2RhdGEtcmVtb2RhbC1pZD1cIiR7dGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXJlbW9kYWwtaWRdJykuZGF0YSgncmVtb2RhbC1pZCcpfVwiXWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdHlwZSA9PT0gJ3RpdGxlJyA/ICQodGFyZ2V0KSA6ICQoYCR7cXVlcnl9IGlucHV0W25hbWU9XCJkYXRhW3RpdGxlXVwiXWApLFxuICAgICAgICBmb2xkZXI6IHR5cGUgPT09ICdmb2xkZXInID8gJCh0YXJnZXQpIDogJChgJHtxdWVyeX0gaW5wdXRbbmFtZT1cImRhdGFbZm9sZGVyXVwiXWApXG4gICAgfTtcbn07XG5cbnRpdGxlLm9uKCdpbnB1dCBmb2N1cyBibHVyJywgKGV2ZW50KSA9PiB7XG4gICAgaWYgKGN1c3RvbSkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIGxldCBlbGVtZW50cyA9IGdldEZpZWxkcygndGl0bGUnLCBldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgIGxldCBzbHVnID0gJC5zbHVnaWZ5KGVsZW1lbnRzLnRpdGxlLnZhbCgpLCB7Y3VzdG9tOiB7IFwiJ1wiOiAnJywgJ+KAmCc6ICcnLCAn4oCZJzogJycgfX0pO1xuICAgIGVsZW1lbnRzLmZvbGRlci52YWwoc2x1Zyk7XG59KTtcblxuZm9sZGVyLm9uKCdpbnB1dCcsIChldmVudCkgPT4ge1xuICAgIGxldCBlbGVtZW50cyA9IGdldEZpZWxkcygnZm9sZGVyJywgZXZlbnQuY3VycmVudFRhcmdldCk7XG5cbiAgICBsZXQgaW5wdXQgPSBlbGVtZW50cy5mb2xkZXIuZ2V0KDApO1xuICAgIGxldCB2YWx1ZSA9IGVsZW1lbnRzLmZvbGRlci52YWwoKTtcbiAgICBsZXQgc2VsZWN0aW9uID0ge1xuICAgICAgICBzdGFydDogaW5wdXQuc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgIGVuZDogaW5wdXQuc2VsZWN0aW9uRW5kXG4gICAgfTtcblxuICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJy0nKS5yZXBsYWNlKC9bXmEtejAtOV9cXC1dL2csICcnKTtcbiAgICBlbGVtZW50cy5mb2xkZXIudmFsKHZhbHVlKTtcbiAgICBjdXN0b20gPSAhIXZhbHVlO1xuXG4gICAgLy8gcmVzdG9yZSBjdXJzb3IgcG9zaXRpb25cbiAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24uc3RhcnQsIHNlbGVjdGlvbi5lbmQpO1xuXG59KTtcblxuZm9sZGVyLm9uKCdmb2N1cyBibHVyJywgKGV2ZW50KSA9PiBnZXRGaWVsZHMoJ3RpdGxlJywgZXZlbnQuY3VycmVudFRhcmdldCkudGl0bGUudHJpZ2dlcignaW5wdXQnKSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCAnW25hbWU9XCJkYXRhW3JvdXRlXVwiXScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHJhd3JvdXRlID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS52YWwoKTtcbiAgICBjb25zdCBwYWdlVGVtcGxhdGUgPSAkKCdbbmFtZT1cImRhdGFbbmFtZV1cIl0nKTtcbiAgICBjb25zdCBVUkkgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L2FqYXguanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldENoaWxkVHlwZXNgO1xuXG4gICAgaWYgKHBhZ2VUZW1wbGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJlcXVlc3QoVVJJLCB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiB7IHJhd3JvdXRlIH1cbiAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHJlc3BvbnNlLmNoaWxkX3R5cGU7XG4gICAgICAgIGlmICh0eXBlICE9PSAnJyAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIHBhZ2VUZW1wbGF0ZS52YWwodHlwZSk7XG4gICAgICAgICAgICBwYWdlVGVtcGxhdGUuZGF0YSgnc2VsZWN0aXplJykuc2V0VmFsdWUodHlwZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJyZXF1ZXN0IiwiY29uZmlnIiwiY3VzdG9tIiwiZm9sZGVyIiwidGl0bGUiLCJnZXRGaWVsZHMiLCJ0eXBlIiwidGFyZ2V0IiwicXVlcnkiLCJjbG9zZXN0IiwiZGF0YSIsIm9uIiwiZXZlbnQiLCJlbGVtZW50cyIsImN1cnJlbnRUYXJnZXQiLCJzbHVnIiwic2x1Z2lmeSIsInZhbCIsImlucHV0IiwiZ2V0IiwidmFsdWUiLCJzZWxlY3Rpb24iLCJzdGFydCIsInNlbGVjdGlvblN0YXJ0IiwiZW5kIiwic2VsZWN0aW9uRW5kIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ0cmlnZ2VyIiwiZG9jdW1lbnQiLCJyYXdyb3V0ZSIsInBhZ2VUZW1wbGF0ZSIsIlVSSSIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwibGVuZ3RoIiwibWV0aG9kIiwiYm9keSIsInJlc3BvbnNlIiwiY2hpbGRfdHlwZSIsInNldFZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/add.js\n");
/***/ }),
/***/ "./app/pages/page/delete.js":
/*!**********************************!*\
!*** ./app/pages/page/delete.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-target=\"delete\"]', function () {\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"] [data-delete-action]');\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-url');\n confirm.data('delete-action', link);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-delete-action]', function () {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"]').data('remodal')];\n __webpack_require__.g.location.href = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-action');\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9kZWxldGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGdDQUF4QixFQUEwRCxZQUFXO0FBQ2pFLE1BQUlDLE9BQU8sR0FBR0gsNkNBQUMsQ0FBQyxpREFBRCxDQUFmO0FBQ0EsTUFBSUksSUFBSSxHQUFHSiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSyxJQUFSLENBQWEsWUFBYixDQUFYO0FBRUFGLEVBQUFBLE9BQU8sQ0FBQ0UsSUFBUixDQUFhLGVBQWIsRUFBOEJELElBQTlCO0FBQ0gsQ0FMRDtBQU9BSiw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0Isc0JBQXhCLEVBQWdELFlBQVc7QUFDdkQsTUFBSUksT0FBTyxHQUFHTiw4REFBQSxDQUFpQkEsNkNBQUMsQ0FBQyw0QkFBRCxDQUFELENBQWdDSyxJQUFoQyxDQUFxQyxTQUFyQyxDQUFqQixDQUFkO0FBRUFHLEVBQUFBLHFCQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLElBQWhCLEdBQXVCViw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSyxJQUFSLENBQWEsZUFBYixDQUF2QjtBQUNBQyxFQUFBQSxPQUFPLENBQUNLLEtBQVI7QUFDSCxDQUxEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9wYWdlL2RlbGV0ZS5qcz8xMDE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLXRhcmdldD1cImRlbGV0ZVwiXScsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBjb25maXJtID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXSBbZGF0YS1kZWxldGUtYWN0aW9uXScpO1xuICAgIGxldCBsaW5rID0gJCh0aGlzKS5kYXRhKCdkZWxldGUtdXJsJyk7XG5cbiAgICBjb25maXJtLmRhdGEoJ2RlbGV0ZS1hY3Rpb24nLCBsaW5rKTtcbn0pO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZGVsZXRlLWFjdGlvbl0nLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXScpLmRhdGEoJ3JlbW9kYWwnKV07XG5cbiAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9ICQodGhpcykuZGF0YSgnZGVsZXRlLWFjdGlvbicpO1xuICAgIHJlbW9kYWwuY2xvc2UoKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiY29uZmlybSIsImxpbmsiLCJkYXRhIiwicmVtb2RhbCIsImxvb2t1cCIsImdsb2JhbCIsImxvY2F0aW9uIiwiaHJlZiIsImNsb3NlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/delete.js\n");
/***/ }),
/***/ "./app/pages/page/disable-buttons.js":
/*!*******************************************!*\
!*** ./app/pages/page/disable-buttons.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.disable-after-click').on('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass('pointer-events-disabled');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9kaXNhYmxlLWJ1dHRvbnMuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQyxzQkFBRCxDQUFELENBQTBCQyxFQUExQixDQUE2QixPQUE3QixFQUFzQyxZQUFXO0FBQzdDRCxFQUFBQSw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRRSxRQUFSLENBQWlCLHlCQUFqQjtBQUNILENBRkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvZGlzYWJsZS1idXR0b25zLmpzPzZiODEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJCgnLmRpc2FibGUtYWZ0ZXItY2xpY2snKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAkKHRoaXMpLmFkZENsYXNzKCdwb2ludGVyLWV2ZW50cy1kaXNhYmxlZCcpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIm9uIiwiYWRkQ2xhc3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/disable-buttons.js\n");
/***/ }),
/***/ "./app/pages/page/index.js":
/*!*********************************!*\
!*** ./app/pages/page/index.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _add__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add */ \"./app/pages/page/add.js\");\n/* harmony import */ var _move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./move */ \"./app/pages/page/move.js\");\n/* harmony import */ var _delete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete */ \"./app/pages/page/delete.js\");\n/* harmony import */ var _unset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./unset */ \"./app/pages/page/unset.js\");\n/* harmony import */ var _disable_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./disable-buttons */ \"./app/pages/page/disable-buttons.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./media */ \"./app/pages/page/media.js\");\n/* harmony import */ var _multilang__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./multilang */ \"./app/pages/page/multilang.js\");\n\n\n\n\n\n\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"mode-switch\"]');\n\nif (switcher) {\n var link = switcher.closest(':checked').data('leave-url');\n var fakeLink = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<a href=\\\"\".concat(link, \"\\\" />\"));\n switcher.parent().append(fakeLink);\n switcher.siblings('label').on('mousedown touchdown', function (event) {\n event.preventDefault(); // let remodal = $.remodal.lookup[$('[data-remodal-id=\"changes\"]').data('remodal')];\n\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"] [data-leave-action=\"continue\"]');\n confirm.one('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav');\n fakeLink.off('click._grav');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).trigger('click');\n });\n fakeLink.trigger('click._grav');\n });\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n link = radio.data('leave-url');\n setTimeout(function () {\n return fakeLink.attr('href', link).get(0).click();\n }, 5);\n });\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Media: {\n PageMedia: _media__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n PageMediaInstances: _media__WEBPACK_IMPORTED_MODULE_6__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1JLFFBQVEsR0FBR0osNkNBQUMsQ0FBQyx5Q0FBRCxDQUFsQjs7QUFFQSxJQUFJSSxRQUFKLEVBQWM7QUFDVixNQUFJQyxJQUFJLEdBQUdELFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFqQixFQUE2QkMsSUFBN0IsQ0FBa0MsV0FBbEMsQ0FBWDtBQUNBLE1BQUlDLFFBQVEsR0FBR1IsNkNBQUMscUJBQWFLLElBQWIsV0FBaEI7QUFFQUQsRUFBQUEsUUFBUSxDQUFDSyxNQUFULEdBQWtCQyxNQUFsQixDQUF5QkYsUUFBekI7QUFFQUosRUFBQUEsUUFBUSxDQUFDTyxRQUFULENBQWtCLE9BQWxCLEVBQTJCQyxFQUEzQixDQUE4QixxQkFBOUIsRUFBcUQsVUFBQ0MsS0FBRCxFQUFXO0FBQzVEQSxJQUFBQSxLQUFLLENBQUNDLGNBQU4sR0FENEQsQ0FHNUQ7O0FBQ0EsUUFBSUMsT0FBTyxHQUFHZiw2Q0FBQyxDQUFDLDREQUFELENBQWY7QUFFQWUsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksT0FBWixFQUFxQixZQUFNO0FBQ3ZCaEIsTUFBQUEsNkNBQUMsQ0FBQ2lCLHFCQUFELENBQUQsQ0FBVUwsRUFBVixDQUFhLG9CQUFiO0FBQ0FKLE1BQUFBLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhLGFBQWI7QUFFQWxCLE1BQUFBLDZDQUFDLENBQUNhLEtBQUssQ0FBQ00sTUFBUCxDQUFELENBQWdCQyxPQUFoQixDQUF3QixPQUF4QjtBQUNILEtBTEQ7QUFPQVosSUFBQUEsUUFBUSxDQUFDWSxPQUFULENBQWlCLGFBQWpCO0FBQ0gsR0FkRDtBQWdCQWhCLEVBQUFBLFFBQVEsQ0FBQ1EsRUFBVCxDQUFZLFFBQVosRUFBc0IsVUFBQ0MsS0FBRCxFQUFXO0FBQzdCLFFBQUlRLEtBQUssR0FBR3JCLDZDQUFDLENBQUNhLEtBQUssQ0FBQ00sTUFBUCxDQUFiO0FBQ0FkLElBQUFBLElBQUksR0FBR2dCLEtBQUssQ0FBQ2QsSUFBTixDQUFXLFdBQVgsQ0FBUDtBQUVBZSxJQUFBQSxVQUFVLENBQUM7QUFBQSxhQUFNZCxRQUFRLENBQUNlLElBQVQsQ0FBYyxNQUFkLEVBQXNCbEIsSUFBdEIsRUFBNEJtQixHQUE1QixDQUFnQyxDQUFoQyxFQUFtQ0MsS0FBbkMsRUFBTjtBQUFBLEtBQUQsRUFBbUQsQ0FBbkQsQ0FBVjtBQUNILEdBTEQ7QUFNSDs7QUFFRCxpRUFBZTtBQUNYQyxFQUFBQSxLQUFLLEVBQUU7QUFDSHpCLElBQUFBLFNBQVMsRUFBVEEsOENBREc7QUFFSEUsSUFBQUEsa0JBQWtCLEVBQWxCQSw0Q0FBa0JBO0FBRmY7QUFESSxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC9wYWdlcy9wYWdlL2luZGV4LmpzP2MwMWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi9hZGQnO1xuaW1wb3J0ICcuL21vdmUnO1xuaW1wb3J0ICcuL2RlbGV0ZSc7XG5pbXBvcnQgJy4vdW5zZXQnO1xuaW1wb3J0ICcuL2Rpc2FibGUtYnV0dG9ucyc7XG5pbXBvcnQgUGFnZU1lZGlhLCB7IEluc3RhbmNlIGFzIFBhZ2VNZWRpYUluc3RhbmNlcyB9IGZyb20gJy4vbWVkaWEnO1xuaW1wb3J0ICcuL211bHRpbGFuZyc7XG5cbmNvbnN0IHN3aXRjaGVyID0gJCgnaW5wdXRbdHlwZT1cInJhZGlvXCJdW25hbWU9XCJtb2RlLXN3aXRjaFwiXScpO1xuXG5pZiAoc3dpdGNoZXIpIHtcbiAgICBsZXQgbGluayA9IHN3aXRjaGVyLmNsb3Nlc3QoJzpjaGVja2VkJykuZGF0YSgnbGVhdmUtdXJsJyk7XG4gICAgbGV0IGZha2VMaW5rID0gJChgPGEgaHJlZj1cIiR7bGlua31cIiAvPmApO1xuXG4gICAgc3dpdGNoZXIucGFyZW50KCkuYXBwZW5kKGZha2VMaW5rKTtcblxuICAgIHN3aXRjaGVyLnNpYmxpbmdzKCdsYWJlbCcpLm9uKCdtb3VzZWRvd24gdG91Y2hkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gbGV0IHJlbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwWyQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJjaGFuZ2VzXCJdJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgbGV0IGNvbmZpcm0gPSAkKCdbZGF0YS1yZW1vZGFsLWlkPVwiY2hhbmdlc1wiXSBbZGF0YS1sZWF2ZS1hY3Rpb249XCJjb250aW51ZVwiXScpO1xuXG4gICAgICAgIGNvbmZpcm0ub25lKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICQoZ2xvYmFsKS5vbignYmVmb3JldW5sb2FkLl9ncmF2Jyk7XG4gICAgICAgICAgICBmYWtlTGluay5vZmYoJ2NsaWNrLl9ncmF2Jyk7XG5cbiAgICAgICAgICAgICQoZXZlbnQudGFyZ2V0KS50cmlnZ2VyKCdjbGljaycpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmYWtlTGluay50cmlnZ2VyKCdjbGljay5fZ3JhdicpO1xuICAgIH0pO1xuXG4gICAgc3dpdGNoZXIub24oJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgICBsZXQgcmFkaW8gPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxpbmsgPSByYWRpby5kYXRhKCdsZWF2ZS11cmwnKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZha2VMaW5rLmF0dHIoJ2hyZWYnLCBsaW5rKS5nZXQoMCkuY2xpY2soKSwgNSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBNZWRpYToge1xuICAgICAgICBQYWdlTWVkaWEsXG4gICAgICAgIFBhZ2VNZWRpYUluc3RhbmNlc1xuICAgIH1cbn07XG4iXSwibmFtZXMiOlsiJCIsIlBhZ2VNZWRpYSIsIkluc3RhbmNlIiwiUGFnZU1lZGlhSW5zdGFuY2VzIiwic3dpdGNoZXIiLCJsaW5rIiwiY2xvc2VzdCIsImRhdGEiLCJmYWtlTGluayIsInBhcmVudCIsImFwcGVuZCIsInNpYmxpbmdzIiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY29uZmlybSIsIm9uZSIsImdsb2JhbCIsIm9mZiIsInRhcmdldCIsInRyaWdnZXIiLCJyYWRpbyIsInNldFRpbWVvdXQiLCJhdHRyIiwiZ2V0IiwiY2xpY2siLCJNZWRpYSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/page/index.js\n");
/***/ }),
/***/ "./app/pages/page/media.js":
/*!*********************************!*\
!*** ./app/pages/page/media.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PageMedia),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _forms_fields_files__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../forms/fields/files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nvar previewTemplate = \"\\n <div class=\\\"dz-preview dz-file-preview\\\">\\n <div class=\\\"dz-details\\\">\\n <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n <div class=\\\"dz-size\\\" data-dz-size></div>\\n <img data-dz-thumbnail />\\n </div>\\n <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n <div class=\\\"dz-success-mark\\\"><span>\\u2714</span></div>\\n <div class=\\\"dz-error-mark\\\"><span>\\u2718</span></div>\\n <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n <a class=\\\"dz-remove\\\" title=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"</a>\\n <a class=\\\"dz-metadata\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-metadata>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"</a>\\n <a class=\\\"dz-view\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-view>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"</a>\\n <a class=\\\"dz-insert\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.INSERT, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-insert>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.INSERT, \"</a>\\n </div>\").trim();\n\nvar PageMedia = /*#__PURE__*/function (_FilesField) {\n _inherits(PageMedia, _FilesField);\n\n var _super = _createSuper(PageMedia);\n\n function PageMedia() {\n var _this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? '#grav-dropzone' : _ref$container,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n _classCallCheck(this, PageMedia);\n\n options = Object.assign(options, {\n previewTemplate: previewTemplate\n });\n _this = _super.call(this, {\n container: container,\n options: options\n });\n\n if (!_this.container.length) {\n return _possibleConstructorReturn(_this);\n }\n\n _this.urls = {\n fetch: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"listmedia\"),\n add: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"addmedia\"),\n \"delete\": \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"delmedia\")\n };\n _this.dropzone.options.url = _this.urls.add;\n\n if (typeof _this.options.fetchMedia === 'undefined' || _this.options.fetchMedia) {\n _this.fetchMedia();\n }\n\n if (typeof _this.options.attachDragDrop === 'undefined' || _this.options.attachDragDrop) {\n _this.attachDragDrop();\n }\n\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(_this.container.data('dropzone-field'), \"\\\"]\"));\n\n if (field.length) {\n _this.sortable = new sortablejs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](_this.container.get(0), {\n animation: 150,\n // forceFallback: true,\n setData: function setData(dataTransfer, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(uri);\n\n _this.dropzone.disable();\n\n target.addClass('hide-backface');\n dataTransfer.effectAllowed = 'copy';\n dataTransfer.setData('text', shortcode);\n },\n onSort: function onSort() {\n var names = [];\n\n _this.container.find('[data-dz-name]').each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n var name = file.text().trim();\n names.push(name);\n });\n\n field.val(names.join(','));\n }\n });\n }\n\n return _this;\n }\n\n _createClass(PageMedia, [{\n key: \"fetchMedia\",\n value: function fetchMedia() {\n var _this2 = this;\n\n var order = this.container.closest('.form-field').find('[name=\"data[header][media_order]\"]').val();\n var body = {\n uri: this.getURI(),\n order: order\n };\n var url = this.urls.fetch;\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(url, {\n method: 'post',\n body: body\n }, function (response) {\n var results = response.results;\n Object.keys(results).forEach(function (name) {\n var data = results[name];\n var mock = {\n name: name,\n size: data.size,\n accepted: true,\n extras: data\n };\n\n _this2.dropzone.files.push(mock);\n\n _this2.dropzone.options.addedfile.call(_this2.dropzone, mock);\n\n _this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url);\n });\n\n _this2.container.find('.dz-preview').prop('draggable', 'true');\n });\n }\n }, {\n key: \"onDropzoneSending\",\n value: function onDropzoneSending(file, xhr, formData) {\n /*\n // Cannot call super because Safari and IE API don't implement `delete`\n super.onDropzoneSending(file, xhr, formData);\n formData.delete('task');\n */\n formData.append('name', this.options.dotNotation || file.name);\n formData.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce);\n formData.append('uri', this.getURI());\n }\n }, {\n key: \"onDropzoneComplete\",\n value: function onDropzoneComplete(file) {\n _get(_getPrototypeOf(PageMedia.prototype), \"onDropzoneComplete\", this).call(this, file);\n\n if (this.sortable) {\n this.sortable.options.onSort();\n } // accepted\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dz-preview').prop('draggable', 'true');\n }\n }, {\n key: \"onDropzoneRemovedFile\",\n value: function onDropzoneRemovedFile(file) {\n var _get2;\n\n for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n extra[_key - 1] = arguments[_key];\n }\n\n (_get2 = _get(_getPrototypeOf(PageMedia.prototype), \"onDropzoneRemovedFile\", this)).call.apply(_get2, [this, file].concat(extra));\n\n if (this.sortable) {\n this.sortable.options.onSort();\n }\n }\n }, {\n key: \"attachDragDrop\",\n value: function attachDragDrop() {\n var _this3 = this;\n\n this.container.delegate('[data-dz-insert]', 'click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget).parent('.dz-preview').find('.dz-filename');\n var editor = _forms_fields_editor__WEBPACK_IMPORTED_MODULE_4__.Instance.editors.filter(function (index, editor) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).attr('name') === 'data[content]';\n });\n\n if (editor.length) {\n editor = editor.data('codemirror');\n editor.focus();\n var filename = encodeURI(target.text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(filename);\n editor.doc.replaceSelection(shortcode);\n }\n });\n this.container.delegate('[data-dz-view]', 'mouseenter', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var URL = target.closest('[data-media-path]').data('media-path');\n\n var original = _this3.dropzone.files.filter(function (file) {\n return encodeURI(file.name) === filename;\n }).shift();\n\n original = original && (original.extras && original.extras.original || encodeURI(original.name));\n target.attr('href', \"\".concat(URL, \"/\").concat(original));\n });\n this.container.delegate('[data-dz-metadata]', 'click', function (e) {\n e.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var fileObj = _this3.dropzone.files.filter(function (file) {\n return file.name === __webpack_require__.g.decodeURI(filename);\n }).shift() || {};\n\n if (!fileObj.extras) {\n fileObj.extras = {\n metadata: []\n };\n }\n\n if (Array.isArray(fileObj.extras.metadata) && !fileObj.extras.metadata.length) {\n fileObj.extras.metadata = {\n '': \"\".concat(__webpack_require__.g.decodeURI(filename), \".meta.yaml doesn't exist\")\n };\n }\n\n fileObj = fileObj.extras;\n var modal_element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').find('[data-remodal-id=\"metadata\"]');\n var modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n modal_element.find('h1 strong').html(filename);\n\n if (fileObj.url) {\n modal_element.find('.meta-preview').html(\"<img src=\\\"\".concat(fileObj.url, \"\\\" />\"));\n }\n\n var container = modal_element.find('.meta-content').html('<ul />').find('ul');\n Object.keys(fileObj.metadata).forEach(function (meta) {\n container.append(\"<li><strong>\".concat(meta ? meta + ':' : '', \"</strong> \").concat(fileObj.metadata[meta], \"</li>\"));\n });\n modal.open();\n });\n this.container.delegate('.dz-preview', 'dragstart', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(uri);\n\n _this3.dropzone.disable();\n\n target.addClass('hide-backface');\n e.originalEvent.dataTransfer.effectAllowed = 'copy';\n e.originalEvent.dataTransfer.setData('text', shortcode);\n });\n this.container.delegate('.dz-preview', 'dragend', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n\n _this3.dropzone.enable();\n\n target.removeClass('hide-backface');\n });\n }\n }]);\n\n return PageMedia;\n}(_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\nvar Instance = new PageMedia();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxDQUFDQyxhQUFILENBQWQ7QUFDQSxZQUFJM0MsR0FBRyxHQUFHQyxTQUFTLENBQUNGLE1BQU0sQ0FBQ0csSUFBUCxDQUFZLGNBQVosRUFBNEJDLElBQTVCLEVBQUQsQ0FBbkI7QUFDQSxZQUFJQyxTQUFTLEdBQUd2QyxrRUFBYSxDQUFDbUMsR0FBRCxDQUE3Qjs7QUFDQSxjQUFJLENBQUNYLFFBQUwsQ0FBY2dCLE9BQWQ7O0FBQ0FOLFFBQUFBLE1BQU0sQ0FBQ08sUUFBUCxDQUFnQixlQUFoQjtBQUNBb0MsUUFBQUEsQ0FBQyxDQUFDNEIsYUFBRixDQUFnQnhFLFlBQWhCLENBQTZCUyxhQUE3QixHQUE2QyxNQUE3QztBQUNBbUMsUUFBQUEsQ0FBQyxDQUFDNEIsYUFBRixDQUFnQnhFLFlBQWhCLENBQTZCRCxPQUE3QixDQUFxQyxNQUFyQyxFQUE2Q08sU0FBN0M7QUFDSCxPQVJEO0FBVUEsV0FBS3pCLFNBQUwsQ0FBZThELFFBQWYsQ0FBd0IsYUFBeEIsRUFBdUMsU0FBdkMsRUFBa0QsVUFBQ0MsQ0FBRCxFQUFPO0FBQ3JELFlBQUkzQyxNQUFNLEdBQUdyQyw2Q0FBQyxDQUFDZ0YsQ0FBQyxDQUFDQyxhQUFILENBQWQ7O0FBQ0EsY0FBSSxDQUFDdEQsUUFBTCxDQUFja0YsTUFBZDs7QUFDQXhFLFFBQUFBLE1BQU0sQ0FBQ3lFLFdBQVAsQ0FBbUIsZUFBbkI7QUFDSCxPQUpEO0FBS0g7Ozs7RUFqTGtDNUc7OztBQW9MaEMsSUFBSUksUUFBUSxHQUFHLElBQUlVLFNBQUosRUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS9tZWRpYS5qcz9lOWEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCBGaWxlc0ZpZWxkLCB7IFVyaVRvTWFya2Rvd24gfSBmcm9tICcuLi8uLi9mb3Jtcy9maWVsZHMvZmlsZXMnO1xuaW1wb3J0IHsgY29uZmlnLCB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBFZGl0b3IgfSBmcm9tICcuLi8uLi9mb3Jtcy9maWVsZHMvZWRpdG9yJztcbmltcG9ydCBTb3J0YWJsZSBmcm9tICdzb3J0YWJsZWpzJztcblxuY29uc3QgcHJldmlld1RlbXBsYXRlID0gYFxuICAgIDxkaXYgY2xhc3M9XCJkei1wcmV2aWV3IGR6LWZpbGUtcHJldmlld1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImR6LWRldGFpbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LWZpbGVuYW1lXCI+PHNwYW4gZGF0YS1kei1uYW1lPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LXNpemVcIiBkYXRhLWR6LXNpemU+PC9kaXY+XG4gICAgICAgIDxpbWcgZGF0YS1kei10aHVtYm5haWwgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImR6LXByb2dyZXNzXCI+PHNwYW4gY2xhc3M9XCJkei11cGxvYWRcIiBkYXRhLWR6LXVwbG9hZHByb2dyZXNzPjwvc3Bhbj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkei1zdWNjZXNzLW1hcmtcIj48c3Bhbj7inJQ8L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHotZXJyb3ItbWFya1wiPjxzcGFuPuKcmDwvc3Bhbj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkei1lcnJvci1tZXNzYWdlXCI+PHNwYW4gZGF0YS1kei1lcnJvcm1lc3NhZ2U+PC9zcGFuPjwvZGl2PlxuICAgICAgPGEgY2xhc3M9XCJkei1yZW1vdmVcIiB0aXRsZT1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5ERUxFVEV9XCIgaHJlZj1cImphdmFzY3JpcHQ6dW5kZWZpbmVkO1wiIGRhdGEtZHotcmVtb3ZlPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5ERUxFVEV9PC9hPlxuICAgICAgPGEgY2xhc3M9XCJkei1tZXRhZGF0YVwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk1FVEFEQVRBfVwiIGhyZWY9XCIjXCIgdGFyZ2V0PVwiX2JsYW5rXCIgZGF0YS1kei1tZXRhZGF0YT4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTUVUQURBVEF9PC9hPlxuICAgICAgPGEgY2xhc3M9XCJkei12aWV3XCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVklFV31cIiBocmVmPVwiI1wiIHRhcmdldD1cIl9ibGFua1wiIGRhdGEtZHotdmlldz4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVklFV308L2E+XG4gICAgICA8YSBjbGFzcz1cImR6LWluc2VydFwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLklOU0VSVH1cIiBocmVmPVwiamF2YXNjcmlwdDp1bmRlZmluZWQ7XCIgZGF0YS1kei1pbnNlcnQ+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLklOU0VSVH08L2E+XG4gICAgPC9kaXY+YC50cmltKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VNZWRpYSBleHRlbmRzIEZpbGVzRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKHsgY29udGFpbmVyID0gJyNncmF2LWRyb3B6b25lJywgb3B0aW9ucyA9IHt9IH0gPSB7fSkge1xuICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7IHByZXZpZXdUZW1wbGF0ZSB9KTtcbiAgICAgICAgc3VwZXIoeyBjb250YWluZXIsIG9wdGlvbnMgfSk7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXIubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMudXJscyA9IHtcbiAgICAgICAgICAgIGZldGNoOiBgJHt0aGlzLmNvbnRhaW5lci5kYXRhKCdtZWRpYS11cmwnKX0vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1saXN0bWVkaWFgLFxuICAgICAgICAgICAgYWRkOiBgJHt0aGlzLmNvbnRhaW5lci5kYXRhKCdtZWRpYS11cmwnKX0vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1hZGRtZWRpYWAsXG4gICAgICAgICAgICBkZWxldGU6IGAke3RoaXMuY29udGFpbmVyLmRhdGEoJ21lZGlhLXVybCcpfS90YXNrJHtjb25maWcucGFyYW1fc2VwfWRlbG1lZGlhYFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZHJvcHpvbmUub3B0aW9ucy51cmwgPSB0aGlzLnVybHMuYWRkO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmZldGNoTWVkaWEgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMub3B0aW9ucy5mZXRjaE1lZGlhKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoTWVkaWEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmF0dGFjaERyYWdEcm9wID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLm9wdGlvbnMuYXR0YWNoRHJhZ0Ryb3ApIHtcbiAgICAgICAgICAgIHRoaXMuYXR0YWNoRHJhZ0Ryb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gJChgW25hbWU9XCIke3RoaXMuY29udGFpbmVyLmRhdGEoJ2Ryb3B6b25lLWZpZWxkJyl9XCJdYCk7XG5cbiAgICAgICAgaWYgKGZpZWxkLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0YWJsZSA9IG5ldyBTb3J0YWJsZSh0aGlzLmNvbnRhaW5lci5nZXQoMCksIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgICAgICAvLyBmb3JjZUZhbGxiYWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNldERhdGE6IChkYXRhVHJhbnNmZXIsIHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSAkKHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmkgPSBlbmNvZGVVUkkodGFyZ2V0LmZpbmQoJy5kei1maWxlbmFtZScpLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzaG9ydGNvZGUgPSBVcmlUb01hcmtkb3duKHVyaSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWRkQ2xhc3MoJ2hpZGUtYmFja2ZhY2UnKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnY29weSc7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0Jywgc2hvcnRjb2RlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uU29ydDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnW2RhdGEtZHotbmFtZV0nKS5lYWNoKChpbmRleCwgZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSA9ICQoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS50ZXh0KCkudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsKG5hbWVzLmpvaW4oJywnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmZXRjaE1lZGlhKCkge1xuICAgICAgICBjb25zdCBvcmRlciA9IHRoaXMuY29udGFpbmVyLmNsb3Nlc3QoJy5mb3JtLWZpZWxkJykuZmluZCgnW25hbWU9XCJkYXRhW2hlYWRlcl1bbWVkaWFfb3JkZXJdXCJdJykudmFsKCk7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7IHVyaTogdGhpcy5nZXRVUkkoKSwgb3JkZXIgfTtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMudXJscy5mZXRjaDtcblxuICAgICAgICByZXF1ZXN0KHVybCwgeyBtZXRob2Q6ICdwb3N0JywgYm9keSB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRzID0gcmVzcG9uc2UucmVzdWx0cztcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0cykuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gcmVzdWx0c1tuYW1lXTtcbiAgICAgICAgICAgICAgICBsZXQgbW9jayA9IHsgbmFtZSwgc2l6ZTogZGF0YS5zaXplLCBhY2NlcHRlZDogdHJ1ZSwgZXh0cmFzOiBkYXRhIH07XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLmZpbGVzLnB1c2gobW9jayk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5vcHRpb25zLmFkZGVkZmlsZS5jYWxsKHRoaXMuZHJvcHpvbmUsIG1vY2spO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUub3B0aW9ucy50aHVtYm5haWwuY2FsbCh0aGlzLmRyb3B6b25lLCBtb2NrLCBkYXRhLnVybCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuZmluZCgnLmR6LXByZXZpZXcnKS5wcm9wKCdkcmFnZ2FibGUnLCAndHJ1ZScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRyb3B6b25lU2VuZGluZyhmaWxlLCB4aHIsIGZvcm1EYXRhKSB7XG4gICAgICAgIC8qXG4gICAgICAgIC8vIENhbm5vdCBjYWxsIHN1cGVyIGJlY2F1c2UgU2FmYXJpIGFuZCBJRSBBUEkgZG9uJ3QgaW1wbGVtZW50IGBkZWxldGVgXG4gICAgICAgIHN1cGVyLm9uRHJvcHpvbmVTZW5kaW5nKGZpbGUsIHhociwgZm9ybURhdGEpO1xuICAgICAgICBmb3JtRGF0YS5kZWxldGUoJ3Rhc2snKTtcbiAgICAgICAgKi9cblxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25hbWUnLCB0aGlzLm9wdGlvbnMuZG90Tm90YXRpb24gfHwgZmlsZS5uYW1lKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhZG1pbi1ub25jZScsIGNvbmZpZy5hZG1pbl9ub25jZSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndXJpJywgdGhpcy5nZXRVUkkoKSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZUNvbXBsZXRlKGZpbGUpIHtcbiAgICAgICAgc3VwZXIub25Ecm9wem9uZUNvbXBsZXRlKGZpbGUpO1xuICAgICAgICBpZiAodGhpcy5zb3J0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zb3J0YWJsZS5vcHRpb25zLm9uU29ydCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWNjZXB0ZWRcbiAgICAgICAgJCgnLmR6LXByZXZpZXcnKS5wcm9wKCdkcmFnZ2FibGUnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVSZW1vdmVkRmlsZShmaWxlLCAuLi5leHRyYSkge1xuICAgICAgICBzdXBlci5vbkRyb3B6b25lUmVtb3ZlZEZpbGUoZmlsZSwgLi4uZXh0cmEpO1xuICAgICAgICBpZiAodGhpcy5zb3J0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zb3J0YWJsZS5vcHRpb25zLm9uU29ydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXR0YWNoRHJhZ0Ryb3AoKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCdbZGF0YS1kei1pbnNlcnRdJywgJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCkucGFyZW50KCcuZHotcHJldmlldycpLmZpbmQoJy5kei1maWxlbmFtZScpO1xuICAgICAgICAgICAgbGV0IGVkaXRvciA9IEVkaXRvci5lZGl0b3JzLmZpbHRlcigoaW5kZXgsIGVkaXRvcikgPT4gJChlZGl0b3IpLmF0dHIoJ25hbWUnKSA9PT0gJ2RhdGFbY29udGVudF0nKTtcblxuICAgICAgICAgICAgaWYgKGVkaXRvci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBlZGl0b3IgPSBlZGl0b3IuZGF0YSgnY29kZW1pcnJvcicpO1xuICAgICAgICAgICAgICAgIGVkaXRvci5mb2N1cygpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gZW5jb2RlVVJJKHRhcmdldC50ZXh0KCkpO1xuICAgICAgICAgICAgICAgIGxldCBzaG9ydGNvZGUgPSBVcmlUb01hcmtkb3duKGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgICBlZGl0b3IuZG9jLnJlcGxhY2VTZWxlY3Rpb24oc2hvcnRjb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIuZGVsZWdhdGUoJ1tkYXRhLWR6LXZpZXddJywgJ21vdXNlZW50ZXInLCAoZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHRhcmdldCA9ICQoZS5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGxldCBmaWxlID0gdGFyZ2V0LnBhcmVudCgnLmR6LXByZXZpZXcnKS5maW5kKCcuZHotZmlsZW5hbWUnKTtcbiAgICAgICAgICAgIGxldCBmaWxlbmFtZSA9IGVuY29kZVVSSShmaWxlLnRleHQoKSk7XG4gICAgICAgICAgICBsZXQgVVJMID0gdGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLW1lZGlhLXBhdGhdJykuZGF0YSgnbWVkaWEtcGF0aCcpO1xuICAgICAgICAgICAgbGV0IG9yaWdpbmFsID0gdGhpcy5kcm9wem9uZS5maWxlcy5maWx0ZXIoKGZpbGUpID0+IGVuY29kZVVSSShmaWxlLm5hbWUpID09PSBmaWxlbmFtZSkuc2hpZnQoKTtcblxuICAgICAgICAgICAgb3JpZ2luYWwgPSBvcmlnaW5hbCAmJiAoKG9yaWdpbmFsLmV4dHJhcyAmJiBvcmlnaW5hbC5leHRyYXMub3JpZ2luYWwpIHx8IGVuY29kZVVSSShvcmlnaW5hbC5uYW1lKSk7XG5cbiAgICAgICAgICAgIHRhcmdldC5hdHRyKCdocmVmJywgYCR7VVJMfS8ke29yaWdpbmFsfWApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZSgnW2RhdGEtZHotbWV0YWRhdGFdJywgJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZS5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSB0YXJnZXQucGFyZW50KCcuZHotcHJldmlldycpLmZpbmQoJy5kei1maWxlbmFtZScpO1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBlbmNvZGVVUkkoZmlsZS50ZXh0KCkpO1xuXG4gICAgICAgICAgICBsZXQgZmlsZU9iaiA9IHRoaXMuZHJvcHpvbmUuZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLm5hbWUgPT09IGdsb2JhbC5kZWNvZGVVUkkoZmlsZW5hbWUpKS5zaGlmdCgpIHx8IHt9O1xuXG4gICAgICAgICAgICBpZiAoIWZpbGVPYmouZXh0cmFzKSB7XG4gICAgICAgICAgICAgICAgZmlsZU9iai5leHRyYXMgPSB7IG1ldGFkYXRhOiBbXSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWxlT2JqLmV4dHJhcy5tZXRhZGF0YSkgJiYgIWZpbGVPYmouZXh0cmFzLm1ldGFkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZpbGVPYmouZXh0cmFzLm1ldGFkYXRhID0geyAnJzogYCR7Z2xvYmFsLmRlY29kZVVSSShmaWxlbmFtZSl9Lm1ldGEueWFtbCBkb2Vzbid0IGV4aXN0YCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWxlT2JqID0gZmlsZU9iai5leHRyYXM7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGFsX2VsZW1lbnQgPSAkKCdib2R5JykuZmluZCgnW2RhdGEtcmVtb2RhbC1pZD1cIm1ldGFkYXRhXCJdJyk7XG4gICAgICAgICAgICBjb25zdCBtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWxfZWxlbWVudC5kYXRhKCdyZW1vZGFsJyldO1xuXG4gICAgICAgICAgICBtb2RhbF9lbGVtZW50LmZpbmQoJ2gxIHN0cm9uZycpLmh0bWwoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVPYmoudXJsKSB7XG4gICAgICAgICAgICAgICAgbW9kYWxfZWxlbWVudC5maW5kKCcubWV0YS1wcmV2aWV3JykuaHRtbChgPGltZyBzcmM9XCIke2ZpbGVPYmoudXJsfVwiIC8+YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1vZGFsX2VsZW1lbnQuZmluZCgnLm1ldGEtY29udGVudCcpLmh0bWwoJzx1bCAvPicpLmZpbmQoJ3VsJyk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmaWxlT2JqLm1ldGFkYXRhKS5mb3JFYWNoKChtZXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZChgPGxpPjxzdHJvbmc+JHttZXRhID8gbWV0YSArICc6JyA6ICcnfTwvc3Ryb25nPiAke2ZpbGVPYmoubWV0YWRhdGFbbWV0YV19PC9saT5gKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBtb2RhbC5vcGVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCcuZHotcHJldmlldycsICdkcmFnc3RhcnQnLCAoZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHRhcmdldCA9ICQoZS5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGxldCB1cmkgPSBlbmNvZGVVUkkodGFyZ2V0LmZpbmQoJy5kei1maWxlbmFtZScpLnRleHQoKSk7XG4gICAgICAgICAgICBsZXQgc2hvcnRjb2RlID0gVXJpVG9NYXJrZG93bih1cmkpO1xuICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0YXJnZXQuYWRkQ2xhc3MoJ2hpZGUtYmFja2ZhY2UnKTtcbiAgICAgICAgICAgIGUub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdjb3B5JztcbiAgICAgICAgICAgIGUub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHNob3J0Y29kZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCcuZHotcHJldmlldycsICdkcmFnZW5kJywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICB0aGlzLmRyb3B6b25lLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUNsYXNzKCdoaWRlLWJhY2tmYWNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBQYWdlTWVkaWEoKTtcbiJdLCJuYW1lcyI6WyIkIiwicmVxdWVzdCIsIkZpbGVzRmllbGQiLCJVcmlUb01hcmtkb3duIiwiY29uZmlnIiwidHJhbnNsYXRpb25zIiwiSW5zdGFuY2UiLCJFZGl0b3IiLCJTb3J0YWJsZSIsInByZXZpZXdUZW1wbGF0ZSIsIlBMVUdJTl9BRE1JTiIsIkRFTEVURSIsIk1FVEFEQVRBIiwiVklFVyIsIklOU0VSVCIsInRyaW0iLCJQYWdlTWVkaWEiLCJjb250YWluZXIiLCJvcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwibGVuZ3RoIiwidXJscyIsImZldGNoIiwiZGF0YSIsInBhcmFtX3NlcCIsImFkZCIsImRyb3B6b25lIiwidXJsIiwiZmV0Y2hNZWRpYSIsImF0dGFjaERyYWdEcm9wIiwiZmllbGQiLCJzb3J0YWJsZSIsImdldCIsImFuaW1hdGlvbiIsInNldERhdGEiLCJkYXRhVHJhbnNmZXIiLCJ0YXJnZXQiLCJ1cmkiLCJlbmNvZGVVUkkiLCJmaW5kIiwidGV4dCIsInNob3J0Y29kZSIsImRpc2FibGUiLCJhZGRDbGFzcyIsImVmZmVjdEFsbG93ZWQiLCJvblNvcnQiLCJuYW1lcyIsImVhY2giLCJpbmRleCIsImZpbGUiLCJuYW1lIiwicHVzaCIsInZhbCIsImpvaW4iLCJvcmRlciIsImNsb3Nlc3QiLCJib2R5IiwiZ2V0VVJJIiwibWV0aG9kIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwia2V5cyIsImZvckVhY2giLCJtb2NrIiwic2l6ZSIsImFjY2VwdGVkIiwiZXh0cmFzIiwiZmlsZXMiLCJhZGRlZGZpbGUiLCJjYWxsIiwidGh1bWJuYWlsIiwicHJvcCIsInhociIsImZvcm1EYXRhIiwiYXBwZW5kIiwiZG90Tm90YXRpb24iLCJhZG1pbl9ub25jZSIsImV4dHJhIiwiZGVsZWdhdGUiLCJlIiwiY3VycmVudFRhcmdldCIsInBhcmVudCIsImVkaXRvciIsImVkaXRvcnMiLCJmaWx0ZXIiLCJhdHRyIiwiZm9jdXMiLCJmaWxlbmFtZSIsImRvYyIsInJlcGxhY2VTZWxlY3Rpb24iLCJVUkwiLCJvcmlnaW5hbCIsInNoaWZ0IiwicHJldmVudERlZmF1bHQiLCJmaWxlT2JqIiwiZ2xvYmFsIiwiZGVjb2RlVVJJIiwibWV0YWRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJtb2RhbF9lbGVtZW50IiwibW9kYWwiLCJyZW1vZGFsIiwibG9va3VwIiwiaHRtbCIsIm1ldGEiLCJvcGVuIiwib3JpZ2luYWxFdmVudCIsImVuYWJsZSIsInJlbW92ZUNsYXNzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/media.js\n");
/***/ }),
/***/ "./app/pages/page/move.js":
/*!********************************!*\
!*** ./app/pages/page/move.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-page-move] button[name=\"task\"][value=\"save\"]', function (event) {\n /* let route = $('form#blueprints:first select[name=\"data[route]\"]');\n let moveTo = $('[data-page-move] select').val();\n if (route.length && route.val() !== moveTo) {\n let selectize = route.data('selectize');\n route.val(moveTo);\n if (selectize) selectize.setValue(moveTo);\n }*/\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents') || {};\n var finder = parents.finder;\n\n if (!parents || !finder) {\n return true;\n }\n\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').css({\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100vw',\n height: '100vh',\n zIndex: 15000\n }).appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'));\n});\n/*\n$(document).on('click', '[data-remodal-id=\"parents\"] [data-parents-select]', (event) => {\n const modal = $(event.currentTarget).closest('[data-remodal-id]');\n const parents = modal.data('parents');\n const finder = parents.finder;\n const field = parents.field;\n const parentLabel = parents.parentLabel;\n const parentName = parents.parentName;\n const selection = finder.findLastActive().item[0];\n const value = selection._item[finder.config.valueKey];\n const name = selection._item[finder.config.labelKey];\n\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n\n const remodal = $.remodal.lookup[$(`[data-remodal-id=\"${modal.data('remodalId')}\"]`).data('remodal')];\n remodal.close();\n});\n*///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tb3ZlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3QixvREFBeEIsRUFBOEUsVUFBQ0MsS0FBRCxFQUFXO0FBQ3JGO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUksTUFBTUMsS0FBSyxHQUFHSiw2Q0FBQyxDQUFDRyxLQUFLLENBQUNFLGFBQVAsQ0FBRCxDQUF1QkMsT0FBdkIsQ0FBK0IsbUJBQS9CLENBQWQ7QUFDQSxNQUFNQyxPQUFPLEdBQUdILEtBQUssQ0FBQ0ksSUFBTixDQUFXLFNBQVgsS0FBeUIsRUFBekM7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0UsTUFBdkI7O0FBRUEsTUFBSSxDQUFDRixPQUFELElBQVksQ0FBQ0UsTUFBakIsRUFBeUI7QUFBRSxXQUFPLElBQVA7QUFBYzs7QUFFekMsTUFBTUMsS0FBSyxHQUFHSCxPQUFPLENBQUNHLEtBQXRCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHSixPQUFPLENBQUNJLFdBQTVCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHTCxPQUFPLENBQUNLLFVBQTNCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHSixNQUFNLENBQUNLLGNBQVAsR0FBd0JDLElBQXhCLENBQTZCLENBQTdCLENBQWxCO0FBQ0EsTUFBTUMsS0FBSyxHQUFHSCxTQUFTLENBQUNJLEtBQVYsQ0FBZ0JSLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjQyxRQUE5QixDQUFkO0FBQ0EsTUFBTUMsSUFBSSxHQUFHUCxTQUFTLENBQUNJLEtBQVYsQ0FBZ0JSLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjRyxRQUE5QixDQUFiO0FBRUFYLEVBQUFBLEtBQUssQ0FBQ1ksR0FBTixDQUFVTixLQUFWO0FBQ0FMLEVBQUFBLFdBQVcsQ0FBQ1ksSUFBWixDQUFpQlAsS0FBakI7QUFDQUosRUFBQUEsVUFBVSxDQUFDVyxJQUFYLENBQWdCSCxJQUFoQjtBQUNBWCxFQUFBQSxNQUFNLENBQUNTLE1BQVAsQ0FBY00sV0FBZCxHQUE0QlIsS0FBNUI7QUFFQWhCLEVBQUFBLDZDQUFDLENBQUMsU0FBRCxDQUFELENBQWF5QixHQUFiLENBQWlCO0FBQ2JDLElBQUFBLGVBQWUsRUFBRSwwQkFESjtBQUViQyxJQUFBQSxRQUFRLEVBQUUsT0FGRztBQUdiQyxJQUFBQSxHQUFHLEVBQUUsQ0FIUTtBQUliQyxJQUFBQSxJQUFJLEVBQUUsQ0FKTztBQUtiQyxJQUFBQSxLQUFLLEVBQUUsT0FMTTtBQU1iQyxJQUFBQSxNQUFNLEVBQUUsT0FOSztBQU9iQyxJQUFBQSxNQUFNLEVBQUU7QUFQSyxHQUFqQixFQVFHQyxRQVJILENBUVlqQyw2Q0FBQyxDQUFDLE1BQUQsQ0FSYjtBQVNILENBdENEO0FBd0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS9tb3ZlLmpzPzIwNWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBhZ2UtbW92ZV0gYnV0dG9uW25hbWU9XCJ0YXNrXCJdW3ZhbHVlPVwic2F2ZVwiXScsIChldmVudCkgPT4ge1xuICAgIC8qIGxldCByb3V0ZSA9ICQoJ2Zvcm0jYmx1ZXByaW50czpmaXJzdCBzZWxlY3RbbmFtZT1cImRhdGFbcm91dGVdXCJdJyk7XG4gICAgbGV0IG1vdmVUbyA9ICQoJ1tkYXRhLXBhZ2UtbW92ZV0gc2VsZWN0JykudmFsKCk7XG5cbiAgICBpZiAocm91dGUubGVuZ3RoICYmIHJvdXRlLnZhbCgpICE9PSBtb3ZlVG8pIHtcbiAgICAgICAgbGV0IHNlbGVjdGl6ZSA9IHJvdXRlLmRhdGEoJ3NlbGVjdGl6ZScpO1xuICAgICAgICByb3V0ZS52YWwobW92ZVRvKTtcblxuICAgICAgICBpZiAoc2VsZWN0aXplKSBzZWxlY3RpemUuc2V0VmFsdWUobW92ZVRvKTtcbiAgICB9Ki9cblxuICAgIGNvbnN0IG1vZGFsID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpO1xuICAgIGNvbnN0IHBhcmVudHMgPSBtb2RhbC5kYXRhKCdwYXJlbnRzJykgfHwge307XG4gICAgY29uc3QgZmluZGVyID0gcGFyZW50cy5maW5kZXI7XG5cbiAgICBpZiAoIXBhcmVudHMgfHwgIWZpbmRlcikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgY29uc3QgZmllbGQgPSBwYXJlbnRzLmZpZWxkO1xuICAgIGNvbnN0IHBhcmVudExhYmVsID0gcGFyZW50cy5wYXJlbnRMYWJlbDtcbiAgICBjb25zdCBwYXJlbnROYW1lID0gcGFyZW50cy5wYXJlbnROYW1lO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGZpbmRlci5maW5kTGFzdEFjdGl2ZSgpLml0ZW1bMF07XG4gICAgY29uc3QgdmFsdWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy52YWx1ZUtleV07XG4gICAgY29uc3QgbmFtZSA9IHNlbGVjdGlvbi5faXRlbVtmaW5kZXIuY29uZmlnLmxhYmVsS2V5XTtcblxuICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgcGFyZW50TGFiZWwudGV4dCh2YWx1ZSk7XG4gICAgcGFyZW50TmFtZS50ZXh0KG5hbWUpO1xuICAgIGZpbmRlci5jb25maWcuZGVmYXVsdFBhdGggPSB2YWx1ZTtcblxuICAgICQoJzxkaXYgLz4nKS5jc3Moe1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSknLFxuICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB3aWR0aDogJzEwMHZ3JyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICB6SW5kZXg6IDE1MDAwXG4gICAgfSkuYXBwZW5kVG8oJCgnYm9keScpKTtcbn0pO1xuXG4vKlxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtaWQ9XCJwYXJlbnRzXCJdIFtkYXRhLXBhcmVudHMtc2VsZWN0XScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IG1vZGFsID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpO1xuICAgIGNvbnN0IHBhcmVudHMgPSBtb2RhbC5kYXRhKCdwYXJlbnRzJyk7XG4gICAgY29uc3QgZmluZGVyID0gcGFyZW50cy5maW5kZXI7XG4gICAgY29uc3QgZmllbGQgPSBwYXJlbnRzLmZpZWxkO1xuICAgIGNvbnN0IHBhcmVudExhYmVsID0gcGFyZW50cy5wYXJlbnRMYWJlbDtcbiAgICBjb25zdCBwYXJlbnROYW1lID0gcGFyZW50cy5wYXJlbnROYW1lO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGZpbmRlci5maW5kTGFzdEFjdGl2ZSgpLml0ZW1bMF07XG4gICAgY29uc3QgdmFsdWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy52YWx1ZUtleV07XG4gICAgY29uc3QgbmFtZSA9IHNlbGVjdGlvbi5faXRlbVtmaW5kZXIuY29uZmlnLmxhYmVsS2V5XTtcblxuICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgcGFyZW50TGFiZWwudGV4dCh2YWx1ZSk7XG4gICAgcGFyZW50TmFtZS50ZXh0KG5hbWUpO1xuICAgIGZpbmRlci5jb25maWcuZGVmYXVsdFBhdGggPSB2YWx1ZTtcblxuICAgIGNvbnN0IHJlbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwWyQoYFtkYXRhLXJlbW9kYWwtaWQ9XCIke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfVwiXWApLmRhdGEoJ3JlbW9kYWwnKV07XG4gICAgcmVtb2RhbC5jbG9zZSgpO1xufSk7XG4qL1xuIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJtb2RhbCIsImN1cnJlbnRUYXJnZXQiLCJjbG9zZXN0IiwicGFyZW50cyIsImRhdGEiLCJmaW5kZXIiLCJmaWVsZCIsInBhcmVudExhYmVsIiwicGFyZW50TmFtZSIsInNlbGVjdGlvbiIsImZpbmRMYXN0QWN0aXZlIiwiaXRlbSIsInZhbHVlIiwiX2l0ZW0iLCJjb25maWciLCJ2YWx1ZUtleSIsIm5hbWUiLCJsYWJlbEtleSIsInZhbCIsInRleHQiLCJkZWZhdWx0UGF0aCIsImNzcyIsImJhY2tncm91bmRDb2xvciIsInBvc2l0aW9uIiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0IiwiekluZGV4IiwiYXBwZW5kVG8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/move.js\n");
/***/ }),
/***/ "./app/pages/page/multilang.js":
/*!*************************************!*\
!*** ./app/pages/page/multilang.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"task\"][value=\"saveas\"], [name=\"task\"][value=\"switchlanguage\"]').on('mousedown touchstart', function (event) {\n var fields = ['lang', 'redirect'];\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(element.attr('form')));\n\n if (!form.length) {\n return;\n }\n\n fields.forEach(function (field) {\n var value = element.attr(field);\n\n if (!value) {\n return;\n }\n\n var input = form.find(\"[name=\\\"data[\".concat(field, \"]\\\"]\"));\n\n if (!input.length) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<input type=\\\"hidden\\\" name=\\\"data[\".concat(field, \"]\\\" value=\\\"\\\" />\"));\n form.append(input);\n }\n\n input.val(value);\n });\n return true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tdWx0aWxhbmcuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQyxzRUFBRCxDQUFELENBQTBFQyxFQUExRSxDQUE2RSxzQkFBN0UsRUFBcUcsVUFBQ0MsS0FBRCxFQUFXO0FBQzVHLE1BQUlDLE1BQU0sR0FBRyxDQUFDLE1BQUQsRUFBUyxVQUFULENBQWI7QUFDQSxNQUFJQyxPQUFPLEdBQUdKLDZDQUFDLENBQUNFLEtBQUssQ0FBQ0csYUFBUCxDQUFmO0FBQ0EsTUFBSUMsSUFBSSxHQUFHTiw2Q0FBQyxZQUFLSSxPQUFPLENBQUNHLElBQVIsQ0FBYSxNQUFiLENBQUwsRUFBWjs7QUFFQSxNQUFJLENBQUNELElBQUksQ0FBQ0UsTUFBVixFQUFrQjtBQUFFO0FBQVM7O0FBQzdCTCxFQUFBQSxNQUFNLENBQUNNLE9BQVAsQ0FBZSxVQUFDQyxLQUFELEVBQVc7QUFDdEIsUUFBSUMsS0FBSyxHQUFHUCxPQUFPLENBQUNHLElBQVIsQ0FBYUcsS0FBYixDQUFaOztBQUNBLFFBQUksQ0FBQ0MsS0FBTCxFQUFZO0FBQUU7QUFBUzs7QUFDdkIsUUFBSUMsS0FBSyxHQUFHTixJQUFJLENBQUNPLElBQUwsd0JBQXlCSCxLQUF6QixVQUFaOztBQUNBLFFBQUksQ0FBQ0UsS0FBSyxDQUFDSixNQUFYLEVBQW1CO0FBQ2ZJLE1BQUFBLEtBQUssR0FBR1osNkNBQUMsOENBQW9DVSxLQUFwQyx1QkFBVDtBQUNBSixNQUFBQSxJQUFJLENBQUNRLE1BQUwsQ0FBWUYsS0FBWjtBQUNIOztBQUVEQSxJQUFBQSxLQUFLLENBQUNHLEdBQU4sQ0FBVUosS0FBVjtBQUNILEdBVkQ7QUFZQSxTQUFPLElBQVA7QUFDSCxDQW5CRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS9tdWx0aWxhbmcuanM/MGMwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKCdbbmFtZT1cInRhc2tcIl1bdmFsdWU9XCJzYXZlYXNcIl0sIFtuYW1lPVwidGFza1wiXVt2YWx1ZT1cInN3aXRjaGxhbmd1YWdlXCJdJykub24oJ21vdXNlZG93biB0b3VjaHN0YXJ0JywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IGZpZWxkcyA9IFsnbGFuZycsICdyZWRpcmVjdCddO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgZm9ybSA9ICQoYCMke2VsZW1lbnQuYXR0cignZm9ybScpfWApO1xuXG4gICAgaWYgKCFmb3JtLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gZWxlbWVudC5hdHRyKGZpZWxkKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkgeyByZXR1cm47IH1cbiAgICAgICAgbGV0IGlucHV0ID0gZm9ybS5maW5kKGBbbmFtZT1cImRhdGFbJHtmaWVsZH1dXCJdYCk7XG4gICAgICAgIGlmICghaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbnB1dCA9ICQoYDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRhdGFbJHtmaWVsZH1dXCIgdmFsdWU9XCJcIiAvPmApO1xuICAgICAgICAgICAgZm9ybS5hcHBlbmQoaW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQudmFsKHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIm9uIiwiZXZlbnQiLCJmaWVsZHMiLCJlbGVtZW50IiwiY3VycmVudFRhcmdldCIsImZvcm0iLCJhdHRyIiwibGVuZ3RoIiwiZm9yRWFjaCIsImZpZWxkIiwidmFsdWUiLCJpbnB1dCIsImZpbmQiLCJhcHBlbmQiLCJ2YWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/multilang.js\n");
/***/ }),
/***/ "./app/pages/page/unset.js":
/*!*********************************!*\
!*** ./app/pages/page/unset.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.dz-unset', function () {\n var file_upload = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.files-upload');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').remove();\n var unset_image = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').find('[data-dz-name]').text().trim();\n var images = JSON.parse(file_upload.find('input[data-grav-field=\"hidden\"]').val()) || {};\n var image_array = {};\n jquery__WEBPACK_IMPORTED_MODULE_0___default().each(images, function (ind, obj) {\n if (!ind.endsWith(unset_image)) {\n image_array[ind] = obj;\n }\n });\n file_upload.find('input[data-grav-field=\"hidden\"]').val(JSON.stringify(image_array));\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS91bnNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBQSw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsV0FBeEIsRUFBcUMsWUFBVztBQUU1QyxNQUFNQyxXQUFXLEdBQUdILDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVFJLE9BQVIsQ0FBZ0IsZUFBaEIsQ0FBcEI7QUFDQUosRUFBQUEsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUksT0FBUixDQUFnQixtQkFBaEIsRUFBcUNDLE1BQXJDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHTiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSSxPQUFSLENBQWdCLG1CQUFoQixFQUFxQ0csSUFBckMsQ0FBMEMsZ0JBQTFDLEVBQTREQyxJQUE1RCxHQUFtRUMsSUFBbkUsRUFBcEI7QUFDQSxNQUFNQyxNQUFNLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXVCxXQUFXLENBQUNJLElBQVosQ0FBaUIsaUNBQWpCLEVBQW9ETSxHQUFwRCxFQUFYLEtBQXlFLEVBQXhGO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLEVBQWxCO0FBRUFkLEVBQUFBLGtEQUFBLENBQU9VLE1BQVAsRUFBZSxVQUFTTSxHQUFULEVBQWNDLEdBQWQsRUFBbUI7QUFDOUIsUUFBSSxDQUFDRCxHQUFHLENBQUNFLFFBQUosQ0FBYVosV0FBYixDQUFMLEVBQWdDO0FBQzVCUSxNQUFBQSxXQUFXLENBQUNFLEdBQUQsQ0FBWCxHQUFtQkMsR0FBbkI7QUFDSDtBQUNKLEdBSkQ7QUFNQWQsRUFBQUEsV0FBVyxDQUFDSSxJQUFaLENBQWlCLGlDQUFqQixFQUFvRE0sR0FBcEQsQ0FBd0RGLElBQUksQ0FBQ1EsU0FBTCxDQUFlTCxXQUFmLENBQXhEO0FBQ0gsQ0FmRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGFnZXMvcGFnZS91bnNldC5qcz85ZmJjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuZHotdW5zZXQnLCBmdW5jdGlvbigpIHtcblxuICAgIGNvbnN0IGZpbGVfdXBsb2FkID0gJCh0aGlzKS5jbG9zZXN0KCcuZmlsZXMtdXBsb2FkJyk7XG4gICAgJCh0aGlzKS5jbG9zZXN0KCcuZHotaW1hZ2UtcHJldmlldycpLnJlbW92ZSgpO1xuICAgIGNvbnN0IHVuc2V0X2ltYWdlID0gJCh0aGlzKS5jbG9zZXN0KCcuZHotaW1hZ2UtcHJldmlldycpLmZpbmQoJ1tkYXRhLWR6LW5hbWVdJykudGV4dCgpLnRyaW0oKTtcbiAgICBjb25zdCBpbWFnZXMgPSBKU09OLnBhcnNlKGZpbGVfdXBsb2FkLmZpbmQoJ2lucHV0W2RhdGEtZ3Jhdi1maWVsZD1cImhpZGRlblwiXScpLnZhbCgpKSB8fCB7fTtcbiAgICBsZXQgaW1hZ2VfYXJyYXkgPSB7fTtcblxuICAgICQuZWFjaChpbWFnZXMsIGZ1bmN0aW9uKGluZCwgb2JqKSB7XG4gICAgICAgIGlmICghaW5kLmVuZHNXaXRoKHVuc2V0X2ltYWdlKSkge1xuICAgICAgICAgICAgaW1hZ2VfYXJyYXlbaW5kXSA9IG9iajtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsZV91cGxvYWQuZmluZCgnaW5wdXRbZGF0YS1ncmF2LWZpZWxkPVwiaGlkZGVuXCJdJykudmFsKEpTT04uc3RyaW5naWZ5KGltYWdlX2FycmF5KSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiZG9jdW1lbnQiLCJvbiIsImZpbGVfdXBsb2FkIiwiY2xvc2VzdCIsInJlbW92ZSIsInVuc2V0X2ltYWdlIiwiZmluZCIsInRleHQiLCJ0cmltIiwiaW1hZ2VzIiwiSlNPTiIsInBhcnNlIiwidmFsIiwiaW1hZ2VfYXJyYXkiLCJlYWNoIiwiaW5kIiwib2JqIiwiZW5kc1dpdGgiLCJzdHJpbmdpZnkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/unset.js\n");
/***/ }),
/***/ "./app/pages/tree.js":
/*!***************************!*\
!*** ./app/pages/tree.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PagesTree),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_1__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\nvar sessionKey = 'grav:admin:pages';\n\nif (!sessionStorage.getItem(sessionKey)) {\n sessionStorage.setItem(sessionKey, '{}');\n}\n\nvar PagesTree = /*#__PURE__*/function () {\n function PagesTree(query) {\n var _this = this;\n\n var elements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n _classCallCheck(this, PagesTree);\n\n this.query = query;\n this.elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements !== undefined ? elements : this.query);\n this.session = JSON.parse(sessionStorage.getItem(sessionKey) || '{}');\n\n if (!this.elements.length) {\n return;\n }\n\n this.restore();\n this.elements.find('.page-icon').on('click', function (event) {\n return _this.toggle(event.target);\n });\n this.elements.data('tree_init', 1);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-page-toggleall]').on('click', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-page-toggleall]');\n var action = element.data('page-toggleall');\n\n _this[action]();\n });\n }\n\n _createClass(PagesTree, [{\n key: \"reload\",\n value: function reload() {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.query).filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('tree_init');\n });\n\n if (!elements.length) {\n return;\n }\n\n this.constructor(this.query, elements);\n }\n }, {\n key: \"toggle\",\n value: function toggle(elements) {\n var _this2 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this2.getState(element.closest('[data-toggle=\"children\"]'));\n\n _this2[state.isOpen ? 'collapse' : 'expand'](state.id, dontStore);\n });\n }\n }, {\n key: \"collapse\",\n value: function collapse(elements) {\n var _this3 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this3.getState(element);\n\n if (state.isOpen) {\n state.children.hide();\n state.icon.removeClass('children-open').addClass('children-closed');\n\n if (!dontStore) {\n delete _this3.session[state.id];\n }\n }\n });\n\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"expand\",\n value: function expand(elements) {\n var _this4 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\"));\n var parents = element.parents('[data-nav-id]'); // loop back through parents, we don't want to expand an hidden child\n\n if (parents.length) {\n parents = parents.find('[data-toggle=\"children\"]:first');\n parents = parents.add(element.find('[data-toggle=\"children\"]:first'));\n return this.expand(parents, dontStore);\n }\n\n elements = element.find('[data-toggle=\"children\"]:first');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this4.getState(element);\n\n if (!state.isOpen) {\n state.children.show();\n state.icon.removeClass('children-closed').addClass('children-open');\n\n if (!dontStore) {\n _this4.session[state.id] = 1;\n }\n }\n });\n\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"restore\",\n value: function restore() {\n var _this5 = this;\n\n this.collapse(null, true);\n Object.keys(this.session).forEach(function (key) {\n _this5.expand(key, 'no-store');\n });\n }\n }, {\n key: \"save\",\n value: function save() {\n return sessionStorage.setItem(sessionKey, JSON.stringify(this.session));\n }\n }, {\n key: \"getState\",\n value: function getState(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n return {\n id: element.closest('[data-nav-id]').data('nav-id'),\n children: element.closest('li.page-item').find('ul:first'),\n icon: element.find('.page-icon'),\n\n get isOpen() {\n return this.icon.hasClass('children-open');\n }\n\n };\n }\n }]);\n\n return PagesTree;\n}();\n\n\nvar Instance = new PagesTree('[data-toggle=\"children\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJy4uL3V0aWxzL3N0b3JhZ2UnO1xuXG5jb25zdCBzZXNzaW9uS2V5ID0gJ2dyYXY6YWRtaW46cGFnZXMnO1xuXG5pZiAoIXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oc2Vzc2lvbktleSkpIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlc3Npb25LZXksICd7fScpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlc1RyZWUge1xuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5LCBlbGVtZW50cyA9IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSAkKGVsZW1lbnRzICE9PSB1bmRlZmluZWQgPyBlbGVtZW50cyA6IHRoaXMucXVlcnkpO1xuICAgICAgICB0aGlzLnNlc3Npb24gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oc2Vzc2lvbktleSkgfHwgJ3t9Jyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnJlc3RvcmUoKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnRzLmZpbmQoJy5wYWdlLWljb24nKS5vbignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMudG9nZ2xlKGV2ZW50LnRhcmdldCkpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmRhdGEoJ3RyZWVfaW5pdCcsIDEpO1xuXG4gICAgICAgICQoJ1tkYXRhLXBhZ2UtdG9nZ2xlYWxsXScpLm9uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnW2RhdGEtcGFnZS10b2dnbGVhbGxdJyk7XG4gICAgICAgICAgICBsZXQgYWN0aW9uID0gZWxlbWVudC5kYXRhKCdwYWdlLXRvZ2dsZWFsbCcpO1xuXG4gICAgICAgICAgICB0aGlzW2FjdGlvbl0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9ICQodGhpcy5xdWVyeSkuZmlsdGVyKChpbmRleCwgZWxlbWVudCkgPT4gISQoZWxlbWVudCkuZGF0YSgndHJlZV9pbml0JykpO1xuICAgICAgICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLnF1ZXJ5LCBlbGVtZW50cyk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKGVsZW1lbnRzLCBkb250U3RvcmUgPSBmYWxzZSkge1xuICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnRzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZWxlbWVudHMgPSAkKGBbZGF0YS1uYXYtaWQ9XCIke2VsZW1lbnRzfVwiXWApLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdJyk7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50cyA9ICQoZWxlbWVudHMgfHwgdGhpcy5lbGVtZW50cyk7XG4gICAgICAgIGVsZW1lbnRzLmVhY2goKGluZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICAgICAgICAgIGxldCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoZWxlbWVudC5jbG9zZXN0KCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXScpKTtcbiAgICAgICAgICAgIHRoaXNbc3RhdGUuaXNPcGVuID8gJ2NvbGxhcHNlJyA6ICdleHBhbmQnXShzdGF0ZS5pZCwgZG9udFN0b3JlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29sbGFwc2UoZWxlbWVudHMsIGRvbnRTdG9yZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBlbGVtZW50cyA9ICQoYFtkYXRhLW5hdi1pZD1cIiR7ZWxlbWVudHN9XCJdYCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnRzID0gJChlbGVtZW50cyB8fCB0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgZWxlbWVudHMuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZShlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKHN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHN0YXRlLmNoaWxkcmVuLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pY29uLnJlbW92ZUNsYXNzKCdjaGlsZHJlbi1vcGVuJykuYWRkQ2xhc3MoJ2NoaWxkcmVuLWNsb3NlZCcpO1xuICAgICAgICAgICAgICAgIGlmICghZG9udFN0b3JlKSB7IGRlbGV0ZSB0aGlzLnNlc3Npb25bc3RhdGUuaWRdOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZG9udFN0b3JlKSB7IHRoaXMuc2F2ZSgpOyB9XG4gICAgfVxuXG4gICAgZXhwYW5kKGVsZW1lbnRzLCBkb250U3RvcmUgPSBmYWxzZSkge1xuICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnRzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSAkKGBbZGF0YS1uYXYtaWQ9XCIke2VsZW1lbnRzfVwiXWApO1xuICAgICAgICAgICAgbGV0IHBhcmVudHMgPSBlbGVtZW50LnBhcmVudHMoJ1tkYXRhLW5hdi1pZF0nKTtcblxuICAgICAgICAgICAgLy8gbG9vcCBiYWNrIHRocm91Z2ggcGFyZW50cywgd2UgZG9uJ3Qgd2FudCB0byBleHBhbmQgYW4gaGlkZGVuIGNoaWxkXG4gICAgICAgICAgICBpZiAocGFyZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzID0gcGFyZW50cy5maW5kKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXTpmaXJzdCcpO1xuICAgICAgICAgICAgICAgIHBhcmVudHMgPSBwYXJlbnRzLmFkZChlbGVtZW50LmZpbmQoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdOmZpcnN0JykpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4cGFuZChwYXJlbnRzLCBkb250U3RvcmUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnQuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl06Zmlyc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnRzID0gJChlbGVtZW50cyB8fCB0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgZWxlbWVudHMuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZShlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKCFzdGF0ZS5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5jaGlsZHJlbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgc3RhdGUuaWNvbi5yZW1vdmVDbGFzcygnY2hpbGRyZW4tY2xvc2VkJykuYWRkQ2xhc3MoJ2NoaWxkcmVuLW9wZW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRvbnRTdG9yZSkgeyB0aGlzLnNlc3Npb25bc3RhdGUuaWRdID0gMTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWRvbnRTdG9yZSkgeyB0aGlzLnNhdmUoKTsgfVxuICAgIH1cblxuICAgIHJlc3RvcmUoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2UobnVsbCwgdHJ1ZSk7XG5cbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5zZXNzaW9uKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kKGtleSwgJ25vLXN0b3JlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmUoKSB7XG4gICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlc3Npb25LZXksIEpTT04uc3RyaW5naWZ5KHRoaXMuc2Vzc2lvbikpO1xuICAgIH1cblxuICAgIGdldFN0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLW5hdi1pZF0nKS5kYXRhKCduYXYtaWQnKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBlbGVtZW50LmNsb3Nlc3QoJ2xpLnBhZ2UtaXRlbScpLmZpbmQoJ3VsOmZpcnN0JyksXG4gICAgICAgICAgICBpY29uOiBlbGVtZW50LmZpbmQoJy5wYWdlLWljb24nKSxcbiAgICAgICAgICAgIGdldCBpc09wZW4oKSB7IHJldHVybiB0aGlzLmljb24uaGFzQ2xhc3MoJ2NoaWxkcmVuLW9wZW4nKTsgfVxuICAgICAgICB9O1xuICAgIH1cbn1cblxubGV0IEluc3RhbmNlID0gbmV3IFBhZ2VzVHJlZSgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl0nKTtcbmV4cG9ydCB7IEluc3RhbmNlIH07XG4iXSwibmFtZXMiOlsiJCIsInNlc3Npb25LZXkiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJzZXRJdGVtIiwiUGFnZXNUcmVlIiwicXVlcnkiLCJlbGVtZW50cyIsInVuZGVmaW5lZCIsInNlc3Npb24iLCJKU09OIiwicGFyc2UiLCJsZW5ndGgiLCJyZXN0b3JlIiwiZmluZCIsIm9uIiwiZXZlbnQiLCJ0b2dnbGUiLCJ0YXJnZXQiLCJkYXRhIiwiZWxlbWVudCIsImNsb3Nlc3QiLCJhY3Rpb24iLCJmaWx0ZXIiLCJpbmRleCIsImNvbnN0cnVjdG9yIiwiZG9udFN0b3JlIiwiZWFjaCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJpc09wZW4iLCJpZCIsImNoaWxkcmVuIiwiaGlkZSIsImljb24iLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwic2F2ZSIsInBhcmVudHMiLCJhZGQiLCJleHBhbmQiLCJzaG93IiwiY29sbGFwc2UiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInN0cmluZ2lmeSIsImhhc0NsYXNzIiwiSW5zdGFuY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/tree.js\n");
/***/ }),
/***/ "./app/plugins/index.js":
/*!******************************!*\
!*** ./app/plugins/index.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mout/string/camelCase */ \"./node_modules/mout/string/camelCase.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mout/string/contains */ \"./node_modules/mout/string/contains.js\");\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(mout_string_contains__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n // Plugins sliders details\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.gpm-name, .gpm-actions').on('click', function (e) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n var tag = target.prop('tagName').toLowerCase();\n\n if (tag === 'a' || element.parent('a').length || target.parent('a').length) {\n return true;\n }\n\n var wrapper = element.siblings('.gpm-details').find('.table-wrapper');\n wrapper.slideToggle({\n duration: 350,\n complete: function complete() {\n var visible = wrapper.is(':visible');\n wrapper.closest('tr').find('.gpm-details-expand i').removeClass('fa-chevron-' + (visible ? 'down' : 'up')).addClass('fa-chevron-' + (visible ? 'up' : 'down'));\n }\n });\n}); // Removing plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingPackage('plugin', event);\n}); // Reinstall plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleReinstallPackage('plugin', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingDependency('plugin', event);\n}); // Trigger the add new plugin / update plugin modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('plugin', event, 'install');\n}); // Trigger the update all plugins modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('plugin', event);\n}); // Install a plugin dependencies and the plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingDependenciesAndPackage('plugin', event);\n}); // Install a plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingPackage('plugin', event);\n}); // Sort plugins/themes dropdown\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.sort-actions select', function (event) {\n var direction = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions .sort-icon .fa').hasClass('fa-sort-amount-desc') ? 'desc' : 'asc';\n var sorting = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Sort[mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default()(\"by-\".concat(sorting))](direction);\n}); // Sort plugins/themes icon\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.sort-icon', function (event) {\n var icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).find('.fa');\n var current = icon.hasClass('fa-sort-amount-asc') ? 'asc' : 'desc';\n var opposite = current === 'asc' ? 'desc' : 'asc';\n icon.removeClass(\"fa-sort-amount-\".concat(current)).addClass(\"fa-sort-amount-\".concat(opposite));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions select').trigger('change');\n}); // Filter plugin/theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[data-gpm-filter]', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function (event) {\n var value = jquery__WEBPACK_IMPORTED_MODULE_0___default()(jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget)).val();\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-plugin], [data-gpm-theme]');\n items.hide().filter(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n return mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-plugin'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-theme'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-name').toLowerCase(), value.toLowerCase());\n }).show();\n}, 250));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBLDZDQUFDLENBQUMsc0JBQUQsQ0FBRCxDQUEwQjBDLE9BQTFCLENBQWtDLFFBQWxDO0FBQ0gsQ0FQRCxHQVNBOztBQUNBMUMsNkNBQUMsQ0FBQ3lCLFFBQUQsQ0FBRCxDQUFZcEIsRUFBWixDQUFlLE9BQWYsRUFBd0IsbUJBQXhCLEVBQTZDRiwrQ0FBUSxDQUFDLFVBQUN1QixLQUFELEVBQVc7QUFDN0QsTUFBSWlCLEtBQUssR0FBRzNDLDZDQUFDLENBQUNBLDZDQUFDLENBQUMwQixLQUFLLENBQUNVLGFBQVAsQ0FBRixDQUFELENBQTBCQyxHQUExQixFQUFaO0FBQ0EsTUFBSU8sS0FBSyxHQUFHNUMsNkNBQUMsQ0FBQyxxQ0FBRCxDQUFiO0FBRUE0QyxFQUFBQSxLQUFLLENBQUNDLElBQU4sR0FBYUMsTUFBYixDQUFvQixVQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDakNBLElBQUFBLElBQUksR0FBR2hELDZDQUFDLENBQUNnRCxJQUFELENBQVI7QUFFQSxXQUFPNUMsMkRBQVEsQ0FBQzRDLElBQUksQ0FBQ0MsSUFBTCxDQUFVLFlBQVYsQ0FBRCxFQUEwQk4sS0FBMUIsQ0FBUixJQUE0Q3ZDLDJEQUFRLENBQUM0QyxJQUFJLENBQUNDLElBQUwsQ0FBVSxXQUFWLENBQUQsRUFBeUJOLEtBQXpCLENBQXBELElBQXVGdkMsMkRBQVEsQ0FBQzRDLElBQUksQ0FBQ0MsSUFBTCxDQUFVLFVBQVYsRUFBc0J0QyxXQUF0QixFQUFELEVBQXNDZ0MsS0FBSyxDQUFDaEMsV0FBTixFQUF0QyxDQUF0RztBQUNILEdBSkQsRUFJR3VDLElBSkg7QUFLSCxDQVRvRCxFQVNsRCxHQVRrRCxDQUFyRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvcGx1Z2lucy9pbmRleC5qcz9kZTdhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgcGFja2FnZXMgZnJvbSAnLi4vdXRpbHMvcGFja2FnZXMnO1xuaW1wb3J0IGNhbWVsQ2FzZSBmcm9tICdtb3V0L3N0cmluZy9jYW1lbENhc2UnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2RlYm91bmNlJztcbmltcG9ydCBjb250YWlucyBmcm9tICdtb3V0L3N0cmluZy9jb250YWlucyc7XG5cbi8vIFBsdWdpbnMgc2xpZGVycyBkZXRhaWxzXG4kKCcuZ3BtLW5hbWUsIC5ncG0tYWN0aW9ucycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgbGV0IHRhcmdldCA9ICQoZS50YXJnZXQpO1xuICAgIGxldCB0YWcgPSB0YXJnZXQucHJvcCgndGFnTmFtZScpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodGFnID09PSAnYScgfHwgZWxlbWVudC5wYXJlbnQoJ2EnKS5sZW5ndGggfHwgdGFyZ2V0LnBhcmVudCgnYScpLmxlbmd0aCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgbGV0IHdyYXBwZXIgPSBlbGVtZW50LnNpYmxpbmdzKCcuZ3BtLWRldGFpbHMnKS5maW5kKCcudGFibGUtd3JhcHBlcicpO1xuXG4gICAgd3JhcHBlci5zbGlkZVRvZ2dsZSh7XG4gICAgICAgIGR1cmF0aW9uOiAzNTAsXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmlzaWJsZSA9IHdyYXBwZXIuaXMoJzp2aXNpYmxlJyk7XG4gICAgICAgICAgICB3cmFwcGVyXG4gICAgICAgICAgICAgICAgLmNsb3Nlc3QoJ3RyJylcbiAgICAgICAgICAgICAgICAuZmluZCgnLmdwbS1kZXRhaWxzLWV4cGFuZCBpJylcbiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2ZhLWNoZXZyb24tJyArICh2aXNpYmxlID8gJ2Rvd24nIDogJ3VwJykpXG4gICAgICAgICAgICAgICAgLmFkZENsYXNzKCdmYS1jaGV2cm9uLScgKyAodmlzaWJsZSA/ICd1cCcgOiAnZG93bicpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbi8vIFJlbW92aW5nIHBsdWdpblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJyZW1vdmUtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlbW92aW5nUGFja2FnZSgncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIFJlaW5zdGFsbCBwbHVnaW5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wbHVnaW4tYWN0aW9uPVwicmVpbnN0YWxsLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZWluc3RhbGxQYWNrYWdlKCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVtb3ZpbmdEZXBlbmRlbmN5KCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuLy8gVHJpZ2dlciB0aGUgYWRkIG5ldyBwbHVnaW4gLyB1cGRhdGUgcGx1Z2luIG1vZGFsXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cInN0YXJ0LXBhY2thZ2UtaW5zdGFsbGF0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMoJ3BsdWdpbicsIGV2ZW50LCAnaW5zdGFsbCcpO1xufSk7XG5cbi8vIFRyaWdnZXIgdGhlIHVwZGF0ZSBhbGwgcGx1Z2lucyBtb2RhbFxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJzdGFydC1wYWNrYWdlcy11cGRhdGVcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcygncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIEluc3RhbGwgYSBwbHVnaW4gZGVwZW5kZW5jaWVzIGFuZCB0aGUgcGx1Z2luXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cImluc3RhbGwtZGVwZW5kZW5jaWVzLWFuZC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UoJ3BsdWdpbicsIGV2ZW50KTtcbn0pO1xuXG4vLyBJbnN0YWxsIGEgcGx1Z2luXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cImluc3RhbGwtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUluc3RhbGxpbmdQYWNrYWdlKCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuLy8gU29ydCBwbHVnaW5zL3RoZW1lcyBkcm9wZG93blxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuc29ydC1hY3Rpb25zIHNlbGVjdCcsIChldmVudCkgPT4ge1xuICAgIGxldCBkaXJlY3Rpb24gPSAkKCcuc29ydC1hY3Rpb25zIC5zb3J0LWljb24gLmZhJykuaGFzQ2xhc3MoJ2ZhLXNvcnQtYW1vdW50LWRlc2MnKSA/ICdkZXNjJyA6ICdhc2MnO1xuICAgIGxldCBzb3J0aW5nID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS52YWwoKTtcblxuICAgIHBhY2thZ2VzLlNvcnRbY2FtZWxDYXNlKGBieS0ke3NvcnRpbmd9YCldKGRpcmVjdGlvbik7XG59KTtcblxuLy8gU29ydCBwbHVnaW5zL3RoZW1lcyBpY29uXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnLnNvcnQtaWNvbicsIChldmVudCkgPT4ge1xuICAgIGxldCBpY29uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5maW5kKCcuZmEnKTtcbiAgICBsZXQgY3VycmVudCA9IGljb24uaGFzQ2xhc3MoJ2ZhLXNvcnQtYW1vdW50LWFzYycpID8gJ2FzYycgOiAnZGVzYyc7XG4gICAgbGV0IG9wcG9zaXRlID0gY3VycmVudCA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcblxuICAgIGljb24ucmVtb3ZlQ2xhc3MoYGZhLXNvcnQtYW1vdW50LSR7Y3VycmVudH1gKS5hZGRDbGFzcyhgZmEtc29ydC1hbW91bnQtJHtvcHBvc2l0ZX1gKTtcbiAgICAkKCcuc29ydC1hY3Rpb25zIHNlbGVjdCcpLnRyaWdnZXIoJ2NoYW5nZScpO1xufSk7XG5cbi8vIEZpbHRlciBwbHVnaW4vdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdpbnB1dCcsICdbZGF0YS1ncG0tZmlsdGVyXScsIGRlYm91bmNlKChldmVudCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICQoJChldmVudC5jdXJyZW50VGFyZ2V0KSkudmFsKCk7XG4gICAgbGV0IGl0ZW1zID0gJCgnW2RhdGEtZ3BtLXBsdWdpbl0sIFtkYXRhLWdwbS10aGVtZV0nKTtcblxuICAgIGl0ZW1zLmhpZGUoKS5maWx0ZXIoKGluZGV4LCBpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0gPSAkKGl0ZW0pO1xuXG4gICAgICAgIHJldHVybiBjb250YWlucyhpdGVtLmRhdGEoJ2dwbS1wbHVnaW4nKSwgdmFsdWUpIHx8IGNvbnRhaW5zKGl0ZW0uZGF0YSgnZ3BtLXRoZW1lJyksIHZhbHVlKSB8fCBjb250YWlucyhpdGVtLmRhdGEoJ2dwbS1uYW1lJykudG9Mb3dlckNhc2UoKSwgdmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgfSkuc2hvdygpO1xufSwgMjUwKSk7XG4iXSwibmFtZXMiOlsiJCIsInBhY2thZ2VzIiwiY2FtZWxDYXNlIiwiZGVib3VuY2UiLCJjb250YWlucyIsIm9uIiwiZSIsImVsZW1lbnQiLCJ0YXJnZXQiLCJ0YWciLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJwYXJlbnQiLCJsZW5ndGgiLCJ3cmFwcGVyIiwic2libGluZ3MiLCJmaW5kIiwic2xpZGVUb2dnbGUiLCJkdXJhdGlvbiIsImNvbXBsZXRlIiwidmlzaWJsZSIsImlzIiwiY2xvc2VzdCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJkb2N1bWVudCIsImV2ZW50IiwiaGFuZGxlUmVtb3ZpbmdQYWNrYWdlIiwiaGFuZGxlUmVpbnN0YWxsUGFja2FnZSIsImhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSIsImhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzIiwiaGFuZGxlSW5zdGFsbGluZ0RlcGVuZGVuY2llc0FuZFBhY2thZ2UiLCJoYW5kbGVJbnN0YWxsaW5nUGFja2FnZSIsImRpcmVjdGlvbiIsImhhc0NsYXNzIiwic29ydGluZyIsImN1cnJlbnRUYXJnZXQiLCJ2YWwiLCJTb3J0IiwiaWNvbiIsImN1cnJlbnQiLCJvcHBvc2l0ZSIsInRyaWdnZXIiLCJ2YWx1ZSIsIml0ZW1zIiwiaGlkZSIsImZpbHRlciIsImluZGV4IiwiaXRlbSIsImRhdGEiLCJzaG93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/plugins/index.js\n");
/***/ }),
/***/ "./app/themes/index.js":
/*!*****************************!*\
!*** ./app/themes/index.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n\n // Themes Switcher Warning\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mousedown', '[data-remodal-target=\"theme-switch-warn\"]', function (event) {\n var name = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-gpm-theme]').find('.gpm-name a:first').text();\n var remodal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remodal.theme-switcher');\n remodal.find('strong').text(name);\n remodal.find('.button.continue').attr('href', jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('href'));\n}); // Removing theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingPackage('theme', event);\n}); // Reinstall theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleReinstallPackage('theme', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleRemovingDependency('theme', event);\n}); // Opened the add new theme / update theme modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('theme', event, 'install');\n}); // Trigger the update all themes modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleGettingPackageDependencies('theme', event);\n}); // Install a theme dependencies and the theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingDependenciesAndPackage('theme', event);\n}); // Install a theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__[\"default\"].handleInstallingPackage('theme', event);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdGhlbWVzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtDQUdBOztBQUNBQSw2Q0FBQyxDQUFDRSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLFdBQWYsRUFBNEIsMkNBQTVCLEVBQXlFLFVBQUNDLEtBQUQsRUFBVztBQUNoRixNQUFJQyxJQUFJLEdBQUdMLDZDQUFDLENBQUNJLEtBQUssQ0FBQ0UsTUFBUCxDQUFELENBQWdCQyxPQUFoQixDQUF3QixrQkFBeEIsRUFBNENDLElBQTVDLENBQWlELG1CQUFqRCxFQUFzRUMsSUFBdEUsRUFBWDtBQUNBLE1BQUlDLE9BQU8sR0FBR1YsNkNBQUMsQ0FBQyx5QkFBRCxDQUFmO0FBRUFVLEVBQUFBLE9BQU8sQ0FBQ0YsSUFBUixDQUFhLFFBQWIsRUFBdUJDLElBQXZCLENBQTRCSixJQUE1QjtBQUNBSyxFQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYSxrQkFBYixFQUFpQ0csSUFBakMsQ0FBc0MsTUFBdEMsRUFBOENYLDZDQUFDLENBQUNJLEtBQUssQ0FBQ0UsTUFBUCxDQUFELENBQWdCSyxJQUFoQixDQUFxQixNQUFyQixDQUE5QztBQUNILENBTkQsR0FRQTs7QUFDQVgsNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHNDQUF4QixFQUFnRSxVQUFDQyxLQUFELEVBQVc7QUFDdkVILEVBQUFBLDZFQUFBLENBQStCLE9BQS9CLEVBQXdDRyxLQUF4QztBQUNILENBRkQsR0FJQTs7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHlDQUF4QixFQUFtRSxVQUFDQyxLQUFELEVBQVc7QUFDMUVILEVBQUFBLDhFQUFBLENBQWdDLE9BQWhDLEVBQXlDRyxLQUF6QztBQUNILENBRkQ7QUFJQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGlEQUF4QixFQUEyRSxVQUFDQyxLQUFELEVBQVc7QUFDbEZILEVBQUFBLGdGQUFBLENBQWtDLE9BQWxDLEVBQTJDRyxLQUEzQztBQUNILENBRkQsR0FJQTs7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGtEQUF4QixFQUE0RSxVQUFDQyxLQUFELEVBQVc7QUFDbkZILEVBQUFBLHdGQUFBLENBQTBDLE9BQTFDLEVBQW1ERyxLQUFuRCxFQUEwRCxTQUExRDtBQUNILENBRkQsR0FJQTs7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLDZDQUF4QixFQUF1RSxVQUFDQyxLQUFELEVBQVc7QUFDOUVILEVBQUFBLHdGQUFBLENBQTBDLE9BQTFDLEVBQW1ERyxLQUFuRDtBQUNILENBRkQsR0FJQTs7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHdEQUF4QixFQUFrRixVQUFDQyxLQUFELEVBQVc7QUFDekZILEVBQUFBLDhGQUFBLENBQWdELE9BQWhELEVBQXlERyxLQUF6RDtBQUNILENBRkQsR0FJQTs7QUFDQUosNkNBQUMsQ0FBQ0UsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHVDQUF4QixFQUFpRSxVQUFDQyxLQUFELEVBQVc7QUFDeEVILEVBQUFBLCtFQUFBLENBQWlDLE9BQWpDLEVBQTBDRyxLQUExQztBQUNILENBRkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3RoZW1lcy9pbmRleC5qcz8zNDc0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgcGFja2FnZXMgZnJvbSAnLi4vdXRpbHMvcGFja2FnZXMnO1xuXG4vLyBUaGVtZXMgU3dpdGNoZXIgV2FybmluZ1xuJChkb2N1bWVudCkub24oJ21vdXNlZG93bicsICdbZGF0YS1yZW1vZGFsLXRhcmdldD1cInRoZW1lLXN3aXRjaC13YXJuXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IG5hbWUgPSAkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnW2RhdGEtZ3BtLXRoZW1lXScpLmZpbmQoJy5ncG0tbmFtZSBhOmZpcnN0JykudGV4dCgpO1xuICAgIGxldCByZW1vZGFsID0gJCgnLnJlbW9kYWwudGhlbWUtc3dpdGNoZXInKTtcblxuICAgIHJlbW9kYWwuZmluZCgnc3Ryb25nJykudGV4dChuYW1lKTtcbiAgICByZW1vZGFsLmZpbmQoJy5idXR0b24uY29udGludWUnKS5hdHRyKCdocmVmJywgJChldmVudC50YXJnZXQpLmF0dHIoJ2hyZWYnKSk7XG59KTtcblxuLy8gUmVtb3ZpbmcgdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJyZW1vdmUtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlbW92aW5nUGFja2FnZSgndGhlbWUnLCBldmVudCk7XG59KTtcblxuLy8gUmVpbnN0YWxsIHRoZW1lXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwicmVpbnN0YWxsLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZWluc3RhbGxQYWNrYWdlKCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwicmVtb3ZlLWRlcGVuZGVuY3ktcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSgndGhlbWUnLCBldmVudCk7XG59KTtcblxuLy8gT3BlbmVkIHRoZSBhZGQgbmV3IHRoZW1lIC8gdXBkYXRlIHRoZW1lIG1vZGFsXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwic3RhcnQtcGFja2FnZS1pbnN0YWxsYXRpb25cIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcygndGhlbWUnLCBldmVudCwgJ2luc3RhbGwnKTtcbn0pO1xuXG4vLyBUcmlnZ2VyIHRoZSB1cGRhdGUgYWxsIHRoZW1lcyBtb2RhbFxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cInN0YXJ0LXBhY2thZ2VzLXVwZGF0ZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzKCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4vLyBJbnN0YWxsIGEgdGhlbWUgZGVwZW5kZW5jaWVzIGFuZCB0aGUgdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJpbnN0YWxsLWRlcGVuZGVuY2llcy1hbmQtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUluc3RhbGxpbmdEZXBlbmRlbmNpZXNBbmRQYWNrYWdlKCd0aGVtZScsIGV2ZW50KTtcbn0pO1xuXG4vLyBJbnN0YWxsIGEgdGhlbWVcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJpbnN0YWxsLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVJbnN0YWxsaW5nUGFja2FnZSgndGhlbWUnLCBldmVudCk7XG59KTtcblxuIl0sIm5hbWVzIjpbIiQiLCJwYWNrYWdlcyIsImRvY3VtZW50Iiwib24iLCJldmVudCIsIm5hbWUiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiZmluZCIsInRleHQiLCJyZW1vZGFsIiwiYXR0ciIsImhhbmRsZVJlbW92aW5nUGFja2FnZSIsImhhbmRsZVJlaW5zdGFsbFBhY2thZ2UiLCJoYW5kbGVSZW1vdmluZ0RlcGVuZGVuY3kiLCJoYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcyIsImhhbmRsZUluc3RhbGxpbmdEZXBlbmRlbmNpZXNBbmRQYWNrYWdlIiwiaGFuZGxlSW5zdGFsbGluZ1BhY2thZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/themes/index.js\n");
/***/ }),
/***/ "./app/tools/index.js":
/*!****************************!*\
!*** ./app/tools/index.js ***!
\****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _logs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logs */ "./app/tools/logs.js");
/***/ }),
/***/ "./app/tools/logs.js":
/*!***************************!*\
!*** ./app/tools/logs.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/queryString */ \"./node_modules/mout/queryString.js\");\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_queryString__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar prepareQuery = function prepareQuery(key, value) {\n return (0,mout_queryString__WEBPACK_IMPORTED_MODULE_1__.setParam)(__webpack_require__.g.location.href, key, value);\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.logs-content .block-select select[name]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var name = target.attr('name');\n var value = target.val();\n __webpack_require__.g.location.href = prepareQuery(name, value);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdG9vbHMvbG9ncy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsSUFBTUUsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLEVBQWdCO0FBQ2pDLFNBQU9ILDBEQUFRLENBQUNJLHFCQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLElBQWpCLEVBQXVCSixHQUF2QixFQUE0QkMsS0FBNUIsQ0FBZjtBQUNILENBRkQ7O0FBSUFKLDZDQUFDLENBQUNRLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsUUFBZixFQUF5QiwwQ0FBekIsRUFBcUUsVUFBQ0MsS0FBRCxFQUFXO0FBQzVFLE1BQU1DLE1BQU0sR0FBR1gsNkNBQUMsQ0FBQ1UsS0FBSyxDQUFDRSxhQUFQLENBQWhCO0FBQ0EsTUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLElBQVAsQ0FBWSxNQUFaLENBQWI7QUFDQSxNQUFNVixLQUFLLEdBQUdPLE1BQU0sQ0FBQ0ksR0FBUCxFQUFkO0FBRUFWLEVBQUFBLHFCQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLElBQWhCLEdBQXVCTCxZQUFZLENBQUNXLElBQUQsRUFBT1QsS0FBUCxDQUFuQztBQUNILENBTkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3Rvb2xzL2xvZ3MuanM/N2M0YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgc2V0UGFyYW0gfSBmcm9tICdtb3V0L3F1ZXJ5U3RyaW5nJztcblxuY29uc3QgcHJlcGFyZVF1ZXJ5ID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICByZXR1cm4gc2V0UGFyYW0oZ2xvYmFsLmxvY2F0aW9uLmhyZWYsIGtleSwgdmFsdWUpO1xufTtcblxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcubG9ncy1jb250ZW50IC5ibG9jay1zZWxlY3Qgc2VsZWN0W25hbWVdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBuYW1lID0gdGFyZ2V0LmF0dHIoJ25hbWUnKTtcbiAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC52YWwoKTtcblxuICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gcHJlcGFyZVF1ZXJ5KG5hbWUsIHZhbHVlKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJzZXRQYXJhbSIsInByZXBhcmVRdWVyeSIsImtleSIsInZhbHVlIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJocmVmIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIm5hbWUiLCJhdHRyIiwidmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/tools/logs.js\n");
/***/ }),
/***/ "./app/updates/channel-switcher.js":
/*!*****************************************!*\
!*** ./app/updates/channel-switcher.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"channel-switch\"]');\n\nif (switcher) {\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var url = \"\".concat(radio.parent('[data-url]').data('url'));\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(url, {\n method: 'post',\n body: {\n task: 'gpmRelease',\n release: radio.val()\n }\n }, function (response) {\n if (response.reload) {\n __webpack_require__.g.location.reload();\n }\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGFubmVsLXN3aXRjaGVyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBTUUsUUFBUSxHQUFHRiw2Q0FBQyxDQUFDLDRDQUFELENBQWxCOztBQUVBLElBQUlFLFFBQUosRUFBYztBQUNWQSxFQUFBQSxRQUFRLENBQUNDLEVBQVQsQ0FBWSxRQUFaLEVBQXNCLFVBQUNDLEtBQUQsRUFBVztBQUM3QixRQUFJQyxLQUFLLEdBQUdMLDZDQUFDLENBQUNJLEtBQUssQ0FBQ0UsTUFBUCxDQUFiO0FBQ0EsUUFBSUMsR0FBRyxhQUFNRixLQUFLLENBQUNHLE1BQU4sQ0FBYSxZQUFiLEVBQTJCQyxJQUEzQixDQUFnQyxLQUFoQyxDQUFOLENBQVA7QUFFQVIsSUFBQUEsMERBQU8sQ0FBQ00sR0FBRCxFQUFNO0FBQ1RHLE1BQUFBLE1BQU0sRUFBRSxNQURDO0FBRVRDLE1BQUFBLElBQUksRUFBRTtBQUNGQyxRQUFBQSxJQUFJLEVBQUUsWUFESjtBQUVGQyxRQUFBQSxPQUFPLEVBQUVSLEtBQUssQ0FBQ1MsR0FBTjtBQUZQO0FBRkcsS0FBTixFQU9QLFVBQUNDLFFBQUQsRUFBYztBQUNWLFVBQUlBLFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNqQkMsUUFBQUEscUJBQU0sQ0FBQ0MsUUFBUCxDQUFnQkYsTUFBaEI7QUFDSDtBQUNKLEtBWE0sQ0FBUDtBQVlILEdBaEJEO0FBaUJIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91cGRhdGVzL2NoYW5uZWwtc3dpdGNoZXIuanM/Mzk3MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IHN3aXRjaGVyID0gJCgnaW5wdXRbdHlwZT1cInJhZGlvXCJdW25hbWU9XCJjaGFubmVsLXN3aXRjaFwiXScpO1xuXG5pZiAoc3dpdGNoZXIpIHtcbiAgICBzd2l0Y2hlci5vbignY2hhbmdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCByYWRpbyA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgbGV0IHVybCA9IGAke3JhZGlvLnBhcmVudCgnW2RhdGEtdXJsXScpLmRhdGEoJ3VybCcpfWA7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHRhc2s6ICdncG1SZWxlYXNlJyxcbiAgICAgICAgICAgICAgICByZWxlYXNlOiByYWRpby52YWwoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWxvYWQpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuIl0sIm5hbWVzIjpbIiQiLCJyZXF1ZXN0Iiwic3dpdGNoZXIiLCJvbiIsImV2ZW50IiwicmFkaW8iLCJ0YXJnZXQiLCJ1cmwiLCJwYXJlbnQiLCJkYXRhIiwibWV0aG9kIiwiYm9keSIsInRhc2siLCJyZWxlYXNlIiwidmFsIiwicmVzcG9uc2UiLCJyZWxvYWQiLCJnbG9iYWwiLCJsb2NhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/channel-switcher.js\n");
/***/ }),
/***/ "./app/updates/check.js":
/*!******************************!*\
!*** ./app/updates/check.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/toastr */ \"./app/utils/toastr.js\");\n\n\n\n // Check for updates trigger\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-checkupdates]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n element.find('i').addClass('fa-spin');\n _utils_gpm__WEBPACK_IMPORTED_MODULE_1__.Instance.fetch(function (response) {\n element.find('i').removeClass('fa-spin');\n var payload = response.payload;\n\n if (!payload) {\n return;\n }\n\n if (!payload.grav.isUpdatable && !payload.resources.total) {\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__[\"default\"].success(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.EVERYTHING_UP_TO_DATE);\n } else {\n var grav = payload.grav.isUpdatable ? 'Grav v' + payload.grav.available : '';\n var resources = payload.resources.total ? payload.resources.total + ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATES_ARE_AVAILABLE : '';\n\n if (!resources) {\n grav += ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_AVAILABLE_FOR_UPDATE;\n }\n\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__[\"default\"].info(grav + (grav && resources ? ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.AND + ' ' : '') + resources);\n }\n }, true);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGVjay5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0NBR0E7O0FBQ0FBLDZDQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2QkssRUFBN0IsQ0FBZ0MsT0FBaEMsRUFBeUMsWUFBVztBQUNoRCxNQUFJQyxPQUFPLEdBQUdOLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0FNLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLEdBQWIsRUFBa0JDLFFBQWxCLENBQTJCLFNBQTNCO0FBRUFOLEVBQUFBLHNEQUFBLENBQVUsVUFBQ1EsUUFBRCxFQUFjO0FBQ3BCSixJQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYSxHQUFiLEVBQWtCSSxXQUFsQixDQUE4QixTQUE5QjtBQUNBLFFBQUlDLE9BQU8sR0FBR0YsUUFBUSxDQUFDRSxPQUF2Qjs7QUFFQSxRQUFJLENBQUNBLE9BQUwsRUFBYztBQUFFO0FBQVM7O0FBQ3pCLFFBQUksQ0FBQ0EsT0FBTyxDQUFDQyxJQUFSLENBQWFDLFdBQWQsSUFBNkIsQ0FBQ0YsT0FBTyxDQUFDRyxTQUFSLENBQWtCQyxLQUFwRCxFQUEyRDtBQUN2RFosTUFBQUEsNkRBQUEsQ0FBZUQsd0ZBQWY7QUFDSCxLQUZELE1BRU87QUFDSCxVQUFJVSxJQUFJLEdBQUdELE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxXQUFiLEdBQTJCLFdBQVdGLE9BQU8sQ0FBQ0MsSUFBUixDQUFhTyxTQUFuRCxHQUErRCxFQUExRTtBQUNBLFVBQUlMLFNBQVMsR0FBR0gsT0FBTyxDQUFDRyxTQUFSLENBQWtCQyxLQUFsQixHQUEwQkosT0FBTyxDQUFDRyxTQUFSLENBQWtCQyxLQUFsQixHQUEwQixHQUExQixHQUFnQ2Isd0ZBQTFELEdBQTRHLEVBQTVIOztBQUVBLFVBQUksQ0FBQ1ksU0FBTCxFQUFnQjtBQUFFRixRQUFBQSxJQUFJLElBQUksTUFBTVYsMEZBQWQ7QUFBa0U7O0FBQ3BGQyxNQUFBQSwwREFBQSxDQUFZUyxJQUFJLElBQUlBLElBQUksSUFBSUUsU0FBUixHQUFvQixNQUFNWixzRUFBTixHQUFzQyxHQUExRCxHQUFnRSxFQUFwRSxDQUFKLEdBQThFWSxTQUExRjtBQUNIO0FBQ0osR0FkRCxFQWNHLElBZEg7QUFlSCxDQW5CRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy9jaGVjay5qcz8zNDA5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuLi91dGlscy90b2FzdHInO1xuXG4vLyBDaGVjayBmb3IgdXBkYXRlcyB0cmlnZ2VyXG4kKCdbZGF0YS1ncG0tY2hlY2t1cGRhdGVzXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICBlbGVtZW50LmZpbmQoJ2knKS5hZGRDbGFzcygnZmEtc3BpbicpO1xuXG4gICAgZ3BtLmZldGNoKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBlbGVtZW50LmZpbmQoJ2knKS5yZW1vdmVDbGFzcygnZmEtc3BpbicpO1xuICAgICAgICBsZXQgcGF5bG9hZCA9IHJlc3BvbnNlLnBheWxvYWQ7XG5cbiAgICAgICAgaWYgKCFwYXlsb2FkKSB7IHJldHVybjsgfVxuICAgICAgICBpZiAoIXBheWxvYWQuZ3Jhdi5pc1VwZGF0YWJsZSAmJiAhcGF5bG9hZC5yZXNvdXJjZXMudG90YWwpIHtcbiAgICAgICAgICAgIHRvYXN0ci5zdWNjZXNzKHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRVZFUllUSElOR19VUF9UT19EQVRFKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBncmF2ID0gcGF5bG9hZC5ncmF2LmlzVXBkYXRhYmxlID8gJ0dyYXYgdicgKyBwYXlsb2FkLmdyYXYuYXZhaWxhYmxlIDogJyc7XG4gICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gcGF5bG9hZC5yZXNvdXJjZXMudG90YWwgPyBwYXlsb2FkLnJlc291cmNlcy50b3RhbCArICcgJyArIHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFU19BUkVfQVZBSUxBQkxFIDogJyc7XG5cbiAgICAgICAgICAgIGlmICghcmVzb3VyY2VzKSB7IGdyYXYgKz0gJyAnICsgdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JU19BVkFJTEFCTEVfRk9SX1VQREFURTsgfVxuICAgICAgICAgICAgdG9hc3RyLmluZm8oZ3JhdiArIChncmF2ICYmIHJlc291cmNlcyA/ICcgJyArIHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uQU5EICsgJyAnIDogJycpICsgcmVzb3VyY2VzKTtcbiAgICAgICAgfVxuICAgIH0sIHRydWUpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIkluc3RhbmNlIiwiZ3BtIiwidHJhbnNsYXRpb25zIiwidG9hc3RyIiwib24iLCJlbGVtZW50IiwiZmluZCIsImFkZENsYXNzIiwiZmV0Y2giLCJyZXNwb25zZSIsInJlbW92ZUNsYXNzIiwicGF5bG9hZCIsImdyYXYiLCJpc1VwZGF0YWJsZSIsInJlc291cmNlcyIsInRvdGFsIiwic3VjY2VzcyIsIlBMVUdJTl9BRE1JTiIsIkVWRVJZVEhJTkdfVVBfVE9fREFURSIsImF2YWlsYWJsZSIsIlVQREFURVNfQVJFX0FWQUlMQUJMRSIsIklTX0FWQUlMQUJMRV9GT1JfVVBEQVRFIiwiaW5mbyIsIkFORCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/check.js\n");
/***/ }),
/***/ "./app/updates/feed.js":
/*!*****************************!*\
!*** ./app/updates/feed.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\nvar URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNewsFeed\");\n\nvar Feed = /*#__PURE__*/function () {\n function Feed() {\n _classCallCheck(this, Feed);\n\n this.data = null;\n }\n\n _createClass(Feed, [{\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n\n var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(URI, {\n method: 'post',\n body: {\n refresh: refresh\n }\n }, function (response) {\n _this.data = response;\n callback(response);\n });\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n\n if (!feed.length) {\n return;\n }\n\n var loader = feed.find('.widget-loader');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n feed.find('> ul').hide();\n\n if (!this.data || this.data.error || _refresh) {\n this.fetch(_refresh, this.updateContent.bind(this));\n } else {\n this.updateContent();\n }\n }\n }, {\n key: \"updateContent\",\n value: function updateContent() {\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n\n if (!feed.length) {\n return;\n }\n\n var loader = feed.find('.widget-loader').hide();\n var content = feed.find('> ul').empty().show();\n\n if (this.data.error || this.data.status === 'error') {\n loader.show().find('div').remove();\n loader.find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-warning');\n loader.append(\"<div>\".concat(this.data.error ? this.data.error.message : this.data.message || 'Unable to download news feed', \"</div>\"));\n return;\n }\n\n if (this.data && this.data.feed_data) {\n content.append(this.data.feed_data);\n }\n }\n }]);\n\n return Feed;\n}();\n\nvar feed = new Feed();\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n return feed.refresh();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"feed\"]', function (event) {\n event.preventDefault();\n feed.refresh(true);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (feed);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VXdCLFNBQTNCLEVBQXNDO0FBQ2xDTCxRQUFBQSxPQUFPLENBQUNHLE1BQVIsQ0FBZSxLQUFLdEIsSUFBTCxDQUFVd0IsU0FBekI7QUFDSDtBQUNKOzs7Ozs7QUFHTCxJQUFJbEIsSUFBSSxHQUFHLElBQUlQLElBQUosRUFBWDtBQUNBTiw2Q0FBQyxDQUFDZ0MsUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0I7QUFBQSxTQUFNcEIsSUFBSSxDQUFDTCxPQUFMLEVBQU47QUFBQSxDQUFsQjtBQUNBUiw2Q0FBQyxDQUFDZ0MsUUFBRCxDQUFELENBQVlFLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHVCQUF4QixFQUFpRCxVQUFDQyxLQUFELEVBQVc7QUFDeERBLEVBQUFBLEtBQUssQ0FBQ0MsY0FBTjtBQUNBdkIsRUFBQUEsSUFBSSxDQUFDTCxPQUFMLENBQWEsSUFBYjtBQUNILENBSEQ7QUFLQSxpRUFBZUssSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy9mZWVkLmpzP2YxNWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBVUkkgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L2FqYXguanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldE5ld3NGZWVkYDtcblxuY2xhc3MgRmVlZCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgfVxuXG4gICAgZmV0Y2gocmVmcmVzaCA9IGZhbHNlLCBjYWxsYmFjayA9IGZ1bmN0aW9uKCkge30pIHtcbiAgICAgICAgcmVxdWVzdChVUkksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogeyByZWZyZXNoIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVmcmVzaChyZWZyZXNoID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZmVlZCA9ICQoJyNuZXdzLWZlZWQgLndpZGdldC1jb250ZW50Jyk7XG4gICAgICAgIGlmICghZmVlZC5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IGxvYWRlciA9IGZlZWQuZmluZCgnLndpZGdldC1sb2FkZXInKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJ2RpdicpLnJlbW92ZSgpO1xuICAgICAgICBsb2FkZXIuZmluZCgnLmZhLXdhcm5pbmcnKS5yZW1vdmVDbGFzcygnZmEtd2FybmluZycpLmFkZENsYXNzKCdmYS1yZWZyZXNoIGZhLXNwaW4nKTtcbiAgICAgICAgbG9hZGVyLnNob3coKTtcblxuICAgICAgICBmZWVkLmZpbmQoJz4gdWwnKS5oaWRlKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGEgfHwgdGhpcy5kYXRhLmVycm9yIHx8IHJlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2gocmVmcmVzaCwgdGhpcy51cGRhdGVDb250ZW50LmJpbmQodGhpcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVDb250ZW50KCkge1xuICAgICAgICBjb25zdCBmZWVkID0gJCgnI25ld3MtZmVlZCAud2lkZ2V0LWNvbnRlbnQnKTtcbiAgICAgICAgaWYgKCFmZWVkLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgbG9hZGVyID0gZmVlZC5maW5kKCcud2lkZ2V0LWxvYWRlcicpLmhpZGUoKTtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBmZWVkLmZpbmQoJz4gdWwnKS5lbXB0eSgpLnNob3coKTtcblxuICAgICAgICBpZiAodGhpcy5kYXRhLmVycm9yIHx8IHRoaXMuZGF0YS5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICAgIGxvYWRlci5zaG93KCkuZmluZCgnZGl2JykucmVtb3ZlKCk7XG4gICAgICAgICAgICBsb2FkZXIuZmluZCgnLmZhLXJlZnJlc2gnKS5yZW1vdmVDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJykuYWRkQ2xhc3MoJ2ZhLXdhcm5pbmcnKTtcbiAgICAgICAgICAgIGxvYWRlci5hcHBlbmQoYDxkaXY+JHt0aGlzLmRhdGEuZXJyb3IgPyB0aGlzLmRhdGEuZXJyb3IubWVzc2FnZSA6IHRoaXMuZGF0YS5tZXNzYWdlIHx8ICdVbmFibGUgdG8gZG93bmxvYWQgbmV3cyBmZWVkJ308L2Rpdj5gKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEuZmVlZF9kYXRhKSB7XG4gICAgICAgICAgICBjb250ZW50LmFwcGVuZCh0aGlzLmRhdGEuZmVlZF9kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubGV0IGZlZWQgPSBuZXcgRmVlZCgpO1xuJChkb2N1bWVudCkucmVhZHkoKCkgPT4gZmVlZC5yZWZyZXNoKCkpO1xuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlZnJlc2g9XCJmZWVkXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBmZWVkLnJlZnJlc2godHJ1ZSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZmVlZDtcbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwicmVxdWVzdCIsIlVSSSIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiRmVlZCIsImRhdGEiLCJyZWZyZXNoIiwiY2FsbGJhY2siLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJmZWVkIiwibGVuZ3RoIiwibG9hZGVyIiwiZmluZCIsInJlbW92ZSIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJzaG93IiwiaGlkZSIsImVycm9yIiwiZmV0Y2giLCJ1cGRhdGVDb250ZW50IiwiYmluZCIsImNvbnRlbnQiLCJlbXB0eSIsInN0YXR1cyIsImFwcGVuZCIsIm1lc3NhZ2UiLCJmZWVkX2RhdGEiLCJkb2N1bWVudCIsInJlYWR5Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/updates/feed.js\n");
/***/ }),
/***/ "./app/updates/index.js":
/*!******************************!*\
!*** ./app/updates/index.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Updates),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance),\n/* harmony export */ \"Notifications\": () => (/* reexport safe */ _notifications__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ \"Feed\": () => (/* reexport safe */ _feed__WEBPACK_IMPORTED_MODULE_5__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/array/unique */ \"./node_modules/mout/array/unique.js\");\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_array_unique__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _notifications__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./notifications */ \"./app/updates/notifications.js\");\n/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./feed */ \"./app/updates/feed.js\");\n/* harmony import */ var _check__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./check */ \"./app/updates/check.js\");\n/* harmony import */ var _update__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./update */ \"./app/updates/update.js\");\n/* harmony import */ var _channel_switcher__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./channel-switcher */ \"./app/updates/channel-switcher.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\nvar Updates = /*#__PURE__*/function () {\n function Updates() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Updates);\n\n this.setPayload(payload);\n this.task = \"task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep);\n this.updateURL = '';\n }\n\n _createClass(Updates, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n return this;\n }\n }, {\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch(function (response) {\n return _this.setPayload(response);\n }, force);\n return this;\n }\n }, {\n key: \"maintenance\",\n value: function maintenance() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'hide';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#updates [data-update-packages]');\n element[mode === 'show' ? 'fadeIn' : 'fadeOut']();\n\n if (mode === 'hide') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.badges.with-updates').removeClass('with-updates').find('.badge.updates').remove();\n }\n\n return this;\n }\n }, {\n key: \"grav\",\n value: function grav() {\n var payload = this.payload.grav;\n\n if (payload && payload.isUpdatable) {\n var task = this.task;\n var bar = '';\n\n if (!payload.isSymlink) {\n this.updateURL = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.base_url_relative, \"/update.json/\").concat(task, \"updategrav/admin-nonce\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep).concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce);\n bar += \"<button data-remodal-target=\\\"update-grav\\\" class=\\\"button button-small secondary pointer-events-none\\\" id=\\\"grav-update-button\\\">\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_GRAV_NOW, \" <span class=\\\"cnt-down\\\">(5s)</span></button>\");\n } else {\n bar += \"<span class=\\\"hint--left\\\" style=\\\"float: right;\\\" data-hint=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.GRAV_SYMBOLICALLY_LINKED, \"\\\"><i class=\\\"fa fa-fw fa-link\\\"></i></span>\");\n }\n\n bar += \"\\n Grav <b>v\".concat(payload.available, \"</b> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"! <span class=\\\"less\\\">(\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.CURRENT, \" v\").concat(payload.version, \")</span>\\n \");\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').removeClass('hidden');\n\n if (element.is(':empty')) {\n element.hide();\n }\n\n element.addClass('grav').html(\"\".concat(bar)).slideDown(150, function () {\n var c = 5;\n var x = setInterval(function () {\n c -= 1;\n element.find('.pointer-events-none .cnt-down').text('(' + c + 's)');\n }, 1000);\n setTimeout(function () {\n clearInterval(x);\n element.find('.pointer-events-none .cnt-down').remove();\n element.find('.pointer-events-none').removeClass('pointer-events-none');\n }, 5000);\n }).parent('#messages').addClass('default-box-shadow');\n }\n\n return this;\n }\n }, {\n key: \"resources\",\n value: function resources() {\n if (!this.payload || !this.payload.resources || !this.payload.resources.total) {\n return this.maintenance('hide');\n }\n\n var is_current_package_latest = true;\n var map = ['plugins', 'themes'];\n var singles = ['plugin', 'theme'];\n var _this$payload$resourc = this.payload.resources,\n plugins = _this$payload$resourc.plugins,\n themes = _this$payload$resourc.themes;\n\n if (!this.payload.resources.total) {\n return this;\n }\n\n [plugins, themes].forEach(function (resources, index) {\n if (!resources || Array.isArray(resources)) {\n return;\n }\n\n var length = Object.keys(resources).length;\n var type = map[index]; // sidebar\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-menu a[href$=\\\"/\".concat(map[index], \"\\\"]\")).find('.badges').addClass('with-updates').find('.badge.updates').text(length);\n var type_translation = ''; // update all\n\n if (type === 'plugins') {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.PLUGINS;\n } else {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.THEMES;\n }\n\n var updateAll = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(type));\n updateAll.css('display', 'block').html(\"\\n <p>\\n <a href=\\\"#\\\" class=\\\"button button-small secondary\\\" data-remodal-target=\\\"update-packages\\\" data-packages-slugs=\\\"\".concat(Object.keys(resources).join(), \"\\\" data-\").concat(singles[index], \"-action=\\\"start-packages-update\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.ALL, \" \").concat(type_translation, \"</a>\\n <i class=\\\"fa fa-bullhorn\\\"></i>\\n \").concat(length, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_YOUR, \" \").concat(type_translation.toLowerCase(), \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE, \"\\n </p>\\n \"));\n var existing_slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs') || '';\n\n if (existing_slugs) {\n existing_slugs = existing_slugs.split(',');\n } else {\n existing_slugs = [];\n }\n\n var slugs = mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default()(existing_slugs.concat(Object.keys(resources))).join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs', \"\".concat(slugs));\n Object.keys(resources).forEach(function (item) {\n // listing page\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-gpm-\".concat(singles[index], \"=\\\"\").concat(item, \"\\\"]\"));\n var element = container.find('.gpm-name');\n var url = element.find('a');\n var content_wrapper = container.parents('.content-wrapper');\n\n if (type === 'plugins' && !element.find('.badge.update').length) {\n element.append(\"<a class=\\\"plugin-update-button\\\" href=\\\"\".concat(url.attr('href'), \"\\\"><span class=\\\"badge update\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_AVAILABLE, \"!</span></a>\"));\n content_wrapper.addClass('has-updates');\n } else if (type === 'themes') {\n element.append(\"<div class=\\\"gpm-ribbon\\\"><a href=\\\"\".concat(url.attr('href'), \"\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE.toUpperCase(), \"</a></div>\"));\n content_wrapper.addClass('has-updates');\n } // details page\n\n\n if (container.length) {\n var details = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(singles[index]));\n\n if (details.length) {\n var releaseType = resources[item].type === 'testing' ? '<span class=\"gpm-testing\">test release</span>' : '';\n details.html(\"\\n <p>\\n <a href=\\\"#\\\" class=\\\"button button-small secondary\\\" data-remodal-target=\\\"update-packages\\\" data-packages-slugs=\\\"\".concat(item, \"\\\" data-\").concat(singles[index], \"-action=\\\"start-package-installation\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(singles[index].charAt(0).toUpperCase() + singles[index].substr(1).toLowerCase(), \"</a>\\n <i class=\\\"fa fa-bullhorn\\\"></i>\\n <strong>v\").concat(resources[item].available, \"</strong> \").concat(releaseType, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_THIS, \" \").concat(singles[index], \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"!\\n </p>\\n \")).css('display', 'block');\n is_current_package_latest = false;\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').addClass('updates-checked');\n\n if (!is_current_package_latest) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.warning-reinstall-not-latest-release').removeClass('hidden');\n }\n }\n }]);\n\n return Updates;\n}();\n\n\nvar Instance = new Updates();\n // automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch\n\n_utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.on('fetched', function (response, raw) {\n Instance.setPayload(response.payload || {});\n Instance.grav().resources();\n});\n\nif (grav_config__WEBPACK_IMPORTED_MODULE_2__.config.enable_auto_updates_check === '1') {\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsa0JBQUQsQ0FBRCxDQUFzQnFDLFFBQXRCLENBQStCLGlCQUEvQjs7QUFFQSxVQUFJLENBQUNhLHlCQUFMLEVBQWdDO0FBQzVCbEQsUUFBQUEsNkNBQUMsQ0FBQyx1Q0FBRCxDQUFELENBQTJDbUIsV0FBM0MsQ0FBdUQsUUFBdkQ7QUFDSDtBQUNKOzs7Ozs7O0FBR0wsSUFBSWYsUUFBUSxHQUFHLElBQUlJLE9BQUosRUFBZjtDQUdBOztBQUNBSCxtREFBQSxDQUFPLFNBQVAsRUFBa0IsVUFBQ1csUUFBRCxFQUFXNkUsR0FBWCxFQUFtQjtBQUNqQ3pGLEVBQUFBLFFBQVEsQ0FBQ00sVUFBVCxDQUFvQk0sUUFBUSxDQUFDUCxPQUFULElBQW9CLEVBQXhDO0FBQ0FMLEVBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsR0FBZ0J5QixTQUFoQjtBQUNILENBSEQ7O0FBS0EsSUFBSTdDLHlFQUFBLEtBQXFDLEdBQXpDLEVBQThDO0FBQzFDRyxFQUFBQSxzREFBQTtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91cGRhdGVzL2luZGV4LmpzPzIwZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB1bmlxdWUgZnJvbSAnbW91dC9hcnJheS91bmlxdWUnO1xuaW1wb3J0IHsgY29uZmlnLCB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuaW1wb3J0IE5vdGlmaWNhdGlvbnMgZnJvbSAnLi9ub3RpZmljYXRpb25zJztcblxuaW1wb3J0IEZlZWQgZnJvbSAnLi9mZWVkJztcbmltcG9ydCAnLi9jaGVjayc7XG5pbXBvcnQgJy4vdXBkYXRlJztcbmltcG9ydCAnLi9jaGFubmVsLXN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXBkYXRlcyB7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZCA9IHt9KSB7XG4gICAgICAgIHRoaXMuc2V0UGF5bG9hZChwYXlsb2FkKTtcbiAgICAgICAgdGhpcy50YXNrID0gYHRhc2ske2NvbmZpZy5wYXJhbV9zZXB9YDtcbiAgICAgICAgdGhpcy51cGRhdGVVUkwgPSAnJztcbiAgICB9XG5cbiAgICBzZXRQYXlsb2FkKHBheWxvYWQgPSB7fSkge1xuICAgICAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZldGNoKGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgZ3BtLmZldGNoKChyZXNwb25zZSkgPT4gdGhpcy5zZXRQYXlsb2FkKHJlc3BvbnNlKSwgZm9yY2UpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1haW50ZW5hbmNlKG1vZGUgPSAnaGlkZScpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKCcjdXBkYXRlcyBbZGF0YS11cGRhdGUtcGFja2FnZXNdJyk7XG5cbiAgICAgICAgZWxlbWVudFttb2RlID09PSAnc2hvdycgPyAnZmFkZUluJyA6ICdmYWRlT3V0J10oKTtcblxuICAgICAgICBpZiAobW9kZSA9PT0gJ2hpZGUnKSB7XG4gICAgICAgICAgICAkKCcuYmFkZ2VzLndpdGgtdXBkYXRlcycpLnJlbW92ZUNsYXNzKCd3aXRoLXVwZGF0ZXMnKS5maW5kKCcuYmFkZ2UudXBkYXRlcycpLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZ3JhdigpIHtcbiAgICAgICAgbGV0IHBheWxvYWQgPSB0aGlzLnBheWxvYWQuZ3JhdjtcblxuICAgICAgICBpZiAocGF5bG9hZCAmJiBwYXlsb2FkLmlzVXBkYXRhYmxlKSB7XG4gICAgICAgICAgICBsZXQgdGFzayA9IHRoaXMudGFzaztcbiAgICAgICAgICAgIGxldCBiYXIgPSAnJztcblxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkLmlzU3ltbGluaykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVVJMID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS91cGRhdGUuanNvbi8ke3Rhc2t9dXBkYXRlZ3Jhdi9hZG1pbi1ub25jZSR7Y29uZmlnLnBhcmFtX3NlcH0ke2NvbmZpZy5hZG1pbl9ub25jZX1gO1xuICAgICAgICAgICAgICAgIGJhciArPSBgPGJ1dHRvbiBkYXRhLXJlbW9kYWwtdGFyZ2V0PVwidXBkYXRlLWdyYXZcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc21hbGwgc2Vjb25kYXJ5IHBvaW50ZXItZXZlbnRzLW5vbmVcIiBpZD1cImdyYXYtdXBkYXRlLWJ1dHRvblwiPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVEVfR1JBVl9OT1d9IDxzcGFuIGNsYXNzPVwiY250LWRvd25cIj4oNXMpPC9zcGFuPjwvYnV0dG9uPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJhciArPSBgPHNwYW4gY2xhc3M9XCJoaW50LS1sZWZ0XCIgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCIgZGF0YS1oaW50PVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkdSQVZfU1lNQk9MSUNBTExZX0xJTktFRH1cIj48aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWxpbmtcIj48L2k+PC9zcGFuPmA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJhciArPSBgXG4gICAgICAgICAgICAgICAgR3JhdiA8Yj52JHtwYXlsb2FkLmF2YWlsYWJsZX08L2I+ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JU19OT1dfQVZBSUxBQkxFfSEgPHNwYW4gY2xhc3M9XCJsZXNzXCI+KCR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5DVVJSRU5UfSB2JHtwYXlsb2FkLnZlcnNpb259KTwvc3Bhbj5cbiAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJCgnW2RhdGEtZ3BtLWdyYXZdJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pcygnOmVtcHR5JykpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmhpZGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudFxuICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnZ3JhdicpXG4gICAgICAgICAgICAgICAgLmh0bWwoYCR7YmFyfWApXG4gICAgICAgICAgICAgICAgLnNsaWRlRG93bigxNTAsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IDU7XG4gICAgICAgICAgICAgICAgICAgIHZhciB4ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjIC09IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoJy5wb2ludGVyLWV2ZW50cy1ub25lIC5jbnQtZG93bicpLnRleHQoJygnICsgYyArICdzKScpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTtcblxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZCgnLnBvaW50ZXItZXZlbnRzLW5vbmUgLmNudC1kb3duJykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoJy5wb2ludGVyLWV2ZW50cy1ub25lJykucmVtb3ZlQ2xhc3MoJ3BvaW50ZXItZXZlbnRzLW5vbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucGFyZW50KCcjbWVzc2FnZXMnKS5hZGRDbGFzcygnZGVmYXVsdC1ib3gtc2hhZG93Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICByZXNvdXJjZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXlsb2FkIHx8ICF0aGlzLnBheWxvYWQucmVzb3VyY2VzIHx8ICF0aGlzLnBheWxvYWQucmVzb3VyY2VzLnRvdGFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYWludGVuYW5jZSgnaGlkZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzX2N1cnJlbnRfcGFja2FnZV9sYXRlc3QgPSB0cnVlO1xuICAgICAgICBsZXQgbWFwID0gWydwbHVnaW5zJywgJ3RoZW1lcyddO1xuICAgICAgICBsZXQgc2luZ2xlcyA9IFsncGx1Z2luJywgJ3RoZW1lJ107XG4gICAgICAgIGxldCB7IHBsdWdpbnMsIHRoZW1lcyB9ID0gdGhpcy5wYXlsb2FkLnJlc291cmNlcztcblxuICAgICAgICBpZiAoIXRoaXMucGF5bG9hZC5yZXNvdXJjZXMudG90YWwpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBbcGx1Z2lucywgdGhlbWVzXS5mb3JFYWNoKGZ1bmN0aW9uKHJlc291cmNlcywgaW5kZXgpIHtcbiAgICAgICAgICAgIGlmICghcmVzb3VyY2VzIHx8IEFycmF5LmlzQXJyYXkocmVzb3VyY2VzKSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgIGxldCBsZW5ndGggPSBPYmplY3Qua2V5cyhyZXNvdXJjZXMpLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCB0eXBlID0gbWFwW2luZGV4XTtcblxuICAgICAgICAgICAgLy8gc2lkZWJhclxuICAgICAgICAgICAgJChgI2FkbWluLW1lbnUgYVtocmVmJD1cIi8ke21hcFtpbmRleF19XCJdYClcbiAgICAgICAgICAgICAgICAuZmluZCgnLmJhZGdlcycpXG4gICAgICAgICAgICAgICAgLmFkZENsYXNzKCd3aXRoLXVwZGF0ZXMnKVxuICAgICAgICAgICAgICAgIC5maW5kKCcuYmFkZ2UudXBkYXRlcycpLnRleHQobGVuZ3RoKTtcblxuICAgICAgICAgICAgdmFyIHR5cGVfdHJhbnNsYXRpb24gPSAnJztcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBhbGxcblxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwbHVnaW5zJykge1xuICAgICAgICAgICAgICAgIHR5cGVfdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlBMVUdJTlM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHR5cGVfdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlRIRU1FUztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHVwZGF0ZUFsbCA9ICQoYC5ncmF2LXVwZGF0ZS4ke3R5cGV9YCk7XG4gICAgICAgICAgICB1cGRhdGVBbGwuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJykuaHRtbChgXG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zbWFsbCBzZWNvbmRhcnlcIiBkYXRhLXJlbW9kYWwtdGFyZ2V0PVwidXBkYXRlLXBhY2thZ2VzXCIgZGF0YS1wYWNrYWdlcy1zbHVncz1cIiR7T2JqZWN0LmtleXMocmVzb3VyY2VzKS5qb2luKCl9XCIgZGF0YS0ke3NpbmdsZXNbaW5kZXhdfS1hY3Rpb249XCJzdGFydC1wYWNrYWdlcy11cGRhdGVcIj4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFfSAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uQUxMfSAke3R5cGVfdHJhbnNsYXRpb259PC9hPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnVsbGhvcm5cIj48L2k+XG4gICAgICAgICAgICAgICAgJHtsZW5ndGh9ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5PRl9ZT1VSfSAke3R5cGVfdHJhbnNsYXRpb24udG9Mb3dlckNhc2UoKX0gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkhBVkVfQU5fVVBEQVRFX0FWQUlMQUJMRX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIGApO1xuXG4gICAgICAgICAgICBsZXQgZXhpc3Rpbmdfc2x1Z3MgPSAkKCdbZGF0YS11cGRhdGUtcGFja2FnZXNdJykuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpIHx8ICcnO1xuXG4gICAgICAgICAgICBpZiAoZXhpc3Rpbmdfc2x1Z3MpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ19zbHVncyA9IGV4aXN0aW5nX3NsdWdzLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nX3NsdWdzID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzbHVncyA9IHVuaXF1ZShleGlzdGluZ19zbHVncy5jb25jYXQoT2JqZWN0LmtleXMocmVzb3VyY2VzKSkpLmpvaW4oKTtcbiAgICAgICAgICAgICQoJ1tkYXRhLXVwZGF0ZS1wYWNrYWdlc10nKS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJywgYCR7c2x1Z3N9YCk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc291cmNlcykuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICAgICAgLy8gbGlzdGluZyBwYWdlXG4gICAgICAgICAgICAgICAgbGV0IGNvbnRhaW5lciA9ICQoYFtkYXRhLWdwbS0ke3NpbmdsZXNbaW5kZXhdfT1cIiR7aXRlbX1cIl1gKTtcbiAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGNvbnRhaW5lci5maW5kKCcuZ3BtLW5hbWUnKTtcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gZWxlbWVudC5maW5kKCdhJyk7XG4gICAgICAgICAgICAgICAgbGV0IGNvbnRlbnRfd3JhcHBlciA9IGNvbnRhaW5lci5wYXJlbnRzKCcuY29udGVudC13cmFwcGVyJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ3BsdWdpbnMnICYmICFlbGVtZW50LmZpbmQoJy5iYWRnZS51cGRhdGUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoYDxhIGNsYXNzPVwicGx1Z2luLXVwZGF0ZS1idXR0b25cIiBocmVmPVwiJHt1cmwuYXR0cignaHJlZicpfVwiPjxzcGFuIGNsYXNzPVwiYmFkZ2UgdXBkYXRlXCI+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURV9BVkFJTEFCTEV9ITwvc3Bhbj48L2E+YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfd3JhcHBlci5hZGRDbGFzcygnaGFzLXVwZGF0ZXMnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd0aGVtZXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kKGA8ZGl2IGNsYXNzPVwiZ3BtLXJpYmJvblwiPjxhIGhyZWY9XCIke3VybC5hdHRyKCdocmVmJyl9XCI+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURS50b1VwcGVyQ2FzZSgpfTwvYT48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudF93cmFwcGVyLmFkZENsYXNzKCdoYXMtdXBkYXRlcycpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgcGFnZVxuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gJChgLmdyYXYtdXBkYXRlLiR7c2luZ2xlc1tpbmRleF19YCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlbGVhc2VUeXBlID0gcmVzb3VyY2VzW2l0ZW1dLnR5cGUgPT09ICd0ZXN0aW5nJyA/ICc8c3BhbiBjbGFzcz1cImdwbS10ZXN0aW5nXCI+dGVzdCByZWxlYXNlPC9zcGFuPicgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuaHRtbChgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNtYWxsIHNlY29uZGFyeVwiIGRhdGEtcmVtb2RhbC10YXJnZXQ9XCJ1cGRhdGUtcGFja2FnZXNcIiBkYXRhLXBhY2thZ2VzLXNsdWdzPVwiJHtpdGVtfVwiIGRhdGEtJHtzaW5nbGVzW2luZGV4XX0tYWN0aW9uPVwic3RhcnQtcGFja2FnZS1pbnN0YWxsYXRpb25cIj4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFfSAke3NpbmdsZXNbaW5kZXhdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2luZ2xlc1tpbmRleF0uc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCl9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJ1bGxob3JuXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnYke3Jlc291cmNlc1tpdGVtXS5hdmFpbGFibGV9PC9zdHJvbmc+ICR7cmVsZWFzZVR5cGV9ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5PRl9USElTfSAke3NpbmdsZXNbaW5kZXhdfSAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSVNfTk9XX0FWQUlMQUJMRX0hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgYCkuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2N1cnJlbnRfcGFja2FnZV9sYXRlc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKCdbZGF0YS11cGRhdGUtcGFja2FnZXNdJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkKCcuY29udGVudC13cmFwcGVyJykuYWRkQ2xhc3MoJ3VwZGF0ZXMtY2hlY2tlZCcpO1xuXG4gICAgICAgIGlmICghaXNfY3VycmVudF9wYWNrYWdlX2xhdGVzdCkge1xuICAgICAgICAgICAgJCgnLndhcm5pbmctcmVpbnN0YWxsLW5vdC1sYXRlc3QtcmVsZWFzZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubGV0IEluc3RhbmNlID0gbmV3IFVwZGF0ZXMoKTtcbmV4cG9ydCB7IEluc3RhbmNlLCBOb3RpZmljYXRpb25zLCBGZWVkIH07XG5cbi8vIGF1dG9tYXRpY2FsbHkgcmVmcmVzaCBVSSBmb3IgdXBkYXRlcyAoZ3JhcGgsIHNpZGViYXIsIHBsdWdpbi90aGVtZXMgcGFnZXMpIGFmdGVyIGV2ZXJ5IGZldGNoXG5ncG0ub24oJ2ZldGNoZWQnLCAocmVzcG9uc2UsIHJhdykgPT4ge1xuICAgIEluc3RhbmNlLnNldFBheWxvYWQocmVzcG9uc2UucGF5bG9hZCB8fCB7fSk7XG4gICAgSW5zdGFuY2UuZ3JhdigpLnJlc291cmNlcygpO1xufSk7XG5cbmlmIChjb25maWcuZW5hYmxlX2F1dG9fdXBkYXRlc19jaGVjayA9PT0gJzEnKSB7XG4gICAgZ3BtLmZldGNoKCk7XG59XG4iXSwibmFtZXMiOlsiJCIsInVuaXF1ZSIsImNvbmZpZyIsInRyYW5zbGF0aW9ucyIsIkluc3RhbmNlIiwiZ3BtIiwiTm90aWZpY2F0aW9ucyIsIkZlZWQiLCJVcGRhdGVzIiwicGF5bG9hZCIsInNldFBheWxvYWQiLCJ0YXNrIiwicGFyYW1fc2VwIiwidXBkYXRlVVJMIiwiZm9yY2UiLCJmZXRjaCIsInJlc3BvbnNlIiwibW9kZSIsImVsZW1lbnQiLCJyZW1vdmVDbGFzcyIsImZpbmQiLCJyZW1vdmUiLCJncmF2IiwiaXNVcGRhdGFibGUiLCJiYXIiLCJpc1N5bWxpbmsiLCJiYXNlX3VybF9yZWxhdGl2ZSIsImFkbWluX25vbmNlIiwiUExVR0lOX0FETUlOIiwiVVBEQVRFX0dSQVZfTk9XIiwiR1JBVl9TWU1CT0xJQ0FMTFlfTElOS0VEIiwiYXZhaWxhYmxlIiwiSVNfTk9XX0FWQUlMQUJMRSIsIkNVUlJFTlQiLCJ2ZXJzaW9uIiwiaXMiLCJoaWRlIiwiYWRkQ2xhc3MiLCJodG1sIiwic2xpZGVEb3duIiwiYyIsIngiLCJzZXRJbnRlcnZhbCIsInRleHQiLCJzZXRUaW1lb3V0IiwiY2xlYXJJbnRlcnZhbCIsInBhcmVudCIsInJlc291cmNlcyIsInRvdGFsIiwibWFpbnRlbmFuY2UiLCJpc19jdXJyZW50X3BhY2thZ2VfbGF0ZXN0IiwibWFwIiwic2luZ2xlcyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJmb3JFYWNoIiwiaW5kZXgiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJPYmplY3QiLCJrZXlzIiwidHlwZSIsInR5cGVfdHJhbnNsYXRpb24iLCJQTFVHSU5TIiwiVEhFTUVTIiwidXBkYXRlQWxsIiwiY3NzIiwiam9pbiIsIlVQREFURSIsIkFMTCIsIk9GX1lPVVIiLCJ0b0xvd2VyQ2FzZSIsIkhBVkVfQU5fVVBEQVRFX0FWQUlMQUJMRSIsImV4aXN0aW5nX3NsdWdzIiwiYXR0ciIsInNwbGl0Iiwic2x1Z3MiLCJjb25jYXQiLCJpdGVtIiwiY29udGFpbmVyIiwidXJsIiwiY29udGVudF93cmFwcGVyIiwicGFyZW50cyIsImFwcGVuZCIsIlVQREFURV9BVkFJTEFCTEUiLCJ0b1VwcGVyQ2FzZSIsImRldGFpbHMiLCJyZWxlYXNlVHlwZSIsImNoYXJBdCIsInN1YnN0ciIsIk9GX1RISVMiLCJvbiIsInJhdyIsImVuYWJsZV9hdXRvX3VwZGF0ZXNfY2hlY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/index.js\n");
/***/ }),
/***/ "./app/updates/notifications.js":
/*!**************************************!*\
!*** ./app/updates/notifications.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar canFetchNotifications = function canFetchNotifications() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.enabled;\n};\n\nvar notificationsFilters = function notificationsFilters() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.filters;\n};\n\nvar Notifications = /*#__PURE__*/function () {\n function Notifications() {\n _classCallCheck(this, Notifications);\n }\n\n _createClass(Notifications, [{\n key: \"fetch\",\n value: // Grav.default.Notifications.fetch()\n function fetch() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$filter = _ref.filter,\n filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter,\n _ref$refresh = _ref.refresh,\n refresh = _ref$refresh === void 0 ? false : _ref$refresh;\n\n if (!canFetchNotifications()) {\n return false;\n }\n\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications');\n var loader = feed.find('.widget-loader');\n var content = feed.find('.widget-content > ul');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n content.hide();\n\n var processNotifications = function processNotifications(response) {\n var notifications = response.notifications;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').find('.widget-content > ul').empty();\n\n if (notifications) {\n Object.keys(notifications).forEach(function (location) {\n return Notifications.processLocation(location, notifications[location]);\n });\n }\n };\n\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNotifications\"), {\n method: 'post',\n body: {\n refresh: refresh,\n filter: filter\n }\n }, function (response) {\n processNotifications(response);\n })[\"catch\"](function () {\n var widget = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .widget-content');\n widget.find('.widget-loader').find('div').remove();\n widget.find('.widget-loader').append('<div>Failed to retrieve notifications</div>').find('.fa-spin').removeClass('fa-spin fa-refresh').addClass('fa-warning');\n });\n }\n }], [{\n key: \"addShowAllInFeed\",\n value: function addShowAllInFeed() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications ul').append('<li class=\"show-all\" data-notification-action=\"show-all-notifications\">Show all</li>');\n }\n }, {\n key: \"showNotificationInFeed\",\n value: function showNotificationInFeed(notification) {\n var notifications = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').removeClass('hidden');\n var loader = notifications.find('.widget-loader').hide();\n var content = notifications.find('.widget-content > ul').show();\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n content.append(notification).find('li:nth-child(n+11)').addClass('hidden'); // hide all items > 10\n\n if (content.find('li.hidden').length) {\n Notifications.addShowAllInFeed();\n }\n }\n }, {\n key: \"showNotificationInTop\",\n value: function showNotificationInTop(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.top-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInDashboard\",\n value: function showNotificationInDashboard(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dashboard-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInPlugins\",\n value: function showNotificationInPlugins(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.plugins-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInThemes\",\n value: function showNotificationInThemes(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.themes-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"processLocation\",\n value: function processLocation(location, notification) {\n switch (location) {\n case 'feed':\n Notifications.showNotificationInFeed(notification);\n break;\n\n case 'top':\n if (!notification.read) {\n Notifications.showNotificationInTop(notification);\n }\n\n break;\n\n case 'dashboard':\n if (!notification.read) {\n Notifications.showNotificationInDashboard(notification);\n }\n\n break;\n\n case 'plugins':\n if (!notification.read) {\n Notifications.showNotificationInPlugins(notification);\n }\n\n break;\n\n case 'themes':\n if (!notification.read) {\n Notifications.showNotificationInThemes(notification);\n }\n\n break;\n }\n }\n }]);\n\n return Notifications;\n}();\n\nvar notifications = new Notifications();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (notifications);\n\nif (canFetchNotifications()) {\n notifications.fetch();\n /* Hide a notification and store it hidden */\n // <a href=\"#\" data-notification-action=\"hide-notification\" data-notification-id=\"${notification.id}\" class=\"close hide-notification\"><i class=\"fa fa-close\"></i></a>\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var notification_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.hide-notification').data('notification-id');\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/notifications.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"hideNotification/notification_id\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(notification_id);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post'\n }, function () {});\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.single-notification').hide();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var notification = target.parent();\n notification.slideUp(function () {\n return notification.remove();\n });\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"show-all-notifications\"]', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .show-all').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .hidden').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"notifications\"]', function (event) {\n event.preventDefault();\n notifications.fetch({\n filter: ['feed'],\n refresh: true\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQVY7QUFBb0JDLE1BQUFBLE9BQU8sRUFBRTtBQUE3QixLQUFwQjtBQUNILEdBSEQ7QUFJSCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXBkYXRlcy9ub3RpZmljYXRpb25zLmpzP2ZiY2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBjYW5GZXRjaE5vdGlmaWNhdGlvbnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5lbmFibGVkO1xuY29uc3Qgbm90aWZpY2F0aW9uc0ZpbHRlcnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5maWx0ZXJzO1xuXG5jbGFzcyBOb3RpZmljYXRpb25zIHtcblxuICAgIHN0YXRpYyBhZGRTaG93QWxsSW5GZWVkKCkge1xuICAgICAgICAkKCcjbm90aWZpY2F0aW9ucyB1bCcpLmFwcGVuZCgnPGxpIGNsYXNzPVwic2hvdy1hbGxcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCI+U2hvdyBhbGw8L2xpPicpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5GZWVkKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBsZXQgbm90aWZpY2F0aW9ucyA9ICQoJyNub3RpZmljYXRpb25zJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIGxldCBsb2FkZXIgPSBub3RpZmljYXRpb25zLmZpbmQoJy53aWRnZXQtbG9hZGVyJykuaGlkZSgpO1xuICAgICAgICBsZXQgY29udGVudCA9IG5vdGlmaWNhdGlvbnMuZmluZCgnLndpZGdldC1jb250ZW50ID4gdWwnKS5zaG93KCk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICAgICAgY29udGVudFxuICAgICAgICAgICAgLmFwcGVuZChub3RpZmljYXRpb24pXG4gICAgICAgICAgICAuZmluZCgnbGk6bnRoLWNoaWxkKG4rMTEpJykuYWRkQ2xhc3MoJ2hpZGRlbicpOyAvLyBoaWRlIGFsbCBpdGVtcyA+IDEwXG5cbiAgICAgICAgaWYgKGNvbnRlbnQuZmluZCgnbGkuaGlkZGVuJykubGVuZ3RoKSB7XG4gICAgICAgICAgICBOb3RpZmljYXRpb25zLmFkZFNob3dBbGxJbkZlZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5Ub3Aobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy50b3Atbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5EYXNoYm9hcmQobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy5kYXNoYm9hcmQtbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5QbHVnaW5zKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCcucGx1Z2lucy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNob3dOb3RpZmljYXRpb25JblRoZW1lcyhub3RpZmljYXRpb24pIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gJCgnLnRoZW1lcy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHByb2Nlc3NMb2NhdGlvbihsb2NhdGlvbiwgbm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHN3aXRjaCAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZlZWQnOlxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRmVlZChub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluVG9wKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGFzaGJvYXJkJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRGFzaGJvYXJkKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncGx1Z2lucyc6XG4gICAgICAgICAgICAgICAgaWYgKCFub3RpZmljYXRpb24ucmVhZCkge1xuICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25zLnNob3dOb3RpZmljYXRpb25JblBsdWdpbnMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0aGVtZXMnOlxuICAgICAgICAgICAgICAgIGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9ucy5zaG93Tm90aWZpY2F0aW9uSW5UaGVtZXMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcmF2LmRlZmF1bHQuTm90aWZpY2F0aW9ucy5mZXRjaCgpXG4gICAgZmV0Y2goeyBmaWx0ZXIgPSBub3RpZmljYXRpb25zRmlsdGVycygpLCByZWZyZXNoID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgICAgIGlmICghY2FuRmV0Y2hOb3RpZmljYXRpb25zKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmZWVkID0gJCgnI25vdGlmaWNhdGlvbnMnKTtcbiAgICAgICAgbGV0IGxvYWRlciA9IGZlZWQuZmluZCgnLndpZGdldC1sb2FkZXInKTtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBmZWVkLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJyk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG4gICAgICAgIGxvYWRlci5zaG93KCk7XG4gICAgICAgIGNvbnRlbnQuaGlkZSgpO1xuXG4gICAgICAgIGxldCBwcm9jZXNzTm90aWZpY2F0aW9ucyA9IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5vdGlmaWNhdGlvbnMgPSByZXNwb25zZS5ub3RpZmljYXRpb25zO1xuXG4gICAgICAgICAgICAkKCcjbm90aWZpY2F0aW9ucycpLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJykuZW1wdHkoKTtcblxuICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhub3RpZmljYXRpb25zKS5mb3JFYWNoKChsb2NhdGlvbikgPT4gTm90aWZpY2F0aW9ucy5wcm9jZXNzTG9jYXRpb24obG9jYXRpb24sIG5vdGlmaWNhdGlvbnNbbG9jYXRpb25dKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVxdWVzdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0Tm90aWZpY2F0aW9uc2AsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogeyByZWZyZXNoLCBmaWx0ZXIgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHByb2Nlc3NOb3RpZmljYXRpb25zKHJlc3BvbnNlKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHdpZGdldCA9ICQoJyNub3RpZmljYXRpb25zIC53aWRnZXQtY29udGVudCcpO1xuICAgICAgICAgICAgd2lkZ2V0XG4gICAgICAgICAgICAgICAgLmZpbmQoJy53aWRnZXQtbG9hZGVyJylcbiAgICAgICAgICAgICAgICAuZmluZCgnZGl2JykucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgIHdpZGdldFxuICAgICAgICAgICAgICAgIC5maW5kKCcud2lkZ2V0LWxvYWRlcicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnPGRpdj5GYWlsZWQgdG8gcmV0cmlldmUgbm90aWZpY2F0aW9uczwvZGl2PicpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5mYS1zcGluJylcbiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4gZmEtcmVmcmVzaCcpLmFkZENsYXNzKCdmYS13YXJuaW5nJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxubGV0IG5vdGlmaWNhdGlvbnMgPSBuZXcgTm90aWZpY2F0aW9ucygpO1xuZXhwb3J0IGRlZmF1bHQgbm90aWZpY2F0aW9ucztcblxuaWYgKGNhbkZldGNoTm90aWZpY2F0aW9ucygpKSB7XG4gICAgbm90aWZpY2F0aW9ucy5mZXRjaCgpO1xuXG4gICAgLyogSGlkZSBhIG5vdGlmaWNhdGlvbiBhbmQgc3RvcmUgaXQgaGlkZGVuICovXG4gICAgLy8gPGEgaHJlZj1cIiNcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJoaWRlLW5vdGlmaWNhdGlvblwiIGRhdGEtbm90aWZpY2F0aW9uLWlkPVwiJHtub3RpZmljYXRpb24uaWR9XCIgY2xhc3M9XCJjbG9zZSBoaWRlLW5vdGlmaWNhdGlvblwiPjxpIGNsYXNzPVwiZmEgZmEtY2xvc2VcIj48L2k+PC9hPlxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ub3RpZmljYXRpb24tYWN0aW9uPVwiaGlkZS1ub3RpZmljYXRpb25cIl0nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgbGV0IG5vdGlmaWNhdGlvbl9pZCA9ICQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCcuaGlkZS1ub3RpZmljYXRpb24nKS5kYXRhKCdub3RpZmljYXRpb24taWQnKTtcblxuICAgICAgICBsZXQgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9ub3RpZmljYXRpb25zLmpzb24vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1oaWRlTm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbl9pZCR7Y29uZmlnLnBhcmFtX3NlcH0ke25vdGlmaWNhdGlvbl9pZH1gO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnIH0sICgpID0+IHt9KTtcblxuICAgICAgICAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLnNpbmdsZS1ub3RpZmljYXRpb24nKS5oaWRlKCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtbm90aWZpY2F0aW9uLWFjdGlvbj1cImhpZGUtbm90aWZpY2F0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHRhcmdldC5wYXJlbnQoKTtcblxuICAgICAgICBub3RpZmljYXRpb24uc2xpZGVVcCgoKSA9PiBub3RpZmljYXRpb24ucmVtb3ZlKCkpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICQoJyNub3RpZmljYXRpb25zIC5zaG93LWFsbCcpLmhpZGUoKTtcbiAgICAgICAgJCgnI25vdGlmaWNhdGlvbnMgLmhpZGRlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZWZyZXNoPVwibm90aWZpY2F0aW9uc1wiXScsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBub3RpZmljYXRpb25zLmZldGNoKHsgZmlsdGVyOiBbJ2ZlZWQnXSwgcmVmcmVzaDogdHJ1ZSB9KTtcbiAgICB9KTtcbn1cbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwicmVxdWVzdCIsImNhbkZldGNoTm90aWZpY2F0aW9ucyIsIm5vdGlmaWNhdGlvbnMiLCJlbmFibGVkIiwibm90aWZpY2F0aW9uc0ZpbHRlcnMiLCJmaWx0ZXJzIiwiTm90aWZpY2F0aW9ucyIsImZpbHRlciIsInJlZnJlc2giLCJmZWVkIiwibG9hZGVyIiwiZmluZCIsImNvbnRlbnQiLCJyZW1vdmUiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwic2hvdyIsImhpZGUiLCJwcm9jZXNzTm90aWZpY2F0aW9ucyIsInJlc3BvbnNlIiwiZW1wdHkiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImxvY2F0aW9uIiwicHJvY2Vzc0xvY2F0aW9uIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJtZXRob2QiLCJib2R5Iiwid2lkZ2V0IiwiYXBwZW5kIiwibm90aWZpY2F0aW9uIiwibGVuZ3RoIiwiYWRkU2hvd0FsbEluRmVlZCIsImNvbnRhaW5lciIsImR1bW15IiwiaHRtbCIsImNoaWxkcmVuIiwic2xpZGVEb3duIiwic2hvd05vdGlmaWNhdGlvbkluRmVlZCIsInJlYWQiLCJzaG93Tm90aWZpY2F0aW9uSW5Ub3AiLCJzaG93Tm90aWZpY2F0aW9uSW5EYXNoYm9hcmQiLCJzaG93Tm90aWZpY2F0aW9uSW5QbHVnaW5zIiwic2hvd05vdGlmaWNhdGlvbkluVGhlbWVzIiwiZmV0Y2giLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJub3RpZmljYXRpb25faWQiLCJ0YXJnZXQiLCJwYXJlbnRzIiwiZGF0YSIsInVybCIsImN1cnJlbnRUYXJnZXQiLCJwYXJlbnQiLCJzbGlkZVVwIiwicHJldmVudERlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/notifications.js\n");
/***/ }),
/***/ "./app/updates/update.js":
/*!*******************************!*\
!*** ./app/updates/update.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/formatbytes */ \"./app/utils/formatbytes.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index */ \"./app/updates/index.js\");\n\n\n\n\n // Dashboard update and Grav update\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click.remodal', '[data-remodal-id=\"update-grav\"] [data-remodal-action=\"confirm\"]', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#grav-update-button');\n element.html(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT, \" \").concat((0,_utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets[\"grav-update\"].size), \"..\"));\n element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.updateURL, function (response) {\n if (response.type === 'updategrav') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#footer .grav-version').html(response.version);\n }\n\n element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin').addClass('fa-cloud-download');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy91cGRhdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBQSw2Q0FBQyxDQUFDTSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLGVBQWYsRUFBZ0MsaUVBQWhDLEVBQW1HLFlBQU07QUFDckcsTUFBTUMsT0FBTyxHQUFHUiw2Q0FBQyxDQUFDLHFCQUFELENBQWpCO0FBQ0FRLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixXQUFnQlIsdUZBQWhCLGNBQWtFQyw4REFBVyxDQUFDRyxvRkFBRCxDQUE3RTtBQUVBRyxFQUFBQSxPQUFPLENBQUNRLElBQVIsQ0FBYSxVQUFiLEVBQXlCLFVBQXpCLEVBQXFDQyxJQUFyQyxDQUEwQyxPQUExQyxFQUFtREMsV0FBbkQsQ0FBK0QsbUJBQS9ELEVBQW9GQyxRQUFwRixDQUE2RixvQkFBN0Y7QUFFQWhCLEVBQUFBLDBEQUFPLENBQUNFLHNEQUFELEVBQW1CLFVBQUNnQixRQUFELEVBQWM7QUFDcEMsUUFBSUEsUUFBUSxDQUFDQyxJQUFULEtBQWtCLFlBQXRCLEVBQW9DO0FBQ2hDdEIsTUFBQUEsNkNBQUMsQ0FBQyxpQkFBRCxDQUFELENBQXFCdUIsTUFBckI7QUFDQXZCLE1BQUFBLDZDQUFDLENBQUMsdUJBQUQsQ0FBRCxDQUEyQlMsSUFBM0IsQ0FBZ0NZLFFBQVEsQ0FBQ0csT0FBekM7QUFDSDs7QUFFRGhCLElBQUFBLE9BQU8sQ0FBQ2lCLFVBQVIsQ0FBbUIsVUFBbkIsRUFBK0JSLElBQS9CLENBQW9DLE9BQXBDLEVBQTZDQyxXQUE3QyxDQUF5RCxvQkFBekQsRUFBK0VDLFFBQS9FLENBQXdGLG1CQUF4RjtBQUNILEdBUE0sQ0FBUDtBQVFILENBZEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvdXBkYXRlLmpzPzQ3NjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCBmb3JtYXRCeXRlcyBmcm9tICcuLi91dGlscy9mb3JtYXRieXRlcyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IEluc3RhbmNlIGFzIFVwZGF0ZSB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyBEYXNoYm9hcmQgdXBkYXRlIGFuZCBHcmF2IHVwZGF0ZVxuJChkb2N1bWVudCkub24oJ2NsaWNrLnJlbW9kYWwnLCAnW2RhdGEtcmVtb2RhbC1pZD1cInVwZGF0ZS1ncmF2XCJdIFtkYXRhLXJlbW9kYWwtYWN0aW9uPVwiY29uZmlybVwiXScsICgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gJCgnI2dyYXYtdXBkYXRlLWJ1dHRvbicpO1xuICAgIGVsZW1lbnQuaHRtbChgJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFUSU5HX1BMRUFTRV9XQUlUfSAke2Zvcm1hdEJ5dGVzKFVwZGF0ZS5wYXlsb2FkLmdyYXYuYXNzZXRzWydncmF2LXVwZGF0ZSddLnNpemUpfS4uYCk7XG5cbiAgICBlbGVtZW50LmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtY2xvdWQtZG93bmxvYWQnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICByZXF1ZXN0KFVwZGF0ZS51cGRhdGVVUkwsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ3VwZGF0ZWdyYXYnKSB7XG4gICAgICAgICAgICAkKCdbZGF0YS1ncG0tZ3Jhdl0nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICQoJyNmb290ZXIgLmdyYXYtdmVyc2lvbicpLmh0bWwocmVzcG9uc2UudmVyc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJykuYWRkQ2xhc3MoJ2ZhLWNsb3VkLWRvd25sb2FkJyk7XG4gICAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwidHJhbnNsYXRpb25zIiwiZm9ybWF0Qnl0ZXMiLCJyZXF1ZXN0IiwiSW5zdGFuY2UiLCJVcGRhdGUiLCJkb2N1bWVudCIsIm9uIiwiZWxlbWVudCIsImh0bWwiLCJQTFVHSU5fQURNSU4iLCJVUERBVElOR19QTEVBU0VfV0FJVCIsInBheWxvYWQiLCJncmF2IiwiYXNzZXRzIiwic2l6ZSIsImF0dHIiLCJmaW5kIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInVwZGF0ZVVSTCIsInJlc3BvbnNlIiwidHlwZSIsInJlbW92ZSIsInZlcnNpb24iLCJyZW1vdmVBdHRyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/updates/update.js\n");
/***/ }),
/***/ "./app/utils/2fa.js":
/*!**************************!*\
!*** ./app/utils/2fa.js ***!
\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'); // Dashboard update and Grav update\n\nbody.on('click', '[data-2fa-regenerate]', function (event) {\n event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"regenerate2FASecret\");\n element.attr('disabled', 'disabled').find('> .fa').addClass('fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post'\n }, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-image]').attr('src', response.image);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-secret]').text(response.secret);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-value]').val(response.secret.replace(' ', ''));\n element.removeAttr('disabled').find('> .fa').removeClass('fa-spin');\n });\n});\n\nvar toggleSecret = function toggleSecret() {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#toggle_twofa_enabled1');\n var secret = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.twofa-secret');\n secret[toggle.is(':checked') ? 'addClass' : 'removeClass']('show');\n};\n\nbody.on('click', '.twofa-toggle input', toggleSecret);\ntoggleSecret();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvMmZhLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBLElBQU1HLElBQUksR0FBR0gsNkNBQUMsQ0FBQyxNQUFELENBQWQsRUFFQTs7QUFDQUcsSUFBSSxDQUFDQyxFQUFMLENBQVEsT0FBUixFQUFpQix1QkFBakIsRUFBMEMsVUFBU0MsS0FBVCxFQUFnQjtBQUN0REEsRUFBQUEsS0FBSyxDQUFDQyxjQUFOO0FBQ0EsTUFBSUMsT0FBTyxHQUFHUCw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBLE1BQUlRLEdBQUcsYUFBTVAsaUVBQU4sNEJBQWdEQSx5REFBaEQsd0JBQVA7QUFFQU0sRUFBQUEsT0FBTyxDQUFDSSxJQUFSLENBQWEsVUFBYixFQUF5QixVQUF6QixFQUFxQ0MsSUFBckMsQ0FBMEMsT0FBMUMsRUFBbURDLFFBQW5ELENBQTRELFNBQTVEO0FBRUFYLEVBQUFBLDBEQUFPLENBQUNNLEdBQUQsRUFBTTtBQUFFTSxJQUFBQSxNQUFNLEVBQUU7QUFBVixHQUFOLEVBQTBCLFVBQUNDLFFBQUQsRUFBYztBQUMzQ2YsSUFBQUEsNkNBQUMsQ0FBQyxrQkFBRCxDQUFELENBQXNCVyxJQUF0QixDQUEyQixLQUEzQixFQUFrQ0ksUUFBUSxDQUFDQyxLQUEzQztBQUNBaEIsSUFBQUEsNkNBQUMsQ0FBQyxtQkFBRCxDQUFELENBQXVCaUIsSUFBdkIsQ0FBNEJGLFFBQVEsQ0FBQ0csTUFBckM7QUFDQWxCLElBQUFBLDZDQUFDLENBQUMsa0JBQUQsQ0FBRCxDQUFzQm1CLEdBQXRCLENBQTBCSixRQUFRLENBQUNHLE1BQVQsQ0FBZ0JFLE9BQWhCLENBQXdCLEdBQXhCLEVBQTZCLEVBQTdCLENBQTFCO0FBRUFiLElBQUFBLE9BQU8sQ0FBQ2MsVUFBUixDQUFtQixVQUFuQixFQUErQlQsSUFBL0IsQ0FBb0MsT0FBcEMsRUFBNkNVLFdBQTdDLENBQXlELFNBQXpEO0FBQ0gsR0FOTSxDQUFQO0FBT0gsQ0FkRDs7QUFnQkEsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN2QixNQUFNQyxNQUFNLEdBQUd4Qiw2Q0FBQyxDQUFDLHdCQUFELENBQWhCO0FBQ0EsTUFBTWtCLE1BQU0sR0FBR2xCLDZDQUFDLENBQUMsZUFBRCxDQUFoQjtBQUVBa0IsRUFBQUEsTUFBTSxDQUFDTSxNQUFNLENBQUNDLEVBQVAsQ0FBVSxVQUFWLElBQXdCLFVBQXhCLEdBQXFDLGFBQXRDLENBQU4sQ0FBMkQsTUFBM0Q7QUFDSCxDQUxEOztBQU9BdEIsSUFBSSxDQUFDQyxFQUFMLENBQVEsT0FBUixFQUFpQixxQkFBakIsRUFBd0NtQixZQUF4QztBQUNBQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy8yZmEuanM/NDRhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbi8vIERhc2hib2FyZCB1cGRhdGUgYW5kIEdyYXYgdXBkYXRlXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS0yZmEtcmVnZW5lcmF0ZV0nLCBmdW5jdGlvbihldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgIGxldCB1cmwgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L2FqYXguanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfXJlZ2VuZXJhdGUyRkFTZWNyZXRgO1xuXG4gICAgZWxlbWVudC5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpLmZpbmQoJz4gLmZhJykuYWRkQ2xhc3MoJ2ZhLXNwaW4nKTtcblxuICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnIH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAkKCdbZGF0YS0yZmEtaW1hZ2VdJykuYXR0cignc3JjJywgcmVzcG9uc2UuaW1hZ2UpO1xuICAgICAgICAkKCdbZGF0YS0yZmEtc2VjcmV0XScpLnRleHQocmVzcG9uc2Uuc2VjcmV0KTtcbiAgICAgICAgJCgnW2RhdGEtMmZhLXZhbHVlXScpLnZhbChyZXNwb25zZS5zZWNyZXQucmVwbGFjZSgnICcsICcnKSk7XG5cbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpLmZpbmQoJz4gLmZhJykucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4nKTtcbiAgICB9KTtcbn0pO1xuXG5jb25zdCB0b2dnbGVTZWNyZXQgPSAoKSA9PiB7XG4gICAgY29uc3QgdG9nZ2xlID0gJCgnI3RvZ2dsZV90d29mYV9lbmFibGVkMScpO1xuICAgIGNvbnN0IHNlY3JldCA9ICQoJy50d29mYS1zZWNyZXQnKTtcblxuICAgIHNlY3JldFt0b2dnbGUuaXMoJzpjaGVja2VkJykgPyAnYWRkQ2xhc3MnIDogJ3JlbW92ZUNsYXNzJ10oJ3Nob3cnKTtcbn07XG5cbmJvZHkub24oJ2NsaWNrJywgJy50d29mYS10b2dnbGUgaW5wdXQnLCB0b2dnbGVTZWNyZXQpO1xudG9nZ2xlU2VjcmV0KCk7XG4iXSwibmFtZXMiOlsiJCIsImNvbmZpZyIsInJlcXVlc3QiLCJib2R5Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZWxlbWVudCIsInVybCIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiYXR0ciIsImZpbmQiLCJhZGRDbGFzcyIsIm1ldGhvZCIsInJlc3BvbnNlIiwiaW1hZ2UiLCJ0ZXh0Iiwic2VjcmV0IiwidmFsIiwicmVwbGFjZSIsInJlbW92ZUF0dHIiLCJyZW1vdmVDbGFzcyIsInRvZ2dsZVNlY3JldCIsInRvZ2dsZSIsImlzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/2fa.js\n");
/***/ }),
/***/ "./app/utils/bootstrap-collapse.js":
/*!*****************************************!*\
!*** ./app/utils/bootstrap-collapse.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.0\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function Collapse(element, options) {\n this.$element = $(element);\n this.options = $.extend({}, Collapse.DEFAULTS, options);\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' + '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]');\n this.transitioning = null;\n\n if (this.options.parent) {\n this.$parent = this.getParent();\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger);\n }\n\n if (this.options.toggle) this.toggle();\n };\n\n Collapse.VERSION = '3.4.0';\n Collapse.TRANSITION_DURATION = 350;\n Collapse.DEFAULTS = {\n toggle: true\n };\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width');\n return hasWidth ? 'width' : 'height';\n };\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return;\n var activesData;\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing');\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse');\n if (activesData && activesData.transitioning) return;\n }\n\n var startEvent = $.Event('show.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide');\n activesData || actives.data('bs.collapse', null);\n }\n\n var dimension = this.dimension();\n this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true);\n this.$trigger.removeClass('collapsed').attr('aria-expanded', true);\n this.transitioning = 1;\n\n var complete = function complete() {\n this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('');\n this.transitioning = 0;\n this.$element.trigger('shown.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n var scrollSize = $.camelCase(['scroll', dimension].join('-'));\n this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]);\n };\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return;\n var startEvent = $.Event('hide.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n var dimension = this.dimension();\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight;\n this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false);\n this.$trigger.addClass('collapsed').attr('aria-expanded', false);\n this.transitioning = 1;\n\n var complete = function complete() {\n this.transitioning = 0;\n this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION);\n };\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']();\n };\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent).find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]').each($.proxy(function (i, element) {\n var $element = $(element);\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element);\n }, this)).end();\n };\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in');\n $element.attr('aria-expanded', isOpen);\n $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen);\n };\n\n function getTargetFromTrigger($trigger) {\n var href;\n var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, ''); // strip for ie7\n\n return $(target);\n } // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.collapse');\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), _typeof(option) === 'object' && option);\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false;\n if (!data) $this.data('bs.collapse', data = new Collapse(this, options));\n if (typeof option === 'string') data[option]();\n });\n }\n\n var old = $.fn.collapse;\n $.fn.collapse = Plugin;\n $.fn.collapse.Constructor = Collapse; // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old;\n return this;\n }; // COLLAPSE DATA-API\n // =================\n\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this);\n if (!$this.attr('data-target')) e.preventDefault();\n var $target = getTargetFromTrigger($this);\n var data = $target.data('bs.collapse');\n var option = data ? 'toggle' : $this.data();\n Plugin.call($target, option);\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TUFBSUcsR0FBRyxHQUFHNUQsQ0FBQyxDQUFDNkQsRUFBRixDQUFLQyxRQUFmO0FBRUE5RCxFQUFBQSxDQUFDLENBQUM2RCxFQUFGLENBQUtDLFFBQUwsR0FBZ0IvQixNQUFoQjtBQUNBL0IsRUFBQUEsQ0FBQyxDQUFDNkQsRUFBRixDQUFLQyxRQUFMLENBQWNDLFdBQWQsR0FBNEI5RCxRQUE1QixDQTVLVSxDQThLVjtBQUNBOztBQUVBRCxFQUFBQSxDQUFDLENBQUM2RCxFQUFGLENBQUtDLFFBQUwsQ0FBY0UsVUFBZCxHQUEyQixZQUFXO0FBQ2xDaEUsSUFBQUEsQ0FBQyxDQUFDNkQsRUFBRixDQUFLQyxRQUFMLEdBQWdCRixHQUFoQjtBQUNBLFdBQU8sSUFBUDtBQUNILEdBSEQsQ0FqTFUsQ0FzTFY7QUFDQTs7O0FBRUE1RCxFQUFBQSxDQUFDLENBQUNpRSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLDRCQUFmLEVBQTZDLDBCQUE3QyxFQUF5RSxVQUFTQyxDQUFULEVBQVk7QUFDakYsUUFBSVQsS0FBSyxHQUFHMUQsQ0FBQyxDQUFDLElBQUQsQ0FBYjtBQUVBLFFBQUksQ0FBQzBELEtBQUssQ0FBQ3ZCLElBQU4sQ0FBVyxhQUFYLENBQUwsRUFBZ0NnQyxDQUFDLENBQUNDLGNBQUY7QUFFaEMsUUFBSUMsT0FBTyxHQUFHbkIsb0JBQW9CLENBQUNRLEtBQUQsQ0FBbEM7QUFDQSxRQUFJaEMsSUFBSSxHQUFHMkMsT0FBTyxDQUFDM0MsSUFBUixDQUFhLGFBQWIsQ0FBWDtBQUNBLFFBQUkrQixNQUFNLEdBQUcvQixJQUFJLEdBQUcsUUFBSCxHQUFjZ0MsS0FBSyxDQUFDaEMsSUFBTixFQUEvQjtBQUVBSyxJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWXFDLE9BQVosRUFBcUJaLE1BQXJCO0FBQ0gsR0FWRDtBQVlILENBck1DLENBcU1BMUQsK0NBck1BLENBQUYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1jb2xsYXBzZS5qcz9lMjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCb290c3RyYXA6IGNvbGxhcHNlLmpzIHYzLjQuMFxuICogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vamF2YXNjcmlwdC8jY29sbGFwc2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIGpzaGludCBsYXRlZGVmOiBmYWxzZSAqL1xuXG4rKGZ1bmN0aW9uKCQpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvLyBDT0xMQVBTRSBQVUJMSUMgQ0xBU1MgREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICB2YXIgQ29sbGFwc2UgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgQ29sbGFwc2UuREVGQVVMVFMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLiR0cmlnZ2VyID0gJCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnICsgZWxlbWVudC5pZCArICdcIl0sJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS10YXJnZXQ9XCIjJyArIGVsZW1lbnQuaWQgKyAnXCJdJyk7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuJHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLiRlbGVtZW50LCB0aGlzLiR0cmlnZ2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9nZ2xlKSB0aGlzLnRvZ2dsZSgpO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5WRVJTSU9OID0gJzMuNC4wJztcblxuICAgIENvbGxhcHNlLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzNTA7XG5cbiAgICBDb2xsYXBzZS5ERUZBVUxUUyA9IHtcbiAgICAgICAgdG9nZ2xlOiB0cnVlXG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5kaW1lbnNpb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhhc1dpZHRoID0gdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnd2lkdGgnKTtcbiAgICAgICAgcmV0dXJuIGhhc1dpZHRoID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy50cmFuc2l0aW9uaW5nIHx8IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykpIHJldHVybjtcblxuICAgICAgICB2YXIgYWN0aXZlc0RhdGE7XG4gICAgICAgIHZhciBhY3RpdmVzID0gdGhpcy4kcGFyZW50ICYmIHRoaXMuJHBhcmVudC5jaGlsZHJlbignLnBhbmVsJykuY2hpbGRyZW4oJy5pbiwgLmNvbGxhcHNpbmcnKTtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgYWN0aXZlc0RhdGEgPSBhY3RpdmVzLmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlc0RhdGEgJiYgYWN0aXZlc0RhdGEudHJhbnNpdGlvbmluZykgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0YXJ0RXZlbnQgPSAkLkV2ZW50KCdzaG93LmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihzdGFydEV2ZW50KTtcbiAgICAgICAgaWYgKHN0YXJ0RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVybjtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgUGx1Z2luLmNhbGwoYWN0aXZlcywgJ2hpZGUnKTtcbiAgICAgICAgICAgIGFjdGl2ZXNEYXRhIHx8IGFjdGl2ZXMuZGF0YSgnYnMuY29sbGFwc2UnLCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbigpO1xuXG4gICAgICAgIHRoaXMuJGVsZW1lbnRcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UnKVxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylbZGltZW5zaW9uXSgwKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCB0cnVlKTtcblxuICAgICAgICB0aGlzLiR0cmlnZ2VyXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2NvbGxhcHNlZCcpXG4gICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsIHRydWUpO1xuXG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDE7XG5cbiAgICAgICAgdmFyIGNvbXBsZXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlIGluJylbZGltZW5zaW9uXSgnJyk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25pbmcgPSAwO1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCdzaG93bi5icy5jb2xsYXBzZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghJC5zdXBwb3J0LnRyYW5zaXRpb24pIHJldHVybiBjb21wbGV0ZS5jYWxsKHRoaXMpO1xuXG4gICAgICAgIHZhciBzY3JvbGxTaXplID0gJC5jYW1lbENhc2UoWydzY3JvbGwnLCBkaW1lbnNpb25dLmpvaW4oJy0nKSk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgJC5wcm94eShjb21wbGV0ZSwgdGhpcykpXG4gICAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoQ29sbGFwc2UuVFJBTlNJVElPTl9EVVJBVElPTilbZGltZW5zaW9uXSh0aGlzLiRlbGVtZW50WzBdW3Njcm9sbFNpemVdKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMudHJhbnNpdGlvbmluZyB8fCAhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnaW4nKSkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBzdGFydEV2ZW50ID0gJC5FdmVudCgnaGlkZS5icy5jb2xsYXBzZScpO1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoc3RhcnRFdmVudCk7XG4gICAgICAgIGlmIChzdGFydEV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuZGltZW5zaW9uKCk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKHRoaXMuJGVsZW1lbnRbZGltZW5zaW9uXSgpKVswXS5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UgaW4nKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy4kdHJpZ2dlclxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzZWQnKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy50cmFuc2l0aW9uaW5nID0gMTtcblxuICAgICAgICB2YXIgY29tcGxldGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDA7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlJylcbiAgICAgICAgICAgICAgICAudHJpZ2dlcignaGlkZGVuLmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCEkLnN1cHBvcnQudHJhbnNpdGlvbikgcmV0dXJuIGNvbXBsZXRlLmNhbGwodGhpcyk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKDApXG4gICAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KGNvbXBsZXRlLCB0aGlzKSlcbiAgICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChDb2xsYXBzZS5UUkFOU0lUSU9OX0RVUkFUSU9OKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykgPyAnaGlkZScgOiAnc2hvdyddKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5nZXRQYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQodGhpcy5vcHRpb25zLnBhcmVudClcbiAgICAgICAgICAgIC5maW5kKCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicgKyB0aGlzLm9wdGlvbnMucGFyZW50ICsgJ1wiXScpXG4gICAgICAgICAgICAuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGksIGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGdldFRhcmdldEZyb21UcmlnZ2VyKCRlbGVtZW50KSwgJGVsZW1lbnQpO1xuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgICAgICAuZW5kKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MgPSBmdW5jdGlvbigkZWxlbWVudCwgJHRyaWdnZXIpIHtcbiAgICAgICAgdmFyIGlzT3BlbiA9ICRlbGVtZW50Lmhhc0NsYXNzKCdpbicpO1xuXG4gICAgICAgICRlbGVtZW50LmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgICAgICAkdHJpZ2dlclxuICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCdjb2xsYXBzZWQnLCAhaXNPcGVuKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRUYXJnZXRGcm9tVHJpZ2dlcigkdHJpZ2dlcikge1xuICAgICAgICB2YXIgaHJlZjtcbiAgICAgICAgdmFyIHRhcmdldCA9ICR0cmlnZ2VyLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHxcbiAgICAgIChocmVmID0gJHRyaWdnZXIuYXR0cignaHJlZicpKSAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgICAgIHJldHVybiAkKHRhcmdldCk7XG4gICAgfVxuXG4gICAgLy8gQ09MTEFQU0UgUExVR0lOIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnYnMuY29sbGFwc2UnKTtcbiAgICAgICAgICAgIHZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIENvbGxhcHNlLkRFRkFVTFRTLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSAmJiBvcHRpb25zLnRvZ2dsZSAmJiAvc2hvd3xoaWRlLy50ZXN0KG9wdGlvbikpIG9wdGlvbnMudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ2JzLmNvbGxhcHNlJywgKGRhdGEgPSBuZXcgQ29sbGFwc2UodGhpcywgb3B0aW9ucykpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBvbGQgPSAkLmZuLmNvbGxhcHNlO1xuXG4gICAgJC5mbi5jb2xsYXBzZSA9IFBsdWdpbjtcbiAgICAkLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yID0gQ29sbGFwc2U7XG5cbiAgICAvLyBDT0xMQVBTRSBOTyBDT05GTElDVFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09XG5cbiAgICAkLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgJC5mbi5jb2xsYXBzZSA9IG9sZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8vIENPTExBUFNFIERBVEEtQVBJXG4gICAgLy8gPT09PT09PT09PT09PT09PT1cblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljay5icy5jb2xsYXBzZS5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoISR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykpIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB2YXIgJHRhcmdldCA9IGdldFRhcmdldEZyb21UcmlnZ2VyKCR0aGlzKTtcbiAgICAgICAgdmFyIGRhdGEgPSAkdGFyZ2V0LmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgIHZhciBvcHRpb24gPSBkYXRhID8gJ3RvZ2dsZScgOiAkdGhpcy5kYXRhKCk7XG5cbiAgICAgICAgUGx1Z2luLmNhbGwoJHRhcmdldCwgb3B0aW9uKTtcbiAgICB9KTtcblxufShqUXVlcnkpKTtcbiJdLCJuYW1lcyI6WyJqUXVlcnkiLCIkIiwiQ29sbGFwc2UiLCJlbGVtZW50Iiwib3B0aW9ucyIsIiRlbGVtZW50IiwiZXh0ZW5kIiwiREVGQVVMVFMiLCIkdHJpZ2dlciIsImlkIiwidHJhbnNpdGlvbmluZyIsInBhcmVudCIsIiRwYXJlbnQiLCJnZXRQYXJlbnQiLCJhZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MiLCJ0b2dnbGUiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsInByb3RvdHlwZSIsImRpbWVuc2lvbiIsImhhc1dpZHRoIiwiaGFzQ2xhc3MiLCJzaG93IiwiYWN0aXZlc0RhdGEiLCJhY3RpdmVzIiwiY2hpbGRyZW4iLCJsZW5ndGgiLCJkYXRhIiwic3RhcnRFdmVudCIsIkV2ZW50IiwidHJpZ2dlciIsImlzRGVmYXVsdFByZXZlbnRlZCIsIlBsdWdpbiIsImNhbGwiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiYXR0ciIsImNvbXBsZXRlIiwic3VwcG9ydCIsInRyYW5zaXRpb24iLCJzY3JvbGxTaXplIiwiY2FtZWxDYXNlIiwiam9pbiIsIm9uZSIsInByb3h5IiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJoaWRlIiwib2Zmc2V0SGVpZ2h0IiwiZmluZCIsImVhY2giLCJpIiwiZ2V0VGFyZ2V0RnJvbVRyaWdnZXIiLCJlbmQiLCJpc09wZW4iLCJ0b2dnbGVDbGFzcyIsImhyZWYiLCJ0YXJnZXQiLCJyZXBsYWNlIiwib3B0aW9uIiwiJHRoaXMiLCJ0ZXN0Iiwib2xkIiwiZm4iLCJjb2xsYXBzZSIsIkNvbnN0cnVjdG9yIiwibm9Db25mbGljdCIsImRvY3VtZW50Iiwib24iLCJlIiwicHJldmVudERlZmF1bHQiLCIkdGFyZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-collapse.js\n");
/***/ }),
/***/ "./app/utils/bootstrap-datetimepicker.js":
/*!***********************************************!*\
!*** ./app/utils/bootstrap-datetimepicker.js ***!
\***********************************************/
/***/ ((module, exports, __webpack_require__) => {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*! version : 4.17.47\n =========================================================\n bootstrap-datetimejs\n https://github.com/Eonasdan/bootstrap-datetimepicker\n Copyright (c) 2015 Jonathan Peterson\n =========================================================\n */\n\n/*\n The MIT License (MIT)\n\n Copyright (c) 2015 Jonathan Peterson\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/* global define:false */\n\n/* global jQuery:false */\n\n/* global moment:false */\n(function (factory) {\n 'use strict';\n\n if (true) {\n // AMD is used - Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\"), __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(function ($, moment) {\n 'use strict';\n\n if (!moment) {\n throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\n }\n\n var dateTimePicker = function dateTimePicker(element, options) {\n var picker = {};\n var date;\n var viewDate;\n var unset = true;\n var input;\n var component = false;\n var widget = false;\n var use24Hours;\n var minViewModeNumber = 0;\n var actualFormat;\n var parseFormats;\n var currentViewMode;\n var datePickerModes = [{\n clsName: 'days',\n navFnc: 'M',\n navStep: 1\n }, {\n clsName: 'months',\n navFnc: 'y',\n navStep: 1\n }, {\n clsName: 'years',\n navFnc: 'y',\n navStep: 10\n }, {\n clsName: 'decades',\n navFnc: 'y',\n navStep: 100\n }];\n var viewModes = ['days', 'months', 'years', 'decades'];\n var verticalModes = ['top', 'bottom', 'auto'];\n var horizontalModes = ['left', 'right', 'auto'];\n var toolbarPlacements = ['default', 'top', 'bottom'];\n var keyMap = {\n 'up': 38,\n 38: 'up',\n 'down': 40,\n 40: 'down',\n 'left': 37,\n 37: 'left',\n 'right': 39,\n 39: 'right',\n 'tab': 9,\n 9: 'tab',\n 'escape': 27,\n 27: 'escape',\n 'enter': 13,\n 13: 'enter',\n 'pageUp': 33,\n 33: 'pageUp',\n 'pageDown': 34,\n 34: 'pageDown',\n 'shift': 16,\n 16: 'shift',\n 'control': 17,\n 17: 'control',\n 'space': 32,\n 32: 'space',\n 't': 84,\n 84: 't',\n 'delete': 46,\n 46: 'delete'\n };\n var keyState = {};\n /** ******************************************************************************\n *\n * Private functions\n *\n ********************************************************************************/\n\n var hasTimeZone = function hasTimeZone() {\n return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '';\n };\n\n var getMoment = function getMoment(d) {\n var returnMoment;\n\n if (d === undefined || d === null) {\n returnMoment = moment(); // TODO should this use format? and locale?\n } else if (moment.isDate(d) || moment.isMoment(d)) {\n // If the date that is passed in is already a Date() or moment() object,\n // pass it directly to moment.\n returnMoment = moment(d);\n } else if (hasTimeZone()) {\n // There is a string to parse and a default time zone\n // parse with the tz function which takes a default time zone if it is not in the format string\n returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone);\n } else {\n returnMoment = moment(d, parseFormats, options.useStrict);\n }\n\n if (hasTimeZone()) {\n returnMoment.tz(options.timeZone);\n }\n\n return returnMoment;\n };\n\n var isEnabled = function isEnabled(granularity) {\n if (typeof granularity !== 'string' || granularity.length > 1) {\n throw new TypeError('isEnabled expects a single character string parameter');\n }\n\n switch (granularity) {\n case 'y':\n return actualFormat.indexOf('Y') !== -1;\n\n case 'M':\n return actualFormat.indexOf('M') !== -1;\n\n case 'd':\n return actualFormat.toLowerCase().indexOf('d') !== -1;\n\n case 'h':\n case 'H':\n return actualFormat.toLowerCase().indexOf('h') !== -1;\n\n case 'm':\n return actualFormat.indexOf('m') !== -1;\n\n case 's':\n return actualFormat.indexOf('s') !== -1;\n\n default:\n return false;\n }\n };\n\n var hasTime = function hasTime() {\n return isEnabled('h') || isEnabled('m') || isEnabled('s');\n };\n\n var hasDate = function hasDate() {\n return isEnabled('y') || isEnabled('M') || isEnabled('d');\n };\n\n var getDatePickerTemplate = function getDatePickerTemplate() {\n var headTemplate = $('<thead>').append($('<tr>').append($('<th>').addClass('prev').attr('data-action', 'previous').append($('<span>').addClass(options.icons.previous))).append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', options.calendarWeeks ? '6' : '5')).append($('<th>').addClass('next').attr('data-action', 'next').append($('<span>').addClass(options.icons.next))));\n var contTemplate = $('<tbody>').append($('<tr>').append($('<td>').attr('colspan', options.calendarWeeks ? '8' : '7')));\n return [$('<div>').addClass('datepicker-days').append($('<table>').addClass('table-condensed').append(headTemplate).append($('<tbody>'))), $('<div>').addClass('datepicker-months').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-years').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-decades').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\n };\n\n var getTimePickerMainTemplate = function getTimePickerMainTemplate() {\n var topRow = $('<tr>');\n var middleRow = $('<tr>');\n var bottomRow = $('<tr>');\n\n if (isEnabled('h')) {\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementHour\n }).addClass('btn').attr('data-action', 'incrementHours').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-hour').attr({\n 'data-time-component': 'hours',\n 'title': options.tooltips.pickHour\n }).attr('data-action', 'showHours')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementHour\n }).addClass('btn').attr('data-action', 'decrementHours').append($('<span>').addClass(options.icons.down))));\n }\n\n if (isEnabled('m')) {\n if (isEnabled('h')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementMinute\n }).addClass('btn').attr('data-action', 'incrementMinutes').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-minute').attr({\n 'data-time-component': 'minutes',\n 'title': options.tooltips.pickMinute\n }).attr('data-action', 'showMinutes')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementMinute\n }).addClass('btn').attr('data-action', 'decrementMinutes').append($('<span>').addClass(options.icons.down))));\n }\n\n if (isEnabled('s')) {\n if (isEnabled('m')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementSecond\n }).addClass('btn').attr('data-action', 'incrementSeconds').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-second').attr({\n 'data-time-component': 'seconds',\n 'title': options.tooltips.pickSecond\n }).attr('data-action', 'showSeconds')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementSecond\n }).addClass('btn').attr('data-action', 'decrementSeconds').append($('<span>').addClass(options.icons.down))));\n }\n\n if (!use24Hours) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').append($('<button>').addClass('btn btn-primary').attr({\n 'data-action': 'togglePeriod',\n tabindex: '-1',\n 'title': options.tooltips.togglePeriod\n })));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n return $('<div>').addClass('timepicker-picker').append($('<table>').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\n };\n\n var getTimePickerTemplate = function getTimePickerTemplate() {\n var hoursView = $('<div>').addClass('timepicker-hours').append($('<table>').addClass('table-condensed'));\n var minutesView = $('<div>').addClass('timepicker-minutes').append($('<table>').addClass('table-condensed'));\n var secondsView = $('<div>').addClass('timepicker-seconds').append($('<table>').addClass('table-condensed'));\n var ret = [getTimePickerMainTemplate()];\n\n if (isEnabled('h')) {\n ret.push(hoursView);\n }\n\n if (isEnabled('m')) {\n ret.push(minutesView);\n }\n\n if (isEnabled('s')) {\n ret.push(secondsView);\n }\n\n return ret;\n };\n\n var getToolbar = function getToolbar() {\n var row = [];\n\n if (options.showTodayButton) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'today',\n 'title': options.tooltips.today\n }).append($('<span>').addClass(options.icons.today))));\n }\n\n if (!options.sideBySide && hasDate() && hasTime()) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'togglePicker',\n 'title': options.tooltips.selectTime\n }).append($('<span>').addClass(options.icons.time))));\n }\n\n if (options.showClear) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'clear',\n 'title': options.tooltips.clear\n }).append($('<span>').addClass(options.icons.clear))));\n }\n\n if (options.showClose) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'close',\n 'title': options.tooltips.close\n }).append($('<span>').addClass(options.icons.close))));\n }\n\n return $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row)));\n };\n\n var getTemplate = function getTemplate() {\n var template = $('<div>').addClass('bootstrap-datetimepicker-widget dropdown-menu');\n var dateView = $('<div>').addClass('datepicker').append(getDatePickerTemplate());\n var timeView = $('<div>').addClass('timepicker').append(getTimePickerTemplate());\n var content = $('<ul>').addClass('list-unstyled');\n var toolbar = $('<li>').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\n\n if (options.inline) {\n template.removeClass('dropdown-menu');\n }\n\n if (use24Hours) {\n template.addClass('usetwentyfour');\n }\n\n if (isEnabled('s') && !use24Hours) {\n template.addClass('wider');\n }\n\n if (options.sideBySide && hasDate() && hasTime()) {\n template.addClass('timepicker-sbs');\n\n if (options.toolbarPlacement === 'top') {\n template.append(toolbar);\n }\n\n template.append($('<div>').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\n\n if (options.toolbarPlacement === 'bottom') {\n template.append(toolbar);\n }\n\n return template;\n }\n\n if (options.toolbarPlacement === 'top') {\n content.append(toolbar);\n }\n\n if (hasDate()) {\n content.append($('<li>').addClass(options.collapse && hasTime() ? 'collapse in' : '').append(dateView));\n }\n\n if (options.toolbarPlacement === 'default') {\n content.append(toolbar);\n }\n\n if (hasTime()) {\n content.append($('<li>').addClass(options.collapse && hasDate() ? 'collapse' : '').append(timeView));\n }\n\n if (options.toolbarPlacement === 'bottom') {\n content.append(toolbar);\n }\n\n return template.append(content);\n };\n\n var dataToOptions = function dataToOptions() {\n var eData;\n var dataOptions = {};\n\n if (element.is('input') || options.inline) {\n eData = element.data();\n } else {\n eData = element.find('input').data();\n }\n\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n }\n\n $.each(options, function (key) {\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\n\n if (eData[attributeName] !== undefined) {\n dataOptions[key] = eData[attributeName];\n }\n });\n return dataOptions;\n };\n\n var place = function place() {\n var position = (component || element).position();\n var offset = (component || element).offset();\n var vertical = options.widgetPositioning.vertical;\n var horizontal = options.widgetPositioning.horizontal;\n var parent;\n\n if (options.widgetParent) {\n parent = options.widgetParent.append(widget);\n } else if (element.is('input')) {\n parent = element.after(widget).parent();\n } else if (options.inline) {\n parent = element.append(widget);\n return;\n } else {\n parent = element;\n element.children().first().after(widget);\n } // Top and bottom logic\n\n\n if (vertical === 'auto') {\n if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && widget.height() + element.outerHeight() < offset.top) {\n vertical = 'top';\n } else {\n vertical = 'bottom';\n }\n } // Left and right logic\n\n\n if (horizontal === 'auto') {\n if (parent.width() < offset.left + widget.outerWidth() / 2 && offset.left + widget.outerWidth() > $(window).width()) {\n horizontal = 'right';\n } else {\n horizontal = 'left';\n }\n }\n\n if (vertical === 'top') {\n widget.addClass('top').removeClass('bottom');\n } else {\n widget.addClass('bottom').removeClass('top');\n }\n\n if (horizontal === 'right') {\n widget.addClass('pull-right');\n } else {\n widget.removeClass('pull-right');\n } // find the first parent element that has a non-static css positioning\n\n\n if (parent.css('position') === 'static') {\n parent = parent.parents().filter(function () {\n return $(this).css('position') !== 'static';\n }).first();\n }\n\n if (parent.length === 0) {\n throw new Error('datetimepicker component should be placed within a non-static positioned container');\n }\n\n widget.css({\n top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\n bottom: vertical === 'top' ? parent.outerHeight() - (parent === element ? 0 : position.top) : 'auto',\n left: horizontal === 'left' ? parent === element ? 0 : position.left : 'auto',\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\n });\n };\n\n var notifyEvent = function notifyEvent(e) {\n if (e.type === 'dp.change' && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate)) {\n return;\n }\n\n element.trigger(e);\n };\n\n var viewUpdate = function viewUpdate(e) {\n if (e === 'y') {\n e = 'YYYY';\n }\n\n notifyEvent({\n type: 'dp.update',\n change: e,\n viewDate: viewDate.clone()\n });\n };\n\n var showMode = function showMode(dir) {\n if (!widget) {\n return;\n }\n\n if (dir) {\n currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\n }\n\n widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show();\n };\n\n var fillDow = function fillDow() {\n var row = $('<tr>');\n var currentDate = viewDate.clone().startOf('w').startOf('d');\n\n if (options.calendarWeeks === true) {\n row.append($('<th>').addClass('cw').text('#'));\n }\n\n while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\n row.append($('<th>').addClass('dow').text(currentDate.format('dd')));\n currentDate.add(1, 'd');\n }\n\n widget.find('.datepicker-days thead').append(row);\n };\n\n var isInDisabledDates = function isInDisabledDates(testDate) {\n return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n\n var isInEnabledDates = function isInEnabledDates(testDate) {\n return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n\n var isInDisabledHours = function isInDisabledHours(testDate) {\n return options.disabledHours[testDate.format('H')] === true;\n };\n\n var isInEnabledHours = function isInEnabledHours(testDate) {\n return options.enabledHours[testDate.format('H')] === true;\n };\n\n var isValid = function isValid(targetMoment, granularity) {\n if (!targetMoment.isValid()) {\n return false;\n }\n\n if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\n return false;\n }\n\n if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\n return false;\n }\n\n if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\n return false;\n }\n\n if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\n return false;\n }\n\n if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n return false;\n }\n\n if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\n return false;\n }\n\n if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\n return false;\n }\n\n if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n var found = false;\n $.each(options.disabledTimeIntervals, function () {\n if (targetMoment.isBetween(this[0], this[1])) {\n found = true;\n return false;\n }\n });\n\n if (found) {\n return false;\n }\n }\n\n return true;\n };\n\n var fillMonths = function fillMonths() {\n var spans = [];\n var monthsShort = viewDate.clone().startOf('y').startOf('d');\n\n while (monthsShort.isSame(viewDate, 'y')) {\n spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n monthsShort.add(1, 'M');\n }\n\n widget.find('.datepicker-months td').empty().append(spans);\n };\n\n var updateMonths = function updateMonths() {\n var monthsView = widget.find('.datepicker-months');\n var monthsViewHeader = monthsView.find('th');\n var months = monthsView.find('tbody').find('span');\n monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\n monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\n monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\n monthsView.find('.disabled').removeClass('disabled');\n\n if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\n monthsViewHeader.eq(0).addClass('disabled');\n }\n\n monthsViewHeader.eq(1).text(viewDate.year());\n\n if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\n monthsViewHeader.eq(2).addClass('disabled');\n }\n\n months.removeClass('active');\n\n if (date.isSame(viewDate, 'y') && !unset) {\n months.eq(date.month()).addClass('active');\n }\n\n months.each(function (index) {\n if (!isValid(viewDate.clone().month(index), 'M')) {\n $(this).addClass('disabled');\n }\n });\n };\n\n var updateYears = function updateYears() {\n var yearsView = widget.find('.datepicker-years');\n var yearsViewHeader = yearsView.find('th');\n var startYear = viewDate.clone().subtract(5, 'y');\n var endYear = viewDate.clone().add(6, 'y');\n var html = '';\n yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\n yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\n yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\n yearsView.find('.disabled').removeClass('disabled');\n\n if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\n yearsViewHeader.eq(0).addClass('disabled');\n }\n\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\n\n if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\n yearsViewHeader.eq(2).addClass('disabled');\n }\n\n while (!startYear.isAfter(endYear, 'y')) {\n html += '<span data-action=\"selectYear\" class=\"year' + (startYear.isSame(date, 'y') && !unset ? ' active' : '') + (!isValid(startYear, 'y') ? ' disabled' : '') + '\">' + startYear.year() + '</span>';\n startYear.add(1, 'y');\n }\n\n yearsView.find('td').html(html);\n };\n\n var updateDecades = function updateDecades() {\n var decadesView = widget.find('.datepicker-decades');\n var decadesViewHeader = decadesView.find('th');\n var startDecade = moment({\n y: viewDate.year() - viewDate.year() % 100 - 1\n });\n var endDecade = startDecade.clone().add(100, 'y');\n var startedAt = startDecade.clone();\n var minDateDecade = false;\n var maxDateDecade = false;\n var endDecadeYear;\n var html = '';\n decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\n decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\n decadesView.find('.disabled').removeClass('disabled');\n\n if (startDecade.isSame(moment({\n y: 1900\n })) || options.minDate && options.minDate.isAfter(startDecade, 'y')) {\n decadesViewHeader.eq(0).addClass('disabled');\n }\n\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\n\n if (startDecade.isSame(moment({\n y: 2000\n })) || options.maxDate && options.maxDate.isBefore(endDecade, 'y')) {\n decadesViewHeader.eq(2).addClass('disabled');\n }\n\n while (!startDecade.isAfter(endDecade, 'y')) {\n endDecadeYear = startDecade.year() + 12;\n minDateDecade = options.minDate && options.minDate.isAfter(startDecade, 'y') && options.minDate.year() <= endDecadeYear;\n maxDateDecade = options.maxDate && options.maxDate.isAfter(startDecade, 'y') && options.maxDate.year() <= endDecadeYear;\n html += '<span data-action=\"selectDecade\" class=\"decade' + (date.isAfter(startDecade) && date.year() <= endDecadeYear ? ' active' : '') + (!isValid(startDecade, 'y') && !minDateDecade && !maxDateDecade ? ' disabled' : '') + '\" data-selection=\"' + (startDecade.year() + 6) + '\">' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '</span>';\n startDecade.add(12, 'y');\n }\n\n html += '<span></span><span></span><span></span>'; // push the dangling block over, at least this way it's even\n\n decadesView.find('td').html(html);\n decadesViewHeader.eq(1).text(startedAt.year() + 1 + '-' + startDecade.year());\n };\n\n var fillDate = function fillDate() {\n var daysView = widget.find('.datepicker-days');\n var daysViewHeader = daysView.find('th');\n var currentDate;\n var html = [];\n var row;\n var clsNames = [];\n var i;\n\n if (!hasDate()) {\n return;\n }\n\n daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\n daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\n daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\n daysView.find('.disabled').removeClass('disabled');\n daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\n\n if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\n daysViewHeader.eq(0).addClass('disabled');\n }\n\n if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\n daysViewHeader.eq(2).addClass('disabled');\n }\n\n currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\n\n for (i = 0; i < 42; i++) {\n // always display 42 days (should show 6 weeks)\n if (currentDate.weekday() === 0) {\n row = $('<tr>');\n\n if (options.calendarWeeks) {\n row.append('<td class=\"cw\">' + currentDate.week() + '</td>');\n }\n\n html.push(row);\n }\n\n clsNames = ['day'];\n\n if (currentDate.isBefore(viewDate, 'M')) {\n clsNames.push('old');\n }\n\n if (currentDate.isAfter(viewDate, 'M')) {\n clsNames.push('new');\n }\n\n if (currentDate.isSame(date, 'd') && !unset) {\n clsNames.push('active');\n }\n\n if (!isValid(currentDate, 'd')) {\n clsNames.push('disabled');\n }\n\n if (currentDate.isSame(getMoment(), 'd')) {\n clsNames.push('today');\n }\n\n if (currentDate.day() === 0 || currentDate.day() === 6) {\n clsNames.push('weekend');\n }\n\n notifyEvent({\n type: 'dp.classify',\n date: currentDate,\n classNames: clsNames\n });\n row.append('<td data-action=\"selectDay\" data-day=\"' + currentDate.format('L') + '\" class=\"' + clsNames.join(' ') + '\">' + currentDate.date() + '</td>');\n currentDate.add(1, 'd');\n }\n\n daysView.find('tbody').empty().append(html);\n updateMonths();\n updateYears();\n updateDecades();\n };\n\n var fillHours = function fillHours() {\n var table = widget.find('.timepicker-hours table');\n var currentHour = viewDate.clone().startOf('d');\n var html = [];\n var row = $('<tr>');\n\n if (viewDate.hour() > 11 && !use24Hours) {\n currentHour.hour(12);\n }\n\n while (currentHour.isSame(viewDate, 'd') && (use24Hours || viewDate.hour() < 12 && currentHour.hour() < 12 || viewDate.hour() > 11)) {\n if (currentHour.hour() % 4 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectHour\" class=\"hour' + (!isValid(currentHour, 'h') ? ' disabled' : '') + '\">' + currentHour.format(use24Hours ? 'HH' : 'hh') + '</td>');\n currentHour.add(1, 'h');\n }\n\n table.empty().append(html);\n };\n\n var fillMinutes = function fillMinutes() {\n var table = widget.find('.timepicker-minutes table');\n var currentMinute = viewDate.clone().startOf('h');\n var html = [];\n var row = $('<tr>');\n var step = options.stepping === 1 ? 5 : options.stepping;\n\n while (viewDate.isSame(currentMinute, 'h')) {\n if (currentMinute.minute() % (step * 4) === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectMinute\" class=\"minute' + (!isValid(currentMinute, 'm') ? ' disabled' : '') + '\">' + currentMinute.format('mm') + '</td>');\n currentMinute.add(step, 'm');\n }\n\n table.empty().append(html);\n };\n\n var fillSeconds = function fillSeconds() {\n var table = widget.find('.timepicker-seconds table');\n var currentSecond = viewDate.clone().startOf('m');\n var html = [];\n var row = $('<tr>');\n\n while (viewDate.isSame(currentSecond, 'm')) {\n if (currentSecond.second() % 20 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectSecond\" class=\"second' + (!isValid(currentSecond, 's') ? ' disabled' : '') + '\">' + currentSecond.format('ss') + '</td>');\n currentSecond.add(5, 's');\n }\n\n table.empty().append(html);\n };\n\n var fillTime = function fillTime() {\n var toggle;\n var newDate;\n var timeComponents = widget.find('.timepicker span[data-time-component]');\n\n if (!use24Hours) {\n toggle = widget.find('.timepicker [data-action=togglePeriod]');\n newDate = date.clone().add(date.hours() >= 12 ? -12 : 12, 'h');\n toggle.text(date.format('A'));\n\n if (isValid(newDate, 'h')) {\n toggle.removeClass('disabled');\n } else {\n toggle.addClass('disabled');\n }\n }\n\n timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\n timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\n timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\n fillHours();\n fillMinutes();\n fillSeconds();\n };\n\n var update = function update() {\n if (!widget) {\n return;\n }\n\n fillDate();\n fillTime();\n };\n\n var setValue = function setValue(targetMoment) {\n var oldDate = unset ? null : date; // case of calling setValue(null or false)\n\n if (!targetMoment) {\n unset = true;\n input.val('');\n element.data('date', '');\n notifyEvent({\n type: 'dp.change',\n date: false,\n oldDate: oldDate\n });\n update();\n return;\n }\n\n targetMoment = targetMoment.clone().locale(options.locale);\n\n if (hasTimeZone()) {\n targetMoment.tz(options.timeZone);\n }\n\n if (options.stepping !== 1) {\n targetMoment.minutes(Math.round(targetMoment.minutes() / options.stepping) * options.stepping).seconds(0);\n\n while (options.minDate && targetMoment.isBefore(options.minDate)) {\n targetMoment.add(options.stepping, 'minutes');\n }\n }\n\n if (isValid(targetMoment)) {\n date = targetMoment;\n viewDate = date.clone();\n input.val(date.format(actualFormat));\n element.data('date', date.format(actualFormat));\n unset = false;\n update();\n notifyEvent({\n type: 'dp.change',\n date: date.clone(),\n oldDate: oldDate\n });\n } else {\n if (!options.keepInvalid) {\n input.val(unset ? '' : date.format(actualFormat));\n } else {\n notifyEvent({\n type: 'dp.change',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n\n notifyEvent({\n type: 'dp.error',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n };\n /**\n * Hides the widget. Possibly will emit dp.hide\n */\n\n\n var hide = function hide() {\n var transitioning = false;\n\n if (!widget) {\n return picker;\n } // Ignore event if in the middle of a picker transition\n\n\n widget.find('.collapse').each(function () {\n var collapseData = $(this).data('collapse');\n\n if (collapseData && collapseData.transitioning) {\n transitioning = true;\n return false;\n }\n\n return true;\n });\n\n if (transitioning) {\n return picker;\n }\n\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n\n widget.hide();\n $(window).off('resize', place);\n widget.off('click', '[data-action]');\n widget.off('mousedown', false);\n widget.remove();\n widget = false;\n notifyEvent({\n type: 'dp.hide',\n date: date.clone()\n });\n input.blur();\n viewDate = date.clone();\n return picker;\n };\n\n var clear = function clear() {\n setValue(null);\n };\n\n var parseInputDate = function parseInputDate(inputDate) {\n if (options.parseInputDate === undefined) {\n if (!moment.isMoment(inputDate) || inputDate instanceof Date) {\n inputDate = getMoment(inputDate);\n }\n } else {\n inputDate = options.parseInputDate(inputDate);\n } // inputDate.locale(options.locale);\n\n\n return inputDate;\n };\n /** ******************************************************************************\n *\n * Widget UI interaction functions\n *\n ********************************************************************************/\n\n\n var actions = {\n next: function next() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n previous: function previous() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n pickerSwitch: function pickerSwitch() {\n showMode(1);\n },\n selectMonth: function selectMonth(e) {\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\n viewDate.month(month);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('M');\n },\n selectYear: function selectYear(e) {\n var year = parseInt($(e.target).text(), 10) || 0;\n viewDate.year(year);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('YYYY');\n },\n selectDecade: function selectDecade(e) {\n var year = parseInt($(e.target).data('selection'), 10) || 0;\n viewDate.year(year);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('YYYY');\n },\n selectDay: function selectDay(e) {\n var day = viewDate.clone();\n\n if ($(e.target).is('.old')) {\n day.subtract(1, 'M');\n }\n\n if ($(e.target).is('.new')) {\n day.add(1, 'M');\n }\n\n setValue(day.date(parseInt($(e.target).text(), 10)));\n\n if (!hasTime() && !options.keepOpen && !options.inline) {\n hide();\n }\n },\n incrementHours: function incrementHours() {\n var newDate = date.clone().add(1, 'h');\n\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n incrementMinutes: function incrementMinutes() {\n var newDate = date.clone().add(options.stepping, 'm');\n\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n incrementSeconds: function incrementSeconds() {\n var newDate = date.clone().add(1, 's');\n\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n decrementHours: function decrementHours() {\n var newDate = date.clone().subtract(1, 'h');\n\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n decrementMinutes: function decrementMinutes() {\n var newDate = date.clone().subtract(options.stepping, 'm');\n\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n decrementSeconds: function decrementSeconds() {\n var newDate = date.clone().subtract(1, 's');\n\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n togglePeriod: function togglePeriod() {\n setValue(date.clone().add(date.hours() >= 12 ? -12 : 12, 'h'));\n },\n togglePicker: function togglePicker(e) {\n var $this = $(e.target);\n var $parent = $this.closest('ul');\n var expanded = $parent.find('.in');\n var closed = $parent.find('.collapse:not(.in)');\n var collapseData;\n\n if (expanded && expanded.length) {\n collapseData = expanded.data('collapse');\n\n if (collapseData && collapseData.transitioning) {\n return;\n }\n\n if (expanded.collapse) {\n // if collapse plugin is available through bootstrap.js then use it\n expanded.collapse('hide');\n closed.collapse('show');\n } else {\n // otherwise just toggle in class on the two views\n expanded.removeClass('in');\n closed.addClass('in');\n }\n\n if ($this.is('span')) {\n $this.toggleClass(options.icons.time + ' ' + options.icons.date);\n } else {\n $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n } // NOTE: uncomment if toggled state will be restored in show()\n // if (component) {\n // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n // }\n\n }\n },\n showPicker: function showPicker() {\n widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n widget.find('.timepicker .timepicker-picker').show();\n },\n showHours: function showHours() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-hours').show();\n },\n showMinutes: function showMinutes() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-minutes').show();\n },\n showSeconds: function showSeconds() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-seconds').show();\n },\n selectHour: function selectHour(e) {\n var hour = parseInt($(e.target).text(), 10);\n\n if (!use24Hours) {\n if (date.hours() >= 12) {\n if (hour !== 12) {\n hour += 12;\n }\n } else {\n if (hour === 12) {\n hour = 0;\n }\n }\n }\n\n setValue(date.clone().hours(hour));\n actions.showPicker.call(picker);\n },\n selectMinute: function selectMinute(e) {\n setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n selectSecond: function selectSecond(e) {\n setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n clear: clear,\n today: function today() {\n var todaysDate = getMoment();\n\n if (isValid(todaysDate, 'd')) {\n setValue(todaysDate);\n }\n },\n close: hide\n };\n\n var doAction = function doAction(e) {\n if ($(e.currentTarget).is('.disabled')) {\n return false;\n }\n\n actions[$(e.currentTarget).data('action')].apply(picker, arguments);\n return false;\n };\n /**\n * Shows the widget. Possibly will emit dp.show and dp.change\n */\n\n\n var show = function show() {\n var currentMoment;\n var useCurrentGranularity = {\n 'year': function year(m) {\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n },\n 'month': function month(m) {\n return m.date(1).hours(0).seconds(0).minutes(0);\n },\n 'day': function day(m) {\n return m.hours(0).seconds(0).minutes(0);\n },\n 'hour': function hour(m) {\n return m.seconds(0).minutes(0);\n },\n 'minute': function minute(m) {\n return m.seconds(0);\n }\n };\n\n if (input.prop('disabled') || !options.ignoreReadonly && input.prop('readonly') || widget) {\n return picker;\n }\n\n if (input.val() !== undefined && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (unset && options.useCurrent && (options.inline || input.is('input') && input.val().trim().length === 0)) {\n currentMoment = getMoment();\n\n if (typeof options.useCurrent === 'string') {\n currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\n }\n\n setValue(currentMoment);\n }\n\n widget = getTemplate();\n fillDow();\n fillMonths();\n widget.find('.timepicker-hours').hide();\n widget.find('.timepicker-minutes').hide();\n widget.find('.timepicker-seconds').hide();\n update();\n showMode();\n $(window).on('resize', place);\n widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\n\n widget.on('mousedown', false);\n\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n\n place();\n widget.show();\n\n if (options.focusOnShow && !input.is(':focus')) {\n input.focus();\n }\n\n notifyEvent({\n type: 'dp.show'\n });\n return picker;\n };\n /**\n * Shows or hides the widget\n */\n\n\n var toggle = function toggle() {\n return widget ? hide() : show();\n };\n\n var keydown = function keydown(e) {\n var handler = null;\n var index;\n var index2;\n var pressedKeys = [];\n var pressedModifiers = {};\n var currentKey = e.which;\n var keyBindKeys;\n var allModifiersPressed;\n var pressed = 'p';\n keyState[currentKey] = pressed;\n\n for (index in keyState) {\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n pressedKeys.push(index);\n\n if (parseInt(index, 10) !== currentKey) {\n pressedModifiers[index] = true;\n }\n }\n }\n\n for (index in options.keyBinds) {\n if (options.keyBinds.hasOwnProperty(index) && typeof options.keyBinds[index] === 'function') {\n keyBindKeys = index.split(' ');\n\n if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n allModifiersPressed = true;\n\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\n allModifiersPressed = false;\n break;\n }\n }\n\n if (allModifiersPressed) {\n handler = options.keyBinds[index];\n break;\n }\n }\n }\n }\n\n if (handler) {\n handler.call(picker, widget);\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n var keyup = function keyup(e) {\n keyState[e.which] = 'r';\n e.stopPropagation();\n e.preventDefault();\n };\n\n var change = function change(e) {\n var val = $(e.target).val().trim();\n var parsedDate = val ? parseInputDate(val) : null;\n setValue(parsedDate);\n e.stopImmediatePropagation();\n return false;\n };\n\n var attachDatePickerElementEvents = function attachDatePickerElementEvents() {\n input.on({\n 'change': change,\n 'blur': options.debug ? '' : hide,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? show : ''\n });\n\n if (element.is('input')) {\n input.on({\n 'focus': show\n });\n } else if (component) {\n component.on('click', toggle);\n component.on('mousedown', false);\n }\n };\n\n var detachDatePickerElementEvents = function detachDatePickerElementEvents() {\n input.off({\n 'change': change,\n 'blur': blur,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? hide : ''\n });\n\n if (element.is('input')) {\n input.off({\n 'focus': show\n });\n } else if (component) {\n component.off('click', toggle);\n component.off('mousedown', false);\n }\n };\n\n var indexGivenDates = function indexGivenDates(givenDatesArray) {\n // Store given enabledDates and disabledDates as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledDates['2014-02-27'] === true)\n var givenDatesIndexed = {};\n $.each(givenDatesArray, function () {\n var dDate = parseInputDate(this);\n\n if (dDate.isValid()) {\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n }\n });\n return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\n };\n\n var indexGivenHours = function indexGivenHours(givenHoursArray) {\n // Store given enabledHours and disabledHours as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledHours['2014-02-27'] === true)\n var givenHoursIndexed = {};\n $.each(givenHoursArray, function () {\n givenHoursIndexed[this] = true;\n });\n return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\n };\n\n var initFormatting = function initFormatting() {\n var format = options.format || 'L LT';\n actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\n var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\n return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) {\n // temp fix for #740\n return date.localeData().longDateFormat(formatInput2) || formatInput2;\n });\n });\n parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\n\n if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\n parseFormats.push(actualFormat);\n }\n\n use24Hours = actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1;\n\n if (isEnabled('y')) {\n minViewModeNumber = 2;\n }\n\n if (isEnabled('M')) {\n minViewModeNumber = 1;\n }\n\n if (isEnabled('d')) {\n minViewModeNumber = 0;\n }\n\n currentViewMode = Math.max(minViewModeNumber, currentViewMode);\n\n if (!unset) {\n setValue(date);\n }\n };\n /** ******************************************************************************\n *\n * Public API functions\n * =====================\n *\n * Important: Do not expose direct references to private objects or the options\n * object to the outer world. Always return a clone when returning values or make\n * a clone when setting a private variable.\n *\n ********************************************************************************/\n\n\n picker.destroy = function () {\n // /<summary>Destroys the widget and removes all attached event listeners</summary>\n hide();\n detachDatePickerElementEvents();\n element.removeData('DateTimePicker');\n element.removeData('date');\n };\n\n picker.toggle = toggle;\n picker.show = show;\n picker.hide = hide;\n\n picker.disable = function () {\n // /<summary>Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\n // /If the widget was visible before that call it is hidden. Possibly emits dp.hide</summary>\n hide();\n\n if (component && component.hasClass('btn')) {\n component.addClass('disabled');\n }\n\n input.prop('disabled', true);\n return picker;\n };\n\n picker.enable = function () {\n // /<summary>Enables the input element, the component is attached to, by removing disabled attribute from it.</summary>\n if (component && component.hasClass('btn')) {\n component.removeClass('disabled');\n }\n\n input.prop('disabled', false);\n return picker;\n };\n\n picker.ignoreReadonly = function (ignoreReadonly) {\n if (arguments.length === 0) {\n return options.ignoreReadonly;\n }\n\n if (typeof ignoreReadonly !== 'boolean') {\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\n }\n\n options.ignoreReadonly = ignoreReadonly;\n return picker;\n };\n\n picker.options = function (newOptions) {\n if (arguments.length === 0) {\n return $.extend(true, {}, options);\n }\n\n if (!(newOptions instanceof Object)) {\n throw new TypeError('options() options parameter should be an object');\n }\n\n $.extend(true, options, newOptions);\n $.each(options, function (key, value) {\n if (picker[key] !== undefined) {\n picker[key](value);\n } else {\n throw new TypeError('option ' + key + ' is not recognized!');\n }\n });\n return picker;\n };\n\n picker.date = function (newDate) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.date\">\n // /<summary>Returns the component's model current date, a moment object or null if not set.</summary>\n // /<returns type=\"Moment\">date.clone()</returns>\n // /</signature>\n // /<signature>\n // /<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary>\n // /<param name=\"newDate\" locid=\"$.fn.datetimepicker.date_p:newDate\">Takes string, Date, moment, null parameter.</param>\n // /</signature>\n if (arguments.length === 0) {\n if (unset) {\n return null;\n }\n\n return date.clone();\n }\n\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n }\n\n setValue(newDate === null ? null : parseInputDate(newDate));\n return picker;\n };\n\n picker.format = function (newFormat) {\n // /<summary>test su</summary>\n // /<param name=\"newFormat\">info about para</param>\n // /<returns type=\"string|boolean\">returns foo</returns>\n if (arguments.length === 0) {\n return options.format;\n }\n\n if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\n throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat);\n }\n\n options.format = newFormat;\n\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n\n picker.timeZone = function (newZone) {\n if (arguments.length === 0) {\n return options.timeZone;\n }\n\n if (typeof newZone !== 'string') {\n throw new TypeError('newZone() expects a string parameter');\n }\n\n options.timeZone = newZone;\n return picker;\n };\n\n picker.dayViewHeaderFormat = function (newFormat) {\n if (arguments.length === 0) {\n return options.dayViewHeaderFormat;\n }\n\n if (typeof newFormat !== 'string') {\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n }\n\n options.dayViewHeaderFormat = newFormat;\n return picker;\n };\n\n picker.extraFormats = function (formats) {\n if (arguments.length === 0) {\n return options.extraFormats;\n }\n\n if (formats !== false && !(formats instanceof Array)) {\n throw new TypeError('extraFormats() expects an array or false parameter');\n }\n\n options.extraFormats = formats;\n\n if (parseFormats) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n\n picker.disabledDates = function (dates) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledDates\">\n // /<summary>Returns an array with the currently set disabled dates on the component.</summary>\n // /<returns type=\"array\">options.disabledDates</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates;\n }\n\n if (!dates) {\n options.disabledDates = false;\n update();\n return picker;\n }\n\n if (!(dates instanceof Array)) {\n throw new TypeError('disabledDates() expects an array parameter');\n }\n\n options.disabledDates = indexGivenDates(dates);\n options.enabledDates = false;\n update();\n return picker;\n };\n\n picker.enabledDates = function (dates) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.enabledDates\">\n // /<summary>Returns an array with the currently set enabled dates on the component.</summary>\n // /<returns type=\"array\">options.enabledDates</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.enabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates;\n }\n\n if (!dates) {\n options.enabledDates = false;\n update();\n return picker;\n }\n\n if (!(dates instanceof Array)) {\n throw new TypeError('enabledDates() expects an array parameter');\n }\n\n options.enabledDates = indexGivenDates(dates);\n options.disabledDates = false;\n update();\n return picker;\n };\n\n picker.daysOfWeekDisabled = function (daysOfWeekDisabled) {\n if (arguments.length === 0) {\n return options.daysOfWeekDisabled.splice(0);\n }\n\n if (typeof daysOfWeekDisabled === 'boolean' && !daysOfWeekDisabled) {\n options.daysOfWeekDisabled = false;\n update();\n return picker;\n }\n\n if (!(daysOfWeekDisabled instanceof Array)) {\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n }\n\n options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\n currentValue = parseInt(currentValue, 10);\n\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n return previousValue;\n }\n\n if (previousValue.indexOf(currentValue) === -1) {\n previousValue.push(currentValue);\n }\n\n return previousValue;\n }, []).sort();\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'd')) {\n date.add(1, 'd');\n\n if (tries === 31) {\n throw new Error('Tried 31 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n\n picker.maxDate = function (maxDate) {\n if (arguments.length === 0) {\n return options.maxDate ? options.maxDate.clone() : options.maxDate;\n }\n\n if (typeof maxDate === 'boolean' && maxDate === false) {\n options.maxDate = false;\n update();\n return picker;\n }\n\n if (typeof maxDate === 'string') {\n if (maxDate === 'now' || maxDate === 'moment') {\n maxDate = getMoment();\n }\n }\n\n var parsedDate = parseInputDate(maxDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\n }\n\n if (options.minDate && parsedDate.isBefore(options.minDate)) {\n throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\n }\n\n options.maxDate = parsedDate;\n\n if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\n setValue(options.maxDate);\n }\n\n if (viewDate.isAfter(parsedDate)) {\n viewDate = parsedDate.clone().subtract(options.stepping, 'm');\n }\n\n update();\n return picker;\n };\n\n picker.minDate = function (minDate) {\n if (arguments.length === 0) {\n return options.minDate ? options.minDate.clone() : options.minDate;\n }\n\n if (typeof minDate === 'boolean' && minDate === false) {\n options.minDate = false;\n update();\n return picker;\n }\n\n if (typeof minDate === 'string') {\n if (minDate === 'now' || minDate === 'moment') {\n minDate = getMoment();\n }\n }\n\n var parsedDate = parseInputDate(minDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\n }\n\n if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\n throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\n }\n\n options.minDate = parsedDate;\n\n if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\n setValue(options.minDate);\n }\n\n if (viewDate.isBefore(parsedDate)) {\n viewDate = parsedDate.clone().add(options.stepping, 'm');\n }\n\n update();\n return picker;\n };\n\n picker.defaultDate = function (defaultDate) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.defaultDate\">\n // /<summary>Returns a moment with the options.defaultDate option configuration or false if not set</summary>\n // /<returns type=\"Moment\">date.clone()</returns>\n // /</signature>\n // /<signature>\n // /<summary>Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.</summary>\n // /<param name=\"defaultDate\" locid=\"$.fn.datetimepicker.defaultDate_p:defaultDate\">Takes a string, Date, moment, boolean:false</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\n }\n\n if (!defaultDate) {\n options.defaultDate = false;\n return picker;\n }\n\n if (typeof defaultDate === 'string') {\n if (defaultDate === 'now' || defaultDate === 'moment') {\n defaultDate = getMoment();\n } else {\n defaultDate = getMoment(defaultDate);\n }\n }\n\n var parsedDate = parseInputDate(defaultDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\n }\n\n if (!isValid(parsedDate)) {\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n }\n\n options.defaultDate = parsedDate;\n\n if (options.defaultDate && options.inline || input.val().trim() === '') {\n setValue(options.defaultDate);\n }\n\n return picker;\n };\n\n picker.locale = function (locale) {\n if (arguments.length === 0) {\n return options.locale;\n }\n\n if (!moment.localeData(locale)) {\n throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\n }\n\n options.locale = locale;\n date.locale(options.locale);\n viewDate.locale(options.locale);\n\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.stepping = function (stepping) {\n if (arguments.length === 0) {\n return options.stepping;\n }\n\n stepping = parseInt(stepping, 10);\n\n if (isNaN(stepping) || stepping < 1) {\n stepping = 1;\n }\n\n options.stepping = stepping;\n return picker;\n };\n\n picker.useCurrent = function (useCurrent) {\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n\n if (arguments.length === 0) {\n return options.useCurrent;\n }\n\n if (typeof useCurrent !== 'boolean' && typeof useCurrent !== 'string') {\n throw new TypeError('useCurrent() expects a boolean or string parameter');\n }\n\n if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\n }\n\n options.useCurrent = useCurrent;\n return picker;\n };\n\n picker.collapse = function (collapse) {\n if (arguments.length === 0) {\n return options.collapse;\n }\n\n if (typeof collapse !== 'boolean') {\n throw new TypeError('collapse() expects a boolean parameter');\n }\n\n if (options.collapse === collapse) {\n return picker;\n }\n\n options.collapse = collapse;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.icons = function (icons) {\n if (arguments.length === 0) {\n return $.extend({}, options.icons);\n }\n\n if (!(icons instanceof Object)) {\n throw new TypeError('icons() expects parameter to be an Object');\n }\n\n $.extend(options.icons, icons);\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.tooltips = function (tooltips) {\n if (arguments.length === 0) {\n return $.extend({}, options.tooltips);\n }\n\n if (!(tooltips instanceof Object)) {\n throw new TypeError('tooltips() expects parameter to be an Object');\n }\n\n $.extend(options.tooltips, tooltips);\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.useStrict = function (useStrict) {\n if (arguments.length === 0) {\n return options.useStrict;\n }\n\n if (typeof useStrict !== 'boolean') {\n throw new TypeError('useStrict() expects a boolean parameter');\n }\n\n options.useStrict = useStrict;\n return picker;\n };\n\n picker.sideBySide = function (sideBySide) {\n if (arguments.length === 0) {\n return options.sideBySide;\n }\n\n if (typeof sideBySide !== 'boolean') {\n throw new TypeError('sideBySide() expects a boolean parameter');\n }\n\n options.sideBySide = sideBySide;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.viewMode = function (viewMode) {\n if (arguments.length === 0) {\n return options.viewMode;\n }\n\n if (typeof viewMode !== 'string') {\n throw new TypeError('viewMode() expects a string parameter');\n }\n\n if (viewModes.indexOf(viewMode) === -1) {\n throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\n }\n\n options.viewMode = viewMode;\n currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\n showMode();\n return picker;\n };\n\n picker.toolbarPlacement = function (toolbarPlacement) {\n if (arguments.length === 0) {\n return options.toolbarPlacement;\n }\n\n if (typeof toolbarPlacement !== 'string') {\n throw new TypeError('toolbarPlacement() expects a string parameter');\n }\n\n if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\n }\n\n options.toolbarPlacement = toolbarPlacement;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.widgetPositioning = function (widgetPositioning) {\n if (arguments.length === 0) {\n return $.extend({}, options.widgetPositioning);\n }\n\n if ({}.toString.call(widgetPositioning) !== '[object Object]') {\n throw new TypeError('widgetPositioning() expects an object variable');\n }\n\n if (widgetPositioning.horizontal) {\n if (typeof widgetPositioning.horizontal !== 'string') {\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\n }\n\n widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\n\n if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\n }\n\n options.widgetPositioning.horizontal = widgetPositioning.horizontal;\n }\n\n if (widgetPositioning.vertical) {\n if (typeof widgetPositioning.vertical !== 'string') {\n throw new TypeError('widgetPositioning() vertical variable must be a string');\n }\n\n widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\n\n if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\n }\n\n options.widgetPositioning.vertical = widgetPositioning.vertical;\n }\n\n update();\n return picker;\n };\n\n picker.calendarWeeks = function (calendarWeeks) {\n if (arguments.length === 0) {\n return options.calendarWeeks;\n }\n\n if (typeof calendarWeeks !== 'boolean') {\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n }\n\n options.calendarWeeks = calendarWeeks;\n update();\n return picker;\n };\n\n picker.showTodayButton = function (showTodayButton) {\n if (arguments.length === 0) {\n return options.showTodayButton;\n }\n\n if (typeof showTodayButton !== 'boolean') {\n throw new TypeError('showTodayButton() expects a boolean parameter');\n }\n\n options.showTodayButton = showTodayButton;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.showClear = function (showClear) {\n if (arguments.length === 0) {\n return options.showClear;\n }\n\n if (typeof showClear !== 'boolean') {\n throw new TypeError('showClear() expects a boolean parameter');\n }\n\n options.showClear = showClear;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.widgetParent = function (widgetParent) {\n if (arguments.length === 0) {\n return options.widgetParent;\n }\n\n if (typeof widgetParent === 'string') {\n widgetParent = $(widgetParent);\n }\n\n if (widgetParent !== null && typeof widgetParent !== 'string' && !(widgetParent instanceof $)) {\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n }\n\n options.widgetParent = widgetParent;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.keepOpen = function (keepOpen) {\n if (arguments.length === 0) {\n return options.keepOpen;\n }\n\n if (typeof keepOpen !== 'boolean') {\n throw new TypeError('keepOpen() expects a boolean parameter');\n }\n\n options.keepOpen = keepOpen;\n return picker;\n };\n\n picker.focusOnShow = function (focusOnShow) {\n if (arguments.length === 0) {\n return options.focusOnShow;\n }\n\n if (typeof focusOnShow !== 'boolean') {\n throw new TypeError('focusOnShow() expects a boolean parameter');\n }\n\n options.focusOnShow = focusOnShow;\n return picker;\n };\n\n picker.inline = function (inline) {\n if (arguments.length === 0) {\n return options.inline;\n }\n\n if (typeof inline !== 'boolean') {\n throw new TypeError('inline() expects a boolean parameter');\n }\n\n options.inline = inline;\n return picker;\n };\n\n picker.clear = function () {\n clear();\n return picker;\n };\n\n picker.keyBinds = function (keyBinds) {\n if (arguments.length === 0) {\n return options.keyBinds;\n }\n\n options.keyBinds = keyBinds;\n return picker;\n };\n\n picker.getMoment = function (d) {\n return getMoment(d);\n };\n\n picker.debug = function (debug) {\n if (typeof debug !== 'boolean') {\n throw new TypeError('debug() expects a boolean parameter');\n }\n\n options.debug = debug;\n return picker;\n };\n\n picker.allowInputToggle = function (allowInputToggle) {\n if (arguments.length === 0) {\n return options.allowInputToggle;\n }\n\n if (typeof allowInputToggle !== 'boolean') {\n throw new TypeError('allowInputToggle() expects a boolean parameter');\n }\n\n options.allowInputToggle = allowInputToggle;\n return picker;\n };\n\n picker.showClose = function (showClose) {\n if (arguments.length === 0) {\n return options.showClose;\n }\n\n if (typeof showClose !== 'boolean') {\n throw new TypeError('showClose() expects a boolean parameter');\n }\n\n options.showClose = showClose;\n return picker;\n };\n\n picker.keepInvalid = function (keepInvalid) {\n if (arguments.length === 0) {\n return options.keepInvalid;\n }\n\n if (typeof keepInvalid !== 'boolean') {\n throw new TypeError('keepInvalid() expects a boolean parameter');\n }\n\n options.keepInvalid = keepInvalid;\n return picker;\n };\n\n picker.datepickerInput = function (datepickerInput) {\n if (arguments.length === 0) {\n return options.datepickerInput;\n }\n\n if (typeof datepickerInput !== 'string') {\n throw new TypeError('datepickerInput() expects a string parameter');\n }\n\n options.datepickerInput = datepickerInput;\n return picker;\n };\n\n picker.parseInputDate = function (parseInputDate) {\n if (arguments.length === 0) {\n return options.parseInputDate;\n }\n\n if (typeof parseInputDate !== 'function') {\n throw new TypeError('parseInputDate() sholud be as function');\n }\n\n options.parseInputDate = parseInputDate;\n return picker;\n };\n\n picker.disabledTimeIntervals = function (disabledTimeIntervals) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledTimeIntervals\">\n // /<summary>Returns an array with the currently set disabled dates on the component.</summary>\n // /<returns type=\"array\">options.disabledTimeIntervals</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledTimeIntervals_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals;\n }\n\n if (!disabledTimeIntervals) {\n options.disabledTimeIntervals = false;\n update();\n return picker;\n }\n\n if (!(disabledTimeIntervals instanceof Array)) {\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\n }\n\n options.disabledTimeIntervals = disabledTimeIntervals;\n update();\n return picker;\n };\n\n picker.disabledHours = function (hours) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledHours\">\n // /<summary>Returns an array with the currently set disabled hours on the component.</summary>\n // /<returns type=\"array\">options.disabledHours</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledHours if such exist.</summary>\n // /<param name=\"hours\" locid=\"$.fn.datetimepicker.disabledHours_p:hours\">Takes an [ int ] of values and disallows the user to select only from those hours.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours;\n }\n\n if (!hours) {\n options.disabledHours = false;\n update();\n return picker;\n }\n\n if (!(hours instanceof Array)) {\n throw new TypeError('disabledHours() expects an array parameter');\n }\n\n options.disabledHours = indexGivenHours(hours);\n options.enabledHours = false;\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n\n picker.enabledHours = function (hours) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.enabledHours\">\n // /<summary>Returns an array with the currently set enabled hours on the component.</summary>\n // /<returns type=\"array\">options.enabledHours</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.</summary>\n // /<param name=\"hours\" locid=\"$.fn.datetimepicker.enabledHours_p:hours\">Takes an [ int ] of values and allows the user to select only from those hours.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours;\n }\n\n if (!hours) {\n options.enabledHours = false;\n update();\n return picker;\n }\n\n if (!(hours instanceof Array)) {\n throw new TypeError('enabledHours() expects an array parameter');\n }\n\n options.enabledHours = indexGivenHours(hours);\n options.disabledHours = false;\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n /**\n * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\n * @param {Takes string, viewDate, moment, null parameter.} newDate\n * @returns {viewDate.clone()}\n */\n\n\n picker.viewDate = function (newDate) {\n if (arguments.length === 0) {\n return viewDate.clone();\n }\n\n if (!newDate) {\n viewDate = date.clone();\n return picker;\n }\n\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n }\n\n viewDate = parseInputDate(newDate);\n viewUpdate();\n return picker;\n }; // initializing element and component attributes\n\n\n if (element.is('input')) {\n input = element;\n } else {\n input = element.find(options.datepickerInput);\n\n if (input.length === 0) {\n input = element.find('input');\n } else if (!input.is('input')) {\n throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\n }\n }\n\n if (element.hasClass('input-group')) {\n // in case there is more then one 'input-group-addon' Issue #48\n if (element.find('.datepickerbutton').length === 0) {\n component = element.find('.input-group-addon');\n } else {\n component = element.find('.datepickerbutton');\n }\n }\n\n if (!options.inline && !input.is('input')) {\n throw new Error('Could not initialize DateTimePicker without an input element');\n } // Set defaults for date here now instead of in var declaration\n\n\n date = getMoment();\n viewDate = date.clone();\n $.extend(true, options, dataToOptions());\n picker.options(options);\n initFormatting();\n attachDatePickerElementEvents();\n\n if (input.prop('disabled')) {\n picker.disable();\n }\n\n if (input.is('input') && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (options.defaultDate && input.attr('placeholder') === undefined) {\n setValue(options.defaultDate);\n }\n\n if (options.inline) {\n show();\n }\n\n return picker;\n };\n /** ******************************************************************************\n *\n * jQuery plugin constructor and defaults object\n *\n ********************************************************************************/\n\n /**\n * See (http://jquery.com/).\n * @name jQuery\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n */\n\n /**\n * See (http://jquery.com/)\n * @name fn\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n * @memberOf jQuery\n */\n\n /**\n * Show comments\n * @class datetimepicker\n * @memberOf jQuery.fn\n */\n\n\n $.fn.datetimepicker = function (options) {\n options = options || {};\n var args = Array.prototype.slice.call(arguments, 1);\n var isInstance = true;\n var thisMethods = ['destroy', 'hide', 'show', 'toggle'];\n var returnValue;\n\n if (_typeof(options) === 'object') {\n return this.each(function () {\n var $this = $(this);\n\n var _options;\n\n if (!$this.data('DateTimePicker')) {\n // create a private copy of the defaults object\n _options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\n $this.data('DateTimePicker', dateTimePicker($this, _options));\n }\n });\n } else if (typeof options === 'string') {\n this.each(function () {\n var $this = $(this);\n var instance = $this.data('DateTimePicker');\n\n if (!instance) {\n throw new Error('bootstrap-datetimepicker(\"' + options + '\") method was called on an element that is not using DateTimePicker');\n }\n\n returnValue = instance[options].apply(instance, args);\n isInstance = returnValue === instance;\n });\n\n if (isInstance || $.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return returnValue;\n }\n\n throw new TypeError('Invalid arguments for DateTimePicker: ' + options);\n };\n\n $.fn.datetimepicker.defaults = {\n timeZone: '',\n format: false,\n dayViewHeaderFormat: 'MMMM YYYY',\n extraFormats: false,\n stepping: 1,\n minDate: false,\n maxDate: false,\n useCurrent: true,\n collapse: true,\n locale: moment.locale(),\n defaultDate: false,\n disabledDates: false,\n enabledDates: false,\n icons: {\n time: 'glyphicon glyphicon-time',\n date: 'glyphicon glyphicon-calendar',\n up: 'glyphicon glyphicon-chevron-up',\n down: 'glyphicon glyphicon-chevron-down',\n previous: 'glyphicon glyphicon-chevron-left',\n next: 'glyphicon glyphicon-chevron-right',\n today: 'glyphicon glyphicon-screenshot',\n clear: 'glyphicon glyphicon-trash',\n close: 'glyphicon glyphicon-remove'\n },\n tooltips: {\n today: 'Go to today',\n clear: 'Clear selection',\n close: 'Close the picker',\n selectMonth: 'Select Month',\n prevMonth: 'Previous Month',\n nextMonth: 'Next Month',\n selectYear: 'Select Year',\n prevYear: 'Previous Year',\n nextYear: 'Next Year',\n selectDecade: 'Select Decade',\n prevDecade: 'Previous Decade',\n nextDecade: 'Next Decade',\n prevCentury: 'Previous Century',\n nextCentury: 'Next Century',\n pickHour: 'Pick Hour',\n incrementHour: 'Increment Hour',\n decrementHour: 'Decrement Hour',\n pickMinute: 'Pick Minute',\n incrementMinute: 'Increment Minute',\n decrementMinute: 'Decrement Minute',\n pickSecond: 'Pick Second',\n incrementSecond: 'Increment Second',\n decrementSecond: 'Decrement Second',\n togglePeriod: 'Toggle Period',\n selectTime: 'Select Time'\n },\n useStrict: false,\n sideBySide: false,\n daysOfWeekDisabled: false,\n calendarWeeks: false,\n viewMode: 'days',\n toolbarPlacement: 'default',\n showTodayButton: false,\n showClear: false,\n showClose: false,\n widgetPositioning: {\n horizontal: 'auto',\n vertical: 'auto'\n },\n widgetParent: null,\n ignoreReadonly: false,\n keepOpen: false,\n focusOnShow: true,\n inline: false,\n keepInvalid: false,\n datepickerInput: '.datepickerinput',\n keyBinds: {\n up: function up(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(7, 'd'));\n } else {\n this.date(d.clone().add(this.stepping(), 'm'));\n }\n },\n down: function down(widget) {\n if (!widget) {\n this.show();\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(7, 'd'));\n } else {\n this.date(d.clone().subtract(this.stepping(), 'm'));\n }\n },\n 'control up': function controlUp(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'y'));\n } else {\n this.date(d.clone().add(1, 'h'));\n }\n },\n 'control down': function controlDown(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'y'));\n } else {\n this.date(d.clone().subtract(1, 'h'));\n }\n },\n left: function left(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'd'));\n }\n },\n right: function right(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'd'));\n }\n },\n pageUp: function pageUp(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'M'));\n }\n },\n pageDown: function pageDown(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'M'));\n }\n },\n enter: function enter() {\n this.hide();\n },\n escape: function escape() {\n this.hide();\n },\n // tab: function (widget) { //this break the flow of the form. disabling for now\n // var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\n // if(toggle.length > 0) toggle.click();\n // },\n 'control space': function controlSpace(widget) {\n if (!widget) {\n return;\n }\n\n if (widget.find('.timepicker').is(':visible')) {\n widget.find('.btn[data-action=\"togglePeriod\"]').click();\n }\n },\n t: function t() {\n this.date(this.getMoment());\n },\n 'delete': function _delete() {\n this.clear();\n }\n },\n debug: false,\n allowInputToggle: false,\n disabledTimeIntervals: false,\n disabledHours: false,\n enabledHours: false,\n viewDate: false\n };\n return $.fn.datetimepicker;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTtBQUNDLFdBQVNBLE9BQVQsRUFBa0I7QUFDZjs7QUFDQSxNQUFJLElBQUosRUFBZ0Q7QUFDNUM7QUFDQUMsSUFBQUEsaUNBQU8sQ0FBQywyQ0FBRCxFQUFXLG9FQUFYLENBQUQsb0NBQXVCRCxPQUF2QjtBQUFBO0FBQUE7QUFBQSxrR0FBTjtBQUNILEdBSEQsTUFHTyxFQVdOO0FBQ0osQ0FqQkEsRUFpQkMsVUFBU1MsQ0FBVCxFQUFZRCxNQUFaLEVBQW9CO0FBQ2xCOztBQUNBLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1QsVUFBTSxJQUFJRCxLQUFKLENBQVUsZ0VBQVYsQ0FBTjtBQUNIOztBQUVELE1BQUlHLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBU0MsT0FBVCxFQUFrQkMsT0FBbEIsRUFBMkI7QUFDNUMsUUFBSUMsTUFBTSxHQUFHLEVBQWI7QUFDQSxRQUFJQyxJQUFKO0FBQ0EsUUFBSUMsUUFBSjtBQUNBLFFBQUlDLEtBQUssR0FBRyxJQUFaO0FBQ0EsUUFBSUMsS0FBSjtBQUNBLFFBQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLFFBQUlDLE1BQU0sR0FBRyxLQUFiO0FBQ0EsUUFBSUMsVUFBSjtBQUNBLFFBQUlDLGlCQUFpQixHQUFHLENBQXhCO0FBQ0EsUUFBSUMsWUFBSjtBQUNBLFFBQUlDLFlBQUo7QUFDQSxRQUFJQyxlQUFKO0FBQ0EsUUFBSUMsZUFBZSxHQUFHLENBQ2xCO0FBQ0lDLE1BQUFBLE9BQU8sRUFBRSxNQURiO0FBRUlDLE1BQUFB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RUFBRTtBQXhMaUIsR0FBL0I7QUEyTEEsU0FBT04sQ0FBQyxDQUFDaVgsRUFBRixDQUFLQyxjQUFaO0FBQ0gsQ0F0aUZBLENBQUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlci5qcz9lNDA5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qISB2ZXJzaW9uIDogNC4xNy40N1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGJvb3RzdHJhcC1kYXRldGltZWpzXG4gaHR0cHM6Ly9naXRodWIuY29tL0VvbmFzZGFuL2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlclxuIENvcHlyaWdodCAoYykgMjAxNSBKb25hdGhhbiBQZXRlcnNvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKlxuIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuXG4gQ29weXJpZ2h0IChjKSAyMDE1IEpvbmF0aGFuIFBldGVyc29uXG5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cbiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLyogZ2xvYmFsIGRlZmluZTpmYWxzZSAqL1xuLyogZ2xvYmFsIGpRdWVyeTpmYWxzZSAqL1xuLyogZ2xvYmFsIG1vbWVudDpmYWxzZSAqL1xuKGZ1bmN0aW9uKGZhY3RvcnkpIHtcbiAgICAndXNlIHN0cmljdCc7XG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICAvLyBBTUQgaXMgdXNlZCAtIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuXG4gICAgICAgIGRlZmluZShbJ2pxdWVyeScsICdtb21lbnQnXSwgZmFjdG9yeSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoJ2pxdWVyeScpLCByZXF1aXJlKCdtb21lbnQnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTmVpdGhlciBBTUQgbm9yIENvbW1vbkpTIHVzZWQuIFVzZSBnbG9iYWwgdmFyaWFibGVzLlxuICAgICAgICBpZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyIHJlcXVpcmVzIGpRdWVyeSB0byBiZSBsb2FkZWQgZmlyc3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG1vbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyIHJlcXVpcmVzIE1vbWVudC5qcyB0byBiZSBsb2FkZWQgZmlyc3QnKTtcbiAgICAgICAgfVxuICAgICAgICBmYWN0b3J5KGpRdWVyeSwgbW9tZW50KTtcbiAgICB9XG59KGZ1bmN0aW9uKCQsIG1vbWVudCkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICBpZiAoIW1vbWVudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlciByZXF1aXJlcyBNb21lbnQuanMgdG8gYmUgbG9hZGVkIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgdmFyIGRhdGVUaW1lUGlja2VyID0gZnVuY3Rpb24oZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgcGlja2VyID0ge307XG4gICAgICAgIHZhciBkYXRlO1xuICAgICAgICB2YXIgdmlld0RhdGU7XG4gICAgICAgIHZhciB1bnNldCA9IHRydWU7XG4gICAgICAgIHZhciBpbnB1dDtcbiAgICAgICAgdmFyIGNvbXBvbmVudCA9IGZhbHNlO1xuICAgICAgICB2YXIgd2lkZ2V0ID0gZmFsc2U7XG4gICAgICAgIHZhciB1c2UyNEhvdXJzO1xuICAgICAgICB2YXIgbWluVmlld01vZGVOdW1iZXIgPSAwO1xuICAgICAgICB2YXIgYWN0dWFsRm9ybWF0O1xuICAgICAgICB2YXIgcGFyc2VGb3JtYXRzO1xuICAgICAgICB2YXIgY3VycmVudFZpZXdNb2RlO1xuICAgICAgICB2YXIgZGF0ZVBpY2tlck1vZGVzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsc05hbWU6ICdkYXlzJyxcbiAgICAgICAgICAgICAgICBuYXZGbmM6ICdNJyxcbiAgICAgICAgICAgICAgICBuYXZTdGVwOiAxXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsc05hbWU6ICdtb250aHMnLFxuICAgICAgICAgICAgICAgIG5hdkZuYzogJ3knLFxuICAgICAgICAgICAgICAgIG5hdlN0ZXA6IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xzTmFtZTogJ3llYXJzJyxcbiAgICAgICAgICAgICAgICBuYXZGbmM6ICd5JyxcbiAgICAgICAgICAgICAgICBuYXZTdGVwOiAxMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbHNOYW1lOiAnZGVjYWRlcycsXG4gICAgICAgICAgICAgICAgbmF2Rm5jOiAneScsXG4gICAgICAgICAgICAgICAgbmF2U3RlcDogMTAwXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHZhciB2aWV3TW9kZXMgPSBbJ2RheXMnLCAnbW9udGhzJywgJ3llYXJzJywgJ2RlY2FkZXMnXTtcbiAgICAgICAgdmFyIHZlcnRpY2FsTW9kZXMgPSBbJ3RvcCcsICdib3R0b20nLCAnYXV0byddO1xuICAgICAgICB2YXIgaG9yaXpvbnRhbE1vZGVzID0gWydsZWZ0JywgJ3JpZ2h0JywgJ2F1dG8nXTtcbiAgICAgICAgdmFyIHRvb2xiYXJQbGFjZW1lbnRzID0gWydkZWZhdWx0JywgJ3RvcCcsICdib3R0b20nXTtcbiAgICAgICAgdmFyIGtleU1hcCA9IHtcbiAgICAgICAgICAgICd1cCc6IDM4LFxuICAgICAgICAgICAgMzg6ICd1cCcsXG4gICAgICAgICAgICAnZG93bic6IDQwLFxuICAgICAgICAgICAgNDA6ICdkb3duJyxcbiAgICAgICAgICAgICdsZWZ0JzogMzcsXG4gICAgICAgICAgICAzNzogJ2xlZnQnLFxuICAgICAgICAgICAgJ3JpZ2h0JzogMzksXG4gICAgICAgICAgICAzOTogJ3JpZ2h0JyxcbiAgICAgICAgICAgICd0YWInOiA5LFxuICAgICAgICAgICAgOTogJ3RhYicsXG4gICAgICAgICAgICAnZXNjYXBlJzogMjcsXG4gICAgICAgICAgICAyNzogJ2VzY2FwZScsXG4gICAgICAgICAgICAnZW50ZXInOiAxMyxcbiAgICAgICAgICAgIDEzOiAnZW50ZXInLFxuICAgICAgICAgICAgJ3BhZ2VVcCc6IDMzLFxuICAgICAgICAgICAgMzM6ICdwYWdlVXAnLFxuICAgICAgICAgICAgJ3BhZ2VEb3duJzogMzQsXG4gICAgICAgICAgICAzNDogJ3BhZ2VEb3duJyxcbiAgICAgICAgICAgICdzaGlmdCc6IDE2LFxuICAgICAgICAgICAgMTY6ICdzaGlmdCcsXG4gICAgICAgICAgICAnY29udHJvbCc6IDE3LFxuICAgICAgICAgICAgMTc6ICdjb250cm9sJyxcbiAgICAgICAgICAgICdzcGFjZSc6IDMyLFxuICAgICAgICAgICAgMzI6ICdzcGFjZScsXG4gICAgICAgICAgICAndCc6IDg0LFxuICAgICAgICAgICAgODQ6ICd0JyxcbiAgICAgICAgICAgICdkZWxldGUnOiA0NixcbiAgICAgICAgICAgIDQ2OiAnZGVsZXRlJ1xuICAgICAgICB9O1xuICAgICAgICB2YXIga2V5U3RhdGUgPSB7fTtcblxuICAgICAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogUHJpdmF0ZSBmdW5jdGlvbnNcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgdmFyIGhhc1RpbWVab25lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50LnR6ICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy50aW1lWm9uZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMudGltZVpvbmUgIT09IG51bGwgJiYgb3B0aW9ucy50aW1lWm9uZSAhPT0gJyc7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldE1vbWVudCA9IGZ1bmN0aW9uKGQpIHtcbiAgICAgICAgICAgIHZhciByZXR1cm5Nb21lbnQ7XG5cbiAgICAgICAgICAgIGlmIChkID09PSB1bmRlZmluZWQgfHwgZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudCA9IG1vbWVudCgpOyAvLyBUT0RPIHNob3VsZCB0aGlzIHVzZSBmb3JtYXQ/IGFuZCBsb2NhbGU/XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1vbWVudC5pc0RhdGUoZCkgfHwgbW9tZW50LmlzTW9tZW50KGQpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRhdGUgdGhhdCBpcyBwYXNzZWQgaW4gaXMgYWxyZWFkeSBhIERhdGUoKSBvciBtb21lbnQoKSBvYmplY3QsXG4gICAgICAgICAgICAgICAgLy8gcGFzcyBpdCBkaXJlY3RseSB0byBtb21lbnQuXG4gICAgICAgICAgICAgICAgcmV0dXJuTW9tZW50ID0gbW9tZW50KGQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNUaW1lWm9uZSgpKSB7IC8vIFRoZXJlIGlzIGEgc3RyaW5nIHRvIHBhcnNlIGFuZCBhIGRlZmF1bHQgdGltZSB6b25lXG4gICAgICAgICAgICAgICAgLy8gcGFyc2Ugd2l0aCB0aGUgdHogZnVuY3Rpb24gd2hpY2ggdGFrZXMgYSBkZWZhdWx0IHRpbWUgem9uZSBpZiBpdCBpcyBub3QgaW4gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICAgICAgICAgICAgICByZXR1cm5Nb21lbnQgPSBtb21lbnQudHooZCwgcGFyc2VGb3JtYXRzLCBvcHRpb25zLnVzZVN0cmljdCwgb3B0aW9ucy50aW1lWm9uZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudCA9IG1vbWVudChkLCBwYXJzZUZvcm1hdHMsIG9wdGlvbnMudXNlU3RyaWN0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhc1RpbWVab25lKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5Nb21lbnQudHoob3B0aW9ucy50aW1lWm9uZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXR1cm5Nb21lbnQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGlzRW5hYmxlZCA9IGZ1bmN0aW9uKGdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGdyYW51bGFyaXR5ICE9PSAnc3RyaW5nJyB8fCBncmFudWxhcml0eS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaXNFbmFibGVkIGV4cGVjdHMgYSBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbEZvcm1hdC5pbmRleE9mKCdZJykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ00nKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdkJykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0gnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaCcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbEZvcm1hdC5pbmRleE9mKCdtJykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ3MnKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBoYXNUaW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gKGlzRW5hYmxlZCgnaCcpIHx8IGlzRW5hYmxlZCgnbScpIHx8IGlzRW5hYmxlZCgncycpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaGFzRGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIChpc0VuYWJsZWQoJ3knKSB8fCBpc0VuYWJsZWQoJ00nKSB8fCBpc0VuYWJsZWQoJ2QnKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldERhdGVQaWNrZXJUZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGhlYWRUZW1wbGF0ZSA9ICQoJzx0aGVhZD4nKVxuICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRyPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdwcmV2JykuYXR0cignZGF0YS1hY3Rpb24nLCAncHJldmlvdXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLnByZXZpb3VzKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0aD4nKS5hZGRDbGFzcygncGlja2VyLXN3aXRjaCcpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ3BpY2tlclN3aXRjaCcpLmF0dHIoJ2NvbHNwYW4nLCAob3B0aW9ucy5jYWxlbmRhcldlZWtzID8gJzYnIDogJzUnKSkpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCduZXh0JykuYXR0cignZGF0YS1hY3Rpb24nLCAnbmV4dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMubmV4dCkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgdmFyIGNvbnRUZW1wbGF0ZSA9ICQoJzx0Ym9keT4nKVxuICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRyPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRkPicpLmF0dHIoJ2NvbHNwYW4nLCAob3B0aW9ucy5jYWxlbmRhcldlZWtzID8gJzgnIDogJzcnKSkpXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAkKCc8ZGl2PicpLmFkZENsYXNzKCdkYXRlcGlja2VyLWRheXMnKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoaGVhZFRlbXBsYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGJvZHk+JykpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlci1tb250aHMnKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoaGVhZFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGNvbnRUZW1wbGF0ZS5jbG9uZSgpKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2RhdGVwaWNrZXIteWVhcnMnKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoaGVhZFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGNvbnRUZW1wbGF0ZS5jbG9uZSgpKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2RhdGVwaWNrZXItZGVjYWRlcycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoY29udFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF07XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldFRpbWVQaWNrZXJNYWluVGVtcGxhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0b3BSb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICB2YXIgbWlkZGxlUm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgdmFyIGJvdHRvbVJvdyA9ICQoJzx0cj4nKTtcblxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnaCcpKSB7XG4gICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgaHJlZjogJyMnLCB0YWJpbmRleDogJy0xJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5pbmNyZW1lbnRIb3VyIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdpbmNyZW1lbnRIb3VycycpLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLnVwKSkpKTtcbiAgICAgICAgICAgICAgICBtaWRkbGVSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKCd0aW1lcGlja2VyLWhvdXInKS5hdHRyKHsgJ2RhdGEtdGltZS1jb21wb25lbnQnOiAnaG91cnMnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnBpY2tIb3VyIH0pLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ3Nob3dIb3VycycpKSk7XG4gICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgaHJlZjogJyMnLCB0YWJpbmRleDogJy0xJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5kZWNyZW1lbnRIb3VyIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdkZWNyZW1lbnRIb3VycycpLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLmRvd24pKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnbScpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKS5odG1sKCc6JykpO1xuICAgICAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKS5hZGRDbGFzcygnc2VwYXJhdG9yJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmluY3JlbWVudE1pbnV0ZSB9KS5hZGRDbGFzcygnYnRuJykuYXR0cignZGF0YS1hY3Rpb24nLCAnaW5jcmVtZW50TWludXRlcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudXApKSkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItbWludXRlJykuYXR0cih7ICdkYXRhLXRpbWUtY29tcG9uZW50JzogJ21pbnV0ZXMnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnBpY2tNaW51dGUgfSkuYXR0cignZGF0YS1hY3Rpb24nLCAnc2hvd01pbnV0ZXMnKSkpO1xuICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPGE+JykuYXR0cih7IGhyZWY6ICcjJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuZGVjcmVtZW50TWludXRlIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdkZWNyZW1lbnRNaW51dGVzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5kb3duKSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3MnKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ20nKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKS5hZGRDbGFzcygnc2VwYXJhdG9yJykpO1xuICAgICAgICAgICAgICAgICAgICBtaWRkbGVSb3cuYXBwZW5kKCQoJzx0ZD4nKS5hZGRDbGFzcygnc2VwYXJhdG9yJykuaHRtbCgnOicpKTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgaHJlZjogJyMnLCB0YWJpbmRleDogJy0xJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5pbmNyZW1lbnRTZWNvbmQgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2luY3JlbWVudFNlY29uZHMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLnVwKSkpKTtcbiAgICAgICAgICAgICAgICBtaWRkbGVSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKCd0aW1lcGlja2VyLXNlY29uZCcpLmF0dHIoeyAnZGF0YS10aW1lLWNvbXBvbmVudCc6ICdzZWNvbmRzJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5waWNrU2Vjb25kIH0pLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ3Nob3dTZWNvbmRzJykpKTtcbiAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmRlY3JlbWVudFNlY29uZCB9KS5hZGRDbGFzcygnYnRuJykuYXR0cignZGF0YS1hY3Rpb24nLCAnZGVjcmVtZW50U2Vjb25kcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuZG93bikpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdXNlMjRIb3Vycykge1xuICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgbWlkZGxlUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YnV0dG9uPicpLmFkZENsYXNzKCdidG4gYnRuLXByaW1hcnknKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ3RvZ2dsZVBlcmlvZCcsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnRvZ2dsZVBlcmlvZCB9KSkpO1xuICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAkKCc8ZGl2PicpLmFkZENsYXNzKCd0aW1lcGlja2VyLXBpY2tlcicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoW3RvcFJvdywgbWlkZGxlUm93LCBib3R0b21Sb3ddKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldFRpbWVQaWNrZXJUZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGhvdXJzVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItaG91cnMnKVxuICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKSk7XG4gICAgICAgICAgICB2YXIgbWludXRlc1ZpZXcgPSAkKCc8ZGl2PicpLmFkZENsYXNzKCd0aW1lcGlja2VyLW1pbnV0ZXMnKVxuICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKSk7XG4gICAgICAgICAgICB2YXIgc2Vjb25kc1ZpZXcgPSAkKCc8ZGl2PicpLmFkZENsYXNzKCd0aW1lcGlja2VyLXNlY29uZHMnKVxuICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKSk7XG4gICAgICAgICAgICB2YXIgcmV0ID0gW2dldFRpbWVQaWNrZXJNYWluVGVtcGxhdGUoKV07XG5cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ2gnKSkge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKGhvdXJzVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdtJykpIHtcbiAgICAgICAgICAgICAgICByZXQucHVzaChtaW51dGVzVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdzJykpIHtcbiAgICAgICAgICAgICAgICByZXQucHVzaChzZWNvbmRzVmlldyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldFRvb2xiYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciByb3cgPSBbXTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3dUb2RheUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHJvdy5wdXNoKCQoJzx0ZD4nKS5hcHBlbmQoJCgnPGE+JykuYXR0cih7ICdkYXRhLWFjdGlvbic6ICd0b2RheScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMudG9kYXkgfSkuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudG9kYXkpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLnNpZGVCeVNpZGUgJiYgaGFzRGF0ZSgpICYmIGhhc1RpbWUoKSkge1xuICAgICAgICAgICAgICAgIHJvdy5wdXNoKCQoJzx0ZD4nKS5hcHBlbmQoJCgnPGE+JykuYXR0cih7ICdkYXRhLWFjdGlvbic6ICd0b2dnbGVQaWNrZXInLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnNlbGVjdFRpbWUgfSkuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudGltZSkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICByb3cucHVzaCgkKCc8dGQ+JykuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyAnZGF0YS1hY3Rpb24nOiAnY2xlYXInLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmNsZWFyIH0pLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLmNsZWFyKSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3dDbG9zZSkge1xuICAgICAgICAgICAgICAgIHJvdy5wdXNoKCQoJzx0ZD4nKS5hcHBlbmQoJCgnPGE+JykuYXR0cih7ICdkYXRhLWFjdGlvbic6ICdjbG9zZScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuY2xvc2UgfSkuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuY2xvc2UpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJykuYXBwZW5kKCQoJzx0Ym9keT4nKS5hcHBlbmQoJCgnPHRyPicpLmFwcGVuZChyb3cpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGdldFRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSAkKCc8ZGl2PicpLmFkZENsYXNzKCdib290c3RyYXAtZGF0ZXRpbWVwaWNrZXItd2lkZ2V0IGRyb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgICAgIHZhciBkYXRlVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2RhdGVwaWNrZXInKS5hcHBlbmQoZ2V0RGF0ZVBpY2tlclRlbXBsYXRlKCkpO1xuICAgICAgICAgICAgdmFyIHRpbWVWaWV3ID0gJCgnPGRpdj4nKS5hZGRDbGFzcygndGltZXBpY2tlcicpLmFwcGVuZChnZXRUaW1lUGlja2VyVGVtcGxhdGUoKSk7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9ICQoJzx1bD4nKS5hZGRDbGFzcygnbGlzdC11bnN0eWxlZCcpO1xuICAgICAgICAgICAgdmFyIHRvb2xiYXIgPSAkKCc8bGk+JykuYWRkQ2xhc3MoJ3BpY2tlci1zd2l0Y2gnICsgKG9wdGlvbnMuY29sbGFwc2UgPyAnIGFjY29yZGlvbi10b2dnbGUnIDogJycpKS5hcHBlbmQoZ2V0VG9vbGJhcigpKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUucmVtb3ZlQ2xhc3MoJ2Ryb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hZGRDbGFzcygndXNldHdlbnR5Zm91cicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdzJykgJiYgIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hZGRDbGFzcygnd2lkZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2lkZUJ5U2lkZSAmJiBoYXNEYXRlKCkgJiYgaGFzVGltZSgpKSB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGUuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItc2JzJyk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuYXBwZW5kKHRvb2xiYXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgICAgICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3JvdycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGRhdGVWaWV3LmFkZENsYXNzKCdjb2wtbWQtNicpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCh0aW1lVmlldy5hZGRDbGFzcygnY29sLW1kLTYnKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFwcGVuZCh0b29sYmFyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy50b29sYmFyUGxhY2VtZW50ID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRvb2xiYXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc0RhdGUoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKCQoJzxsaT4nKS5hZGRDbGFzcygob3B0aW9ucy5jb2xsYXBzZSAmJiBoYXNUaW1lKCkgPyAnY29sbGFwc2UgaW4nIDogJycpKS5hcHBlbmQoZGF0ZVZpZXcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRvb2xiYXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1RpbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKCQoJzxsaT4nKS5hZGRDbGFzcygob3B0aW9ucy5jb2xsYXBzZSAmJiBoYXNEYXRlKCkgPyAnY29sbGFwc2UnIDogJycpKS5hcHBlbmQodGltZVZpZXcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGUuYXBwZW5kKGNvbnRlbnQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBkYXRhVG9PcHRpb25zID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgZURhdGE7XG4gICAgICAgICAgICB2YXIgZGF0YU9wdGlvbnMgPSB7fTtcblxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXMoJ2lucHV0JykgfHwgb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICBlRGF0YSA9IGVsZW1lbnQuZGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlRGF0YSA9IGVsZW1lbnQuZmluZCgnaW5wdXQnKS5kYXRhKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChlRGF0YS5kYXRlT3B0aW9ucyAmJiBlRGF0YS5kYXRlT3B0aW9ucyBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAgICAgICAgIGRhdGFPcHRpb25zID0gJC5leHRlbmQodHJ1ZSwgZGF0YU9wdGlvbnMsIGVEYXRhLmRhdGVPcHRpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gJ2RhdGUnICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgIGlmIChlRGF0YVthdHRyaWJ1dGVOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFPcHRpb25zW2tleV0gPSBlRGF0YVthdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhT3B0aW9ucztcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcGxhY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IChjb21wb25lbnQgfHwgZWxlbWVudCkucG9zaXRpb24oKTtcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAoY29tcG9uZW50IHx8IGVsZW1lbnQpLm9mZnNldCgpO1xuICAgICAgICAgICAgdmFyIHZlcnRpY2FsID0gb3B0aW9ucy53aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbDtcbiAgICAgICAgICAgIHZhciBob3Jpem9udGFsID0gb3B0aW9ucy53aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsO1xuICAgICAgICAgICAgdmFyIHBhcmVudDtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMud2lkZ2V0UGFyZW50KSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gb3B0aW9ucy53aWRnZXRQYXJlbnQuYXBwZW5kKHdpZGdldCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBlbGVtZW50LmFmdGVyKHdpZGdldCkucGFyZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gZWxlbWVudC5hcHBlbmQod2lkZ2V0KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5jaGlsZHJlbigpLmZpcnN0KCkuYWZ0ZXIod2lkZ2V0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVG9wIGFuZCBib3R0b20gbG9naWNcbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCA9PT0gJ2F1dG8nKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldC50b3AgKyB3aWRnZXQuaGVpZ2h0KCkgKiAxLjUgPj0gJCh3aW5kb3cpLmhlaWdodCgpICsgJCh3aW5kb3cpLnNjcm9sbFRvcCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQuaGVpZ2h0KCkgKyBlbGVtZW50Lm91dGVySGVpZ2h0KCkgPCBvZmZzZXQudG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwgPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIExlZnQgYW5kIHJpZ2h0IGxvZ2ljXG4gICAgICAgICAgICBpZiAoaG9yaXpvbnRhbCA9PT0gJ2F1dG8nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudC53aWR0aCgpIDwgb2Zmc2V0LmxlZnQgKyB3aWRnZXQub3V0ZXJXaWR0aCgpIC8gMiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LmxlZnQgKyB3aWRnZXQub3V0ZXJXaWR0aCgpID4gJCh3aW5kb3cpLndpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbCA9ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbCA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuYWRkQ2xhc3MoJ3RvcCcpLnJlbW92ZUNsYXNzKCdib3R0b20nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmFkZENsYXNzKCdib3R0b20nKS5yZW1vdmVDbGFzcygndG9wJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChob3Jpem9udGFsID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmFkZENsYXNzKCdwdWxsLXJpZ2h0Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpZGdldC5yZW1vdmVDbGFzcygncHVsbC1yaWdodCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBmaW5kIHRoZSBmaXJzdCBwYXJlbnQgZWxlbWVudCB0aGF0IGhhcyBhIG5vbi1zdGF0aWMgY3NzIHBvc2l0aW9uaW5nXG4gICAgICAgICAgICBpZiAocGFyZW50LmNzcygncG9zaXRpb24nKSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50cygpLmZpbHRlcihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQodGhpcykuY3NzKCdwb3NpdGlvbicpICE9PSAnc3RhdGljJztcbiAgICAgICAgICAgICAgICB9KS5maXJzdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFyZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZGF0ZXRpbWVwaWNrZXIgY29tcG9uZW50IHNob3VsZCBiZSBwbGFjZWQgd2l0aGluIGEgbm9uLXN0YXRpYyBwb3NpdGlvbmVkIGNvbnRhaW5lcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aWRnZXQuY3NzKHtcbiAgICAgICAgICAgICAgICB0b3A6IHZlcnRpY2FsID09PSAndG9wJyA/ICdhdXRvJyA6IHBvc2l0aW9uLnRvcCArIGVsZW1lbnQub3V0ZXJIZWlnaHQoKSxcbiAgICAgICAgICAgICAgICBib3R0b206IHZlcnRpY2FsID09PSAndG9wJyA/IHBhcmVudC5vdXRlckhlaWdodCgpIC0gKHBhcmVudCA9PT0gZWxlbWVudCA/IDAgOiBwb3NpdGlvbi50b3ApIDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIGxlZnQ6IGhvcml6b250YWwgPT09ICdsZWZ0JyA/IChwYXJlbnQgPT09IGVsZW1lbnQgPyAwIDogcG9zaXRpb24ubGVmdCkgOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IGhvcml6b250YWwgPT09ICdsZWZ0JyA/ICdhdXRvJyA6IHBhcmVudC5vdXRlcldpZHRoKCkgLSBlbGVtZW50Lm91dGVyV2lkdGgoKSAtIChwYXJlbnQgPT09IGVsZW1lbnQgPyAwIDogcG9zaXRpb24ubGVmdClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBub3RpZnlFdmVudCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdkcC5jaGFuZ2UnICYmICgoZS5kYXRlICYmIGUuZGF0ZS5pc1NhbWUoZS5vbGREYXRlKSkgfHwgKCFlLmRhdGUgJiYgIWUub2xkRGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxlbWVudC50cmlnZ2VyKGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciB2aWV3VXBkYXRlID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUgPT09ICd5Jykge1xuICAgICAgICAgICAgICAgIGUgPSAnWVlZWSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2RwLnVwZGF0ZScsXG4gICAgICAgICAgICAgICAgY2hhbmdlOiBlLFxuICAgICAgICAgICAgICAgIHZpZXdEYXRlOiB2aWV3RGF0ZS5jbG9uZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgc2hvd01vZGUgPSBmdW5jdGlvbihkaXIpIHtcbiAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpcikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3TW9kZSA9IE1hdGgubWF4KG1pblZpZXdNb2RlTnVtYmVyLCBNYXRoLm1pbigzLCBjdXJyZW50Vmlld01vZGUgKyBkaXIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlciA+IGRpdicpLmhpZGUoKS5maWx0ZXIoJy5kYXRlcGlja2VyLScgKyBkYXRlUGlja2VyTW9kZXNbY3VycmVudFZpZXdNb2RlXS5jbHNOYW1lKS5zaG93KCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxEb3cgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudERhdGUgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ3cnKS5zdGFydE9mKCdkJyk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNhbGVuZGFyV2Vla3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCQoJzx0aD4nKS5hZGRDbGFzcygnY3cnKS50ZXh0KCcjJykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aGlsZSAoY3VycmVudERhdGUuaXNCZWZvcmUodmlld0RhdGUuY2xvbmUoKS5lbmRPZigndycpKSkge1xuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdkb3cnKS50ZXh0KGN1cnJlbnREYXRlLmZvcm1hdCgnZGQnKSkpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZCgxLCAnZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLWRheXMgdGhlYWQnKS5hcHBlbmQocm93KTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkRpc2FibGVkRGF0ZXMgPSBmdW5jdGlvbih0ZXN0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGlzYWJsZWREYXRlc1t0ZXN0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKV0gPT09IHRydWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGlzSW5FbmFibGVkRGF0ZXMgPSBmdW5jdGlvbih0ZXN0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZW5hYmxlZERhdGVzW3Rlc3REYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkRpc2FibGVkSG91cnMgPSBmdW5jdGlvbih0ZXN0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGlzYWJsZWRIb3Vyc1t0ZXN0RGF0ZS5mb3JtYXQoJ0gnKV0gPT09IHRydWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGlzSW5FbmFibGVkSG91cnMgPSBmdW5jdGlvbih0ZXN0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZW5hYmxlZEhvdXJzW3Rlc3REYXRlLmZvcm1hdCgnSCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNWYWxpZCA9IGZ1bmN0aW9uKHRhcmdldE1vbWVudCwgZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGlmICghdGFyZ2V0TW9tZW50LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVkRGF0ZXMgJiYgZ3JhbnVsYXJpdHkgPT09ICdkJyAmJiBpc0luRGlzYWJsZWREYXRlcyh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlZERhdGVzICYmIGdyYW51bGFyaXR5ID09PSAnZCcgJiYgIWlzSW5FbmFibGVkRGF0ZXModGFyZ2V0TW9tZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1pbkRhdGUgJiYgdGFyZ2V0TW9tZW50LmlzQmVmb3JlKG9wdGlvbnMubWluRGF0ZSwgZ3JhbnVsYXJpdHkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWF4RGF0ZSAmJiB0YXJnZXRNb21lbnQuaXNBZnRlcihvcHRpb25zLm1heERhdGUsIGdyYW51bGFyaXR5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZCAmJiBncmFudWxhcml0eSA9PT0gJ2QnICYmIG9wdGlvbnMuZGF5c09mV2Vla0Rpc2FibGVkLmluZGV4T2YodGFyZ2V0TW9tZW50LmRheSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaXNhYmxlZEhvdXJzICYmIChncmFudWxhcml0eSA9PT0gJ2gnIHx8IGdyYW51bGFyaXR5ID09PSAnbScgfHwgZ3JhbnVsYXJpdHkgPT09ICdzJykgJiYgaXNJbkRpc2FibGVkSG91cnModGFyZ2V0TW9tZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmVuYWJsZWRIb3VycyAmJiAoZ3JhbnVsYXJpdHkgPT09ICdoJyB8fCBncmFudWxhcml0eSA9PT0gJ20nIHx8IGdyYW51bGFyaXR5ID09PSAncycpICYmICFpc0luRW5hYmxlZEhvdXJzKHRhcmdldE1vbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgJiYgKGdyYW51bGFyaXR5ID09PSAnaCcgfHwgZ3JhbnVsYXJpdHkgPT09ICdtJyB8fCBncmFudWxhcml0eSA9PT0gJ3MnKSkge1xuICAgICAgICAgICAgICAgIHZhciBmb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRNb21lbnQuaXNCZXR3ZWVuKHRoaXNbMF0sIHRoaXNbMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBmaWxsTW9udGhzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgc3BhbnMgPSBbXTtcbiAgICAgICAgICAgIHZhciBtb250aHNTaG9ydCA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZigneScpLnN0YXJ0T2YoJ2QnKTtcbiAgICAgICAgICAgIHdoaWxlIChtb250aHNTaG9ydC5pc1NhbWUodmlld0RhdGUsICd5JykpIHtcbiAgICAgICAgICAgICAgICBzcGFucy5wdXNoKCQoJzxzcGFuPicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ3NlbGVjdE1vbnRoJykuYWRkQ2xhc3MoJ21vbnRoJykudGV4dChtb250aHNTaG9ydC5mb3JtYXQoJ01NTScpKSk7XG4gICAgICAgICAgICAgICAgbW9udGhzU2hvcnQuYWRkKDEsICdNJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItbW9udGhzIHRkJykuZW1wdHkoKS5hcHBlbmQoc3BhbnMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciB1cGRhdGVNb250aHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBtb250aHNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLW1vbnRocycpO1xuICAgICAgICAgICAgdmFyIG1vbnRoc1ZpZXdIZWFkZXIgPSBtb250aHNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgbW9udGhzID0gbW9udGhzVmlldy5maW5kKCd0Ym9keScpLmZpbmQoJ3NwYW4nKTtcblxuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgwKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnByZXZZZWFyKTtcbiAgICAgICAgICAgIG1vbnRoc1ZpZXdIZWFkZXIuZXEoMSkuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnNlbGVjdFllYXIpO1xuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgyKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLm5leHRZZWFyKTtcblxuICAgICAgICAgICAgbW9udGhzVmlldy5maW5kKCcuZGlzYWJsZWQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHZpZXdEYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ3knKSwgJ3knKSkge1xuICAgICAgICAgICAgICAgIG1vbnRoc1ZpZXdIZWFkZXIuZXEoMCkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vbnRoc1ZpZXdIZWFkZXIuZXEoMSkudGV4dCh2aWV3RGF0ZS55ZWFyKCkpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodmlld0RhdGUuY2xvbmUoKS5hZGQoMSwgJ3knKSwgJ3knKSkge1xuICAgICAgICAgICAgICAgIG1vbnRoc1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vbnRocy5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICBpZiAoZGF0ZS5pc1NhbWUodmlld0RhdGUsICd5JykgJiYgIXVuc2V0KSB7XG4gICAgICAgICAgICAgICAgbW9udGhzLmVxKGRhdGUubW9udGgoKSkuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb250aHMuZWFjaChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLm1vbnRoKGluZGV4KSwgJ00nKSkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciB1cGRhdGVZZWFycyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHllYXJzVmlldyA9IHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlci15ZWFycycpO1xuICAgICAgICAgICAgdmFyIHllYXJzVmlld0hlYWRlciA9IHllYXJzVmlldy5maW5kKCd0aCcpO1xuICAgICAgICAgICAgdmFyIHN0YXJ0WWVhciA9IHZpZXdEYXRlLmNsb25lKCkuc3VidHJhY3QoNSwgJ3knKTtcbiAgICAgICAgICAgIHZhciBlbmRZZWFyID0gdmlld0RhdGUuY2xvbmUoKS5hZGQoNiwgJ3knKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gJyc7XG5cbiAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgwKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnByZXZEZWNhZGUpO1xuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDEpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5zZWxlY3REZWNhZGUpO1xuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDIpLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMubmV4dERlY2FkZSk7XG5cbiAgICAgICAgICAgIHllYXJzVmlldy5maW5kKCcuZGlzYWJsZWQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWluRGF0ZSAmJiBvcHRpb25zLm1pbkRhdGUuaXNBZnRlcihzdGFydFllYXIsICd5JykpIHtcbiAgICAgICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMCkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgxKS50ZXh0KHN0YXJ0WWVhci55ZWFyKCkgKyAnLScgKyBlbmRZZWFyLnllYXIoKSk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1heERhdGUgJiYgb3B0aW9ucy5tYXhEYXRlLmlzQmVmb3JlKGVuZFllYXIsICd5JykpIHtcbiAgICAgICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlICghc3RhcnRZZWFyLmlzQWZ0ZXIoZW5kWWVhciwgJ3knKSkge1xuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIGRhdGEtYWN0aW9uPVwic2VsZWN0WWVhclwiIGNsYXNzPVwieWVhcicgKyAoc3RhcnRZZWFyLmlzU2FtZShkYXRlLCAneScpICYmICF1bnNldCA/ICcgYWN0aXZlJyA6ICcnKSArICghaXNWYWxpZChzdGFydFllYXIsICd5JykgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIj4nICsgc3RhcnRZZWFyLnllYXIoKSArICc8L3NwYW4+JztcbiAgICAgICAgICAgICAgICBzdGFydFllYXIuYWRkKDEsICd5Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHllYXJzVmlldy5maW5kKCd0ZCcpLmh0bWwoaHRtbCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHVwZGF0ZURlY2FkZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBkZWNhZGVzVmlldyA9IHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlci1kZWNhZGVzJyk7XG4gICAgICAgICAgICB2YXIgZGVjYWRlc1ZpZXdIZWFkZXIgPSBkZWNhZGVzVmlldy5maW5kKCd0aCcpO1xuICAgICAgICAgICAgdmFyIHN0YXJ0RGVjYWRlID0gbW9tZW50KHsgeTogdmlld0RhdGUueWVhcigpIC0gKHZpZXdEYXRlLnllYXIoKSAlIDEwMCkgLSAxIH0pO1xuICAgICAgICAgICAgdmFyIGVuZERlY2FkZSA9IHN0YXJ0RGVjYWRlLmNsb25lKCkuYWRkKDEwMCwgJ3knKTtcbiAgICAgICAgICAgIHZhciBzdGFydGVkQXQgPSBzdGFydERlY2FkZS5jbG9uZSgpO1xuICAgICAgICAgICAgdmFyIG1pbkRhdGVEZWNhZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBtYXhEYXRlRGVjYWRlID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgZW5kRGVjYWRlWWVhcjtcbiAgICAgICAgICAgIHZhciBodG1sID0gJyc7XG5cbiAgICAgICAgICAgIGRlY2FkZXNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldkNlbnR1cnkpO1xuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMikuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5uZXh0Q2VudHVyeSk7XG5cbiAgICAgICAgICAgIGRlY2FkZXNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICBpZiAoc3RhcnREZWNhZGUuaXNTYW1lKG1vbWVudCh7IHk6IDE5MDAgfSkpIHx8IChvcHRpb25zLm1pbkRhdGUgJiYgb3B0aW9ucy5taW5EYXRlLmlzQWZ0ZXIoc3RhcnREZWNhZGUsICd5JykpKSB7XG4gICAgICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMCkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlY2FkZXNWaWV3SGVhZGVyLmVxKDEpLnRleHQoc3RhcnREZWNhZGUueWVhcigpICsgJy0nICsgZW5kRGVjYWRlLnllYXIoKSk7XG5cbiAgICAgICAgICAgIGlmIChzdGFydERlY2FkZS5pc1NhbWUobW9tZW50KHsgeTogMjAwMCB9KSkgfHwgKG9wdGlvbnMubWF4RGF0ZSAmJiBvcHRpb25zLm1heERhdGUuaXNCZWZvcmUoZW5kRGVjYWRlLCAneScpKSkge1xuICAgICAgICAgICAgICAgIGRlY2FkZXNWaWV3SGVhZGVyLmVxKDIpLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aGlsZSAoIXN0YXJ0RGVjYWRlLmlzQWZ0ZXIoZW5kRGVjYWRlLCAneScpKSB7XG4gICAgICAgICAgICAgICAgZW5kRGVjYWRlWWVhciA9IHN0YXJ0RGVjYWRlLnllYXIoKSArIDEyO1xuICAgICAgICAgICAgICAgIG1pbkRhdGVEZWNhZGUgPSBvcHRpb25zLm1pbkRhdGUgJiYgb3B0aW9ucy5taW5EYXRlLmlzQWZ0ZXIoc3RhcnREZWNhZGUsICd5JykgJiYgb3B0aW9ucy5taW5EYXRlLnllYXIoKSA8PSBlbmREZWNhZGVZZWFyO1xuICAgICAgICAgICAgICAgIG1heERhdGVEZWNhZGUgPSBvcHRpb25zLm1heERhdGUgJiYgb3B0aW9ucy5tYXhEYXRlLmlzQWZ0ZXIoc3RhcnREZWNhZGUsICd5JykgJiYgb3B0aW9ucy5tYXhEYXRlLnllYXIoKSA8PSBlbmREZWNhZGVZZWFyO1xuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIGRhdGEtYWN0aW9uPVwic2VsZWN0RGVjYWRlXCIgY2xhc3M9XCJkZWNhZGUnICsgKGRhdGUuaXNBZnRlcihzdGFydERlY2FkZSkgJiYgZGF0ZS55ZWFyKCkgPD0gZW5kRGVjYWRlWWVhciA/ICcgYWN0aXZlJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAoIWlzVmFsaWQoc3RhcnREZWNhZGUsICd5JykgJiYgIW1pbkRhdGVEZWNhZGUgJiYgIW1heERhdGVEZWNhZGUgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIiBkYXRhLXNlbGVjdGlvbj1cIicgKyAoc3RhcnREZWNhZGUueWVhcigpICsgNikgKyAnXCI+JyArIChzdGFydERlY2FkZS55ZWFyKCkgKyAxKSArICcgLSAnICsgKHN0YXJ0RGVjYWRlLnllYXIoKSArIDEyKSArICc8L3NwYW4+JztcbiAgICAgICAgICAgICAgICBzdGFydERlY2FkZS5hZGQoMTIsICd5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBodG1sICs9ICc8c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj4nOyAvLyBwdXNoIHRoZSBkYW5nbGluZyBibG9jayBvdmVyLCBhdCBsZWFzdCB0aGlzIHdheSBpdCdzIGV2ZW5cblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXcuZmluZCgndGQnKS5odG1sKGh0bWwpO1xuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMSkudGV4dCgoc3RhcnRlZEF0LnllYXIoKSArIDEpICsgJy0nICsgKHN0YXJ0RGVjYWRlLnllYXIoKSkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBmaWxsRGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGRheXNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLWRheXMnKTtcbiAgICAgICAgICAgIHZhciBkYXlzVmlld0hlYWRlciA9IGRheXNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudERhdGU7XG4gICAgICAgICAgICB2YXIgaHRtbCA9IFtdO1xuICAgICAgICAgICAgdmFyIHJvdztcbiAgICAgICAgICAgIHZhciBjbHNOYW1lcyA9IFtdO1xuICAgICAgICAgICAgdmFyIGk7XG5cbiAgICAgICAgICAgIGlmICghaGFzRGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgwKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnByZXZNb250aCk7XG4gICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgxKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMuc2VsZWN0TW9udGgpO1xuICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMikuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5uZXh0TW9udGgpO1xuXG4gICAgICAgICAgICBkYXlzVmlldy5maW5kKCcuZGlzYWJsZWQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDEpLnRleHQodmlld0RhdGUuZm9ybWF0KG9wdGlvbnMuZGF5Vmlld0hlYWRlckZvcm1hdCkpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodmlld0RhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnTScpLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMCkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodmlld0RhdGUuY2xvbmUoKS5hZGQoMSwgJ00nKSwgJ00nKSkge1xuICAgICAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDIpLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJyZW50RGF0ZSA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZignTScpLnN0YXJ0T2YoJ3cnKS5zdGFydE9mKCdkJyk7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0MjsgaSsrKSB7IC8vIGFsd2F5cyBkaXNwbGF5IDQyIGRheXMgKHNob3VsZCBzaG93IDYgd2Vla3MpXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLndlZWtkYXkoKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNhbGVuZGFyV2Vla3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJzx0ZCBjbGFzcz1cImN3XCI+JyArIGN1cnJlbnREYXRlLndlZWsoKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChyb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbHNOYW1lcyA9IFsnZGF5J107XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmlzQmVmb3JlKHZpZXdEYXRlLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ29sZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNBZnRlcih2aWV3RGF0ZSwgJ00nKSkge1xuICAgICAgICAgICAgICAgICAgICBjbHNOYW1lcy5wdXNoKCduZXcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmlzU2FtZShkYXRlLCAnZCcpICYmICF1bnNldCkge1xuICAgICAgICAgICAgICAgICAgICBjbHNOYW1lcy5wdXNoKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKGN1cnJlbnREYXRlLCAnZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RGF0ZS5pc1NhbWUoZ2V0TW9tZW50KCksICdkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgndG9kYXknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmRheSgpID09PSAwIHx8IGN1cnJlbnREYXRlLmRheSgpID09PSA2KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ3dlZWtlbmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZHAuY2xhc3NpZnknLFxuICAgICAgICAgICAgICAgICAgICBkYXRlOiBjdXJyZW50RGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lczogY2xzTmFtZXNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCc8dGQgZGF0YS1hY3Rpb249XCJzZWxlY3REYXlcIiBkYXRhLWRheT1cIicgKyBjdXJyZW50RGF0ZS5mb3JtYXQoJ0wnKSArICdcIiBjbGFzcz1cIicgKyBjbHNOYW1lcy5qb2luKCcgJykgKyAnXCI+JyArIGN1cnJlbnREYXRlLmRhdGUoKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZCgxLCAnZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXlzVmlldy5maW5kKCd0Ym9keScpLmVtcHR5KCkuYXBwZW5kKGh0bWwpO1xuXG4gICAgICAgICAgICB1cGRhdGVNb250aHMoKTtcblxuICAgICAgICAgICAgdXBkYXRlWWVhcnMoKTtcblxuICAgICAgICAgICAgdXBkYXRlRGVjYWRlcygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBmaWxsSG91cnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0YWJsZSA9IHdpZGdldC5maW5kKCcudGltZXBpY2tlci1ob3VycyB0YWJsZScpO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRIb3VyID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCdkJyk7XG4gICAgICAgICAgICB2YXIgaHRtbCA9IFtdO1xuICAgICAgICAgICAgdmFyIHJvdyA9ICQoJzx0cj4nKTtcblxuICAgICAgICAgICAgaWYgKHZpZXdEYXRlLmhvdXIoKSA+IDExICYmICF1c2UyNEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEhvdXIuaG91cigxMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoY3VycmVudEhvdXIuaXNTYW1lKHZpZXdEYXRlLCAnZCcpICYmICh1c2UyNEhvdXJzIHx8ICh2aWV3RGF0ZS5ob3VyKCkgPCAxMiAmJiBjdXJyZW50SG91ci5ob3VyKCkgPCAxMikgfHwgdmlld0RhdGUuaG91cigpID4gMTEpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRIb3VyLmhvdXIoKSAlIDQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgICAgICAgICBodG1sLnB1c2gocm93KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGRhdGEtYWN0aW9uPVwic2VsZWN0SG91clwiIGNsYXNzPVwiaG91cicgKyAoIWlzVmFsaWQoY3VycmVudEhvdXIsICdoJykgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIj4nICsgY3VycmVudEhvdXIuZm9ybWF0KHVzZTI0SG91cnMgPyAnSEgnIDogJ2hoJykgKyAnPC90ZD4nKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50SG91ci5hZGQoMSwgJ2gnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhYmxlLmVtcHR5KCkuYXBwZW5kKGh0bWwpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBmaWxsTWludXRlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRhYmxlID0gd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyLW1pbnV0ZXMgdGFibGUnKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50TWludXRlID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCdoJyk7XG4gICAgICAgICAgICB2YXIgaHRtbCA9IFtdO1xuICAgICAgICAgICAgdmFyIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgIHZhciBzdGVwID0gb3B0aW9ucy5zdGVwcGluZyA9PT0gMSA/IDUgOiBvcHRpb25zLnN0ZXBwaW5nO1xuXG4gICAgICAgICAgICB3aGlsZSAodmlld0RhdGUuaXNTYW1lKGN1cnJlbnRNaW51dGUsICdoJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudE1pbnV0ZS5taW51dGUoKSAlIChzdGVwICogNCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgICAgICAgICBodG1sLnB1c2gocm93KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGRhdGEtYWN0aW9uPVwic2VsZWN0TWludXRlXCIgY2xhc3M9XCJtaW51dGUnICsgKCFpc1ZhbGlkKGN1cnJlbnRNaW51dGUsICdtJykgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIj4nICsgY3VycmVudE1pbnV0ZS5mb3JtYXQoJ21tJykgKyAnPC90ZD4nKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50TWludXRlLmFkZChzdGVwLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFibGUuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxTZWNvbmRzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGFibGUgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItc2Vjb25kcyB0YWJsZScpO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRTZWNvbmQgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ20nKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93ID0gJCgnPHRyPicpO1xuXG4gICAgICAgICAgICB3aGlsZSAodmlld0RhdGUuaXNTYW1lKGN1cnJlbnRTZWNvbmQsICdtJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNlY29uZC5zZWNvbmQoKSAlIDIwID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wdXNoKHJvdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJzx0ZCBkYXRhLWFjdGlvbj1cInNlbGVjdFNlY29uZFwiIGNsYXNzPVwic2Vjb25kJyArICghaXNWYWxpZChjdXJyZW50U2Vjb25kLCAncycpID8gJyBkaXNhYmxlZCcgOiAnJykgKyAnXCI+JyArIGN1cnJlbnRTZWNvbmQuZm9ybWF0KCdzcycpICsgJzwvdGQ+Jyk7XG4gICAgICAgICAgICAgICAgY3VycmVudFNlY29uZC5hZGQoNSwgJ3MnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFibGUuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxUaW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdG9nZ2xlOyB2YXIgbmV3RGF0ZTsgdmFyIHRpbWVDb21wb25lbnRzID0gd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIHNwYW5bZGF0YS10aW1lLWNvbXBvbmVudF0nKTtcblxuICAgICAgICAgICAgaWYgKCF1c2UyNEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlID0gd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIFtkYXRhLWFjdGlvbj10b2dnbGVQZXJpb2RdJyk7XG4gICAgICAgICAgICAgICAgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5hZGQoKGRhdGUuaG91cnMoKSA+PSAxMikgPyAtMTIgOiAxMiwgJ2gnKTtcblxuICAgICAgICAgICAgICAgIHRvZ2dsZS50ZXh0KGRhdGUuZm9ybWF0KCdBJykpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGUucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRpbWVDb21wb25lbnRzLmZpbHRlcignW2RhdGEtdGltZS1jb21wb25lbnQ9aG91cnNdJykudGV4dChkYXRlLmZvcm1hdCh1c2UyNEhvdXJzID8gJ0hIJyA6ICdoaCcpKTtcbiAgICAgICAgICAgIHRpbWVDb21wb25lbnRzLmZpbHRlcignW2RhdGEtdGltZS1jb21wb25lbnQ9bWludXRlc10nKS50ZXh0KGRhdGUuZm9ybWF0KCdtbScpKTtcbiAgICAgICAgICAgIHRpbWVDb21wb25lbnRzLmZpbHRlcignW2RhdGEtdGltZS1jb21wb25lbnQ9c2Vjb25kc10nKS50ZXh0KGRhdGUuZm9ybWF0KCdzcycpKTtcblxuICAgICAgICAgICAgZmlsbEhvdXJzKCk7XG4gICAgICAgICAgICBmaWxsTWludXRlcygpO1xuICAgICAgICAgICAgZmlsbFNlY29uZHMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdXBkYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICBmaWxsVGltZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBzZXRWYWx1ZSA9IGZ1bmN0aW9uKHRhcmdldE1vbWVudCkge1xuICAgICAgICAgICAgdmFyIG9sZERhdGUgPSB1bnNldCA/IG51bGwgOiBkYXRlO1xuXG4gICAgICAgICAgICAvLyBjYXNlIG9mIGNhbGxpbmcgc2V0VmFsdWUobnVsbCBvciBmYWxzZSlcbiAgICAgICAgICAgIGlmICghdGFyZ2V0TW9tZW50KSB7XG4gICAgICAgICAgICAgICAgdW5zZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlucHV0LnZhbCgnJyk7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5kYXRhKCdkYXRlJywgJycpO1xuICAgICAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RwLmNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgIGRhdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvbGREYXRlOiBvbGREYXRlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXJnZXRNb21lbnQgPSB0YXJnZXRNb21lbnQuY2xvbmUoKS5sb2NhbGUob3B0aW9ucy5sb2NhbGUpO1xuXG4gICAgICAgICAgICBpZiAoaGFzVGltZVpvbmUoKSkge1xuICAgICAgICAgICAgICAgIHRhcmdldE1vbWVudC50eihvcHRpb25zLnRpbWVab25lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc3RlcHBpbmcgIT09IDEpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRNb21lbnQubWludXRlcygoTWF0aC5yb3VuZCh0YXJnZXRNb21lbnQubWludXRlcygpIC8gb3B0aW9ucy5zdGVwcGluZykgKiBvcHRpb25zLnN0ZXBwaW5nKSkuc2Vjb25kcygwKTtcblxuICAgICAgICAgICAgICAgIHdoaWxlIChvcHRpb25zLm1pbkRhdGUgJiYgdGFyZ2V0TW9tZW50LmlzQmVmb3JlKG9wdGlvbnMubWluRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TW9tZW50LmFkZChvcHRpb25zLnN0ZXBwaW5nLCAnbWludXRlcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQodGFyZ2V0TW9tZW50KSkge1xuICAgICAgICAgICAgICAgIGRhdGUgPSB0YXJnZXRNb21lbnQ7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUgPSBkYXRlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgaW5wdXQudmFsKGRhdGUuZm9ybWF0KGFjdHVhbEZvcm1hdCkpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuZGF0YSgnZGF0ZScsIGRhdGUuZm9ybWF0KGFjdHVhbEZvcm1hdCkpO1xuICAgICAgICAgICAgICAgIHVuc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZHAuY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZTogZGF0ZS5jbG9uZSgpLFxuICAgICAgICAgICAgICAgICAgICBvbGREYXRlOiBvbGREYXRlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5rZWVwSW52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC52YWwodW5zZXQgPyAnJyA6IGRhdGUuZm9ybWF0KGFjdHVhbEZvcm1hdCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5jaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogdGFyZ2V0TW9tZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkRGF0ZTogb2xkRGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZHAuZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICBkYXRlOiB0YXJnZXRNb21lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9sZERhdGU6IG9sZERhdGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEhpZGVzIHRoZSB3aWRnZXQuIFBvc3NpYmx5IHdpbGwgZW1pdCBkcC5oaWRlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgdmFyIGhpZGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0cmFuc2l0aW9uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgZXZlbnQgaWYgaW4gdGhlIG1pZGRsZSBvZiBhIHBpY2tlciB0cmFuc2l0aW9uXG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLmNvbGxhcHNlJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29sbGFwc2VEYXRhID0gJCh0aGlzKS5kYXRhKCdjb2xsYXBzZScpO1xuICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZURhdGEgJiYgY29sbGFwc2VEYXRhLnRyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbmluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50Lmhhc0NsYXNzKCdidG4nKSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50b2dnbGVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aWRnZXQuaGlkZSgpO1xuXG4gICAgICAgICAgICAkKHdpbmRvdykub2ZmKCdyZXNpemUnLCBwbGFjZSk7XG4gICAgICAgICAgICB3aWRnZXQub2ZmKCdjbGljaycsICdbZGF0YS1hY3Rpb25dJyk7XG4gICAgICAgICAgICB3aWRnZXQub2ZmKCdtb3VzZWRvd24nLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIHdpZGdldC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHdpZGdldCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2RwLmhpZGUnLFxuICAgICAgICAgICAgICAgIGRhdGU6IGRhdGUuY2xvbmUoKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlucHV0LmJsdXIoKTtcblxuICAgICAgICAgICAgdmlld0RhdGUgPSBkYXRlLmNsb25lKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcGFyc2VJbnB1dERhdGUgPSBmdW5jdGlvbihpbnB1dERhdGUpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhcnNlSW5wdXREYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1vbWVudC5pc01vbWVudChpbnB1dERhdGUpIHx8IGlucHV0RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXREYXRlID0gZ2V0TW9tZW50KGlucHV0RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dERhdGUgPSBvcHRpb25zLnBhcnNlSW5wdXREYXRlKGlucHV0RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbnB1dERhdGUubG9jYWxlKG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dERhdGU7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFdpZGdldCBVSSBpbnRlcmFjdGlvbiBmdW5jdGlvbnNcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIHZhciBhY3Rpb25zID0ge1xuICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5hdkZuYyA9IGRhdGVQaWNrZXJNb2Rlc1tjdXJyZW50Vmlld01vZGVdLm5hdkZuYztcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS5hZGQoZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2U3RlcCwgbmF2Rm5jKTtcbiAgICAgICAgICAgICAgICBmaWxsRGF0ZSgpO1xuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUobmF2Rm5jKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHByZXZpb3VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmF2Rm5jID0gZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2Rm5jO1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlLnN1YnRyYWN0KGRhdGVQaWNrZXJNb2Rlc1tjdXJyZW50Vmlld01vZGVdLm5hdlN0ZXAsIG5hdkZuYyk7XG4gICAgICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgICAgICB2aWV3VXBkYXRlKG5hdkZuYyk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwaWNrZXJTd2l0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNob3dNb2RlKDEpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0TW9udGg6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbW9udGggPSAkKGUudGFyZ2V0KS5jbG9zZXN0KCd0Ym9keScpLmZpbmQoJ3NwYW4nKS5pbmRleCgkKGUudGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUubW9udGgobW9udGgpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Vmlld01vZGUgPT09IG1pblZpZXdNb2RlTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS55ZWFyKHZpZXdEYXRlLnllYXIoKSkubW9udGgodmlld0RhdGUubW9udGgoKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaG93TW9kZSgtMSk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUoJ00nKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdFllYXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgeWVhciA9IHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApIHx8IDA7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUueWVhcih5ZWFyKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZpZXdNb2RlID09PSBtaW5WaWV3TW9kZU51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkueWVhcih2aWV3RGF0ZS55ZWFyKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd01vZGUoLTEpO1xuICAgICAgICAgICAgICAgICAgICBmaWxsRGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2aWV3VXBkYXRlKCdZWVlZJyk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZWxlY3REZWNhZGU6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgeWVhciA9IHBhcnNlSW50KCQoZS50YXJnZXQpLmRhdGEoJ3NlbGVjdGlvbicpLCAxMCkgfHwgMDtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS55ZWFyKHllYXIpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Vmlld01vZGUgPT09IG1pblZpZXdNb2RlTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS55ZWFyKHZpZXdEYXRlLnllYXIoKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaG93TW9kZSgtMSk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUoJ1lZWVknKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdERheTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciBkYXkgPSB2aWV3RGF0ZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcygnLm9sZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRheS5zdWJ0cmFjdCgxLCAnTScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoJChlLnRhcmdldCkuaXMoJy5uZXcnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXkuYWRkKDEsICdNJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRheS5kYXRlKHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApKSk7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNUaW1lKCkgJiYgIW9wdGlvbnMua2VlcE9wZW4gJiYgIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpbmNyZW1lbnRIb3VyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuYWRkKDEsICdoJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpbmNyZW1lbnRNaW51dGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5hZGQob3B0aW9ucy5zdGVwcGluZywgJ20nKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnbScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGluY3JlbWVudFNlY29uZHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLmFkZCgxLCAncycpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZGVjcmVtZW50SG91cnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdoJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkZWNyZW1lbnRNaW51dGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5zdWJ0cmFjdChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZGVjcmVtZW50U2Vjb25kczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ3MnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAncycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRvZ2dsZVBlcmlvZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZS5jbG9uZSgpLmFkZCgoZGF0ZS5ob3VycygpID49IDEyKSA/IC0xMiA6IDEyLCAnaCcpKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRvZ2dsZVBpY2tlcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciAkdGhpcyA9ICQoZS50YXJnZXQpO1xuICAgICAgICAgICAgICAgIHZhciAkcGFyZW50ID0gJHRoaXMuY2xvc2VzdCgndWwnKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhwYW5kZWQgPSAkcGFyZW50LmZpbmQoJy5pbicpO1xuICAgICAgICAgICAgICAgIHZhciBjbG9zZWQgPSAkcGFyZW50LmZpbmQoJy5jb2xsYXBzZTpub3QoLmluKScpO1xuICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZURhdGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQgJiYgZXhwYW5kZWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlRGF0YSA9IGV4cGFuZGVkLmRhdGEoJ2NvbGxhcHNlJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZURhdGEgJiYgY29sbGFwc2VEYXRhLnRyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWQuY29sbGFwc2UpIHsgLy8gaWYgY29sbGFwc2UgcGx1Z2luIGlzIGF2YWlsYWJsZSB0aHJvdWdoIGJvb3RzdHJhcC5qcyB0aGVuIHVzZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQuY29sbGFwc2UoJ2hpZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlZC5jb2xsYXBzZSgnc2hvdycpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UganVzdCB0b2dnbGUgaW4gY2xhc3Mgb24gdGhlIHR3byB2aWV3c1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQucmVtb3ZlQ2xhc3MoJ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZWQuYWRkQ2xhc3MoJ2luJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmlzKCdzcGFuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnRvZ2dsZUNsYXNzKG9wdGlvbnMuaWNvbnMudGltZSArICcgJyArIG9wdGlvbnMuaWNvbnMuZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5maW5kKCdzcGFuJykudG9nZ2xlQ2xhc3Mob3B0aW9ucy5pY29ucy50aW1lICsgJyAnICsgb3B0aW9ucy5pY29ucy5kYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IHVuY29tbWVudCBpZiB0b2dnbGVkIHN0YXRlIHdpbGwgYmUgcmVzdG9yZWQgaW4gc2hvdygpXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgY29tcG9uZW50LmZpbmQoJ3NwYW4nKS50b2dnbGVDbGFzcyhvcHRpb25zLmljb25zLnRpbWUgKyAnICcgKyBvcHRpb25zLmljb25zLmRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2hvd1BpY2tlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyID4gZGl2Om5vdCgudGltZXBpY2tlci1waWNrZXIpJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlciAudGltZXBpY2tlci1waWNrZXInKS5zaG93KCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93SG91cnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlciAudGltZXBpY2tlci1waWNrZXInKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLWhvdXJzJykuc2hvdygpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2hvd01pbnV0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlciAudGltZXBpY2tlci1waWNrZXInKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLW1pbnV0ZXMnKS5zaG93KCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93U2Vjb25kczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItc2Vjb25kcycpLnNob3coKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdEhvdXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgaG91ciA9IHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF1c2UyNEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlLmhvdXJzKCkgPj0gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChob3VyICE9PSAxMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkuaG91cnMoaG91cikpO1xuICAgICAgICAgICAgICAgIGFjdGlvbnMuc2hvd1BpY2tlci5jYWxsKHBpY2tlcik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZWxlY3RNaW51dGU6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkubWludXRlcyhwYXJzZUludCgkKGUudGFyZ2V0KS50ZXh0KCksIDEwKSkpO1xuICAgICAgICAgICAgICAgIGFjdGlvbnMuc2hvd1BpY2tlci5jYWxsKHBpY2tlcik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZWxlY3RTZWNvbmQ6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkuc2Vjb25kcyhwYXJzZUludCgkKGUudGFyZ2V0KS50ZXh0KCksIDEwKSkpO1xuICAgICAgICAgICAgICAgIGFjdGlvbnMuc2hvd1BpY2tlci5jYWxsKHBpY2tlcik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbGVhcjogY2xlYXIsXG5cbiAgICAgICAgICAgIHRvZGF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdG9kYXlzRGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKHRvZGF5c0RhdGUsICdkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodG9kYXlzRGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgY2xvc2U6IGhpZGVcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZG9BY3Rpb24gPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoJChlLmN1cnJlbnRUYXJnZXQpLmlzKCcuZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGlvbnNbJChlLmN1cnJlbnRUYXJnZXQpLmRhdGEoJ2FjdGlvbicpXS5hcHBseShwaWNrZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTaG93cyB0aGUgd2lkZ2V0LiBQb3NzaWJseSB3aWxsIGVtaXQgZHAuc2hvdyBhbmQgZHAuY2hhbmdlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgdmFyIHNob3cgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50TW9tZW50O1xuICAgICAgICAgICAgdmFyIHVzZUN1cnJlbnRHcmFudWxhcml0eSA9IHtcbiAgICAgICAgICAgICAgICAneWVhcic6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0ubW9udGgoMCkuZGF0ZSgxKS5ob3VycygwKS5zZWNvbmRzKDApLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnbW9udGgnOiBmdW5jdGlvbihtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtLmRhdGUoMSkuaG91cnMoMCkuc2Vjb25kcygwKS5taW51dGVzKDApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2RheSc6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uaG91cnMoMCkuc2Vjb25kcygwKS5taW51dGVzKDApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2hvdXInOiBmdW5jdGlvbihtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtLnNlY29uZHMoMCkubWludXRlcygwKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdtaW51dGUnOiBmdW5jdGlvbihtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtLnNlY29uZHMoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGlucHV0LnByb3AoJ2Rpc2FibGVkJykgfHwgKCFvcHRpb25zLmlnbm9yZVJlYWRvbmx5ICYmIGlucHV0LnByb3AoJ3JlYWRvbmx5JykpIHx8IHdpZGdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5wdXQudmFsKCkgIT09IHVuZGVmaW5lZCAmJiBpbnB1dC52YWwoKS50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUocGFyc2VJbnB1dERhdGUoaW5wdXQudmFsKCkudHJpbSgpKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHVuc2V0ICYmIG9wdGlvbnMudXNlQ3VycmVudCAmJiAob3B0aW9ucy5pbmxpbmUgfHwgKGlucHV0LmlzKCdpbnB1dCcpICYmIGlucHV0LnZhbCgpLnRyaW0oKS5sZW5ndGggPT09IDApKSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRNb21lbnQgPSBnZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudXNlQ3VycmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vbWVudCA9IHVzZUN1cnJlbnRHcmFudWxhcml0eVtvcHRpb25zLnVzZUN1cnJlbnRdKGN1cnJlbnRNb21lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShjdXJyZW50TW9tZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldCA9IGdldFRlbXBsYXRlKCk7XG5cbiAgICAgICAgICAgIGZpbGxEb3coKTtcbiAgICAgICAgICAgIGZpbGxNb250aHMoKTtcblxuICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyLWhvdXJzJykuaGlkZSgpO1xuICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyLW1pbnV0ZXMnKS5oaWRlKCk7XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItc2Vjb25kcycpLmhpZGUoKTtcblxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICBzaG93TW9kZSgpO1xuXG4gICAgICAgICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZScsIHBsYWNlKTtcbiAgICAgICAgICAgIHdpZGdldC5vbignY2xpY2snLCAnW2RhdGEtYWN0aW9uXScsIGRvQWN0aW9uKTsgLy8gdGhpcyBoYW5kbGVzIGNsaWNrcyBvbiB0aGUgd2lkZ2V0XG4gICAgICAgICAgICB3aWRnZXQub24oJ21vdXNlZG93bicsIGZhbHNlKTtcblxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuaGFzQ2xhc3MoJ2J0bicpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlKCk7XG4gICAgICAgICAgICB3aWRnZXQuc2hvdygpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9jdXNPblNob3cgJiYgIWlucHV0LmlzKCc6Zm9jdXMnKSkge1xuICAgICAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZHAuc2hvdydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNob3dzIG9yIGhpZGVzIHRoZSB3aWRnZXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICB2YXIgdG9nZ2xlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gKHdpZGdldCA/IGhpZGUoKSA6IHNob3coKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGtleWRvd24gPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICB2YXIgaGFuZGxlciA9IG51bGw7XG4gICAgICAgICAgICB2YXIgaW5kZXg7XG4gICAgICAgICAgICB2YXIgaW5kZXgyO1xuICAgICAgICAgICAgdmFyIHByZXNzZWRLZXlzID0gW107XG4gICAgICAgICAgICB2YXIgcHJlc3NlZE1vZGlmaWVycyA9IHt9O1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBlLndoaWNoO1xuICAgICAgICAgICAgdmFyIGtleUJpbmRLZXlzO1xuICAgICAgICAgICAgdmFyIGFsbE1vZGlmaWVyc1ByZXNzZWQ7XG4gICAgICAgICAgICB2YXIgcHJlc3NlZCA9ICdwJztcblxuICAgICAgICAgICAga2V5U3RhdGVbY3VycmVudEtleV0gPSBwcmVzc2VkO1xuXG4gICAgICAgICAgICBmb3IgKGluZGV4IGluIGtleVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleVN0YXRlLmhhc093blByb3BlcnR5KGluZGV4KSAmJiBrZXlTdGF0ZVtpbmRleF0gPT09IHByZXNzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJlc3NlZEtleXMucHVzaChpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludChpbmRleCwgMTApICE9PSBjdXJyZW50S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVzc2VkTW9kaWZpZXJzW2luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoaW5kZXggaW4gb3B0aW9ucy5rZXlCaW5kcykge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtleUJpbmRzLmhhc093blByb3BlcnR5KGluZGV4KSAmJiB0eXBlb2YgKG9wdGlvbnMua2V5QmluZHNbaW5kZXhdKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBrZXlCaW5kS2V5cyA9IGluZGV4LnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXlCaW5kS2V5cy5sZW5ndGggPT09IHByZXNzZWRLZXlzLmxlbmd0aCAmJiBrZXlNYXBbY3VycmVudEtleV0gPT09IGtleUJpbmRLZXlzW2tleUJpbmRLZXlzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxNb2RpZmllcnNQcmVzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgyID0ga2V5QmluZEtleXMubGVuZ3RoIC0gMjsgaW5kZXgyID49IDA7IGluZGV4Mi0tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoa2V5TWFwW2tleUJpbmRLZXlzW2luZGV4Ml1dIGluIHByZXNzZWRNb2RpZmllcnMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbE1vZGlmaWVyc1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbE1vZGlmaWVyc1ByZXNzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyID0gb3B0aW9ucy5rZXlCaW5kc1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlci5jYWxsKHBpY2tlciwgd2lkZ2V0KTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB2YXIga2V5dXAgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBrZXlTdGF0ZVtlLndoaWNoXSA9ICdyJztcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGNoYW5nZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHZhciB2YWwgPSAkKGUudGFyZ2V0KS52YWwoKS50cmltKCk7XG4gICAgICAgICAgICB2YXIgcGFyc2VkRGF0ZSA9IHZhbCA/IHBhcnNlSW5wdXREYXRlKHZhbCkgOiBudWxsO1xuICAgICAgICAgICAgc2V0VmFsdWUocGFyc2VkRGF0ZSk7XG4gICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBhdHRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaW5wdXQub24oe1xuICAgICAgICAgICAgICAgICdjaGFuZ2UnOiBjaGFuZ2UsXG4gICAgICAgICAgICAgICAgJ2JsdXInOiBvcHRpb25zLmRlYnVnID8gJycgOiBoaWRlLFxuICAgICAgICAgICAgICAgICdrZXlkb3duJzoga2V5ZG93bixcbiAgICAgICAgICAgICAgICAna2V5dXAnOiBrZXl1cCxcbiAgICAgICAgICAgICAgICAnZm9jdXMnOiBvcHRpb25zLmFsbG93SW5wdXRUb2dnbGUgPyBzaG93IDogJydcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgIGlucHV0Lm9uKHtcbiAgICAgICAgICAgICAgICAgICAgJ2ZvY3VzJzogc2hvd1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub24oJ2NsaWNrJywgdG9nZ2xlKTtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub24oJ21vdXNlZG93bicsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZGV0YWNoRGF0ZVBpY2tlckVsZW1lbnRFdmVudHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlucHV0Lm9mZih7XG4gICAgICAgICAgICAgICAgJ2NoYW5nZSc6IGNoYW5nZSxcbiAgICAgICAgICAgICAgICAnYmx1cic6IGJsdXIsXG4gICAgICAgICAgICAgICAgJ2tleWRvd24nOiBrZXlkb3duLFxuICAgICAgICAgICAgICAgICdrZXl1cCc6IGtleXVwLFxuICAgICAgICAgICAgICAgICdmb2N1cyc6IG9wdGlvbnMuYWxsb3dJbnB1dFRvZ2dsZSA/IGhpZGUgOiAnJ1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQub2ZmKHtcbiAgICAgICAgICAgICAgICAgICAgJ2ZvY3VzJzogc2hvd1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub2ZmKCdjbGljaycsIHRvZ2dsZSk7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lm9mZignbW91c2Vkb3duJywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpbmRleEdpdmVuRGF0ZXMgPSBmdW5jdGlvbihnaXZlbkRhdGVzQXJyYXkpIHtcbiAgICAgICAgICAgIC8vIFN0b3JlIGdpdmVuIGVuYWJsZWREYXRlcyBhbmQgZGlzYWJsZWREYXRlcyBhcyBrZXlzLlxuICAgICAgICAgICAgLy8gVGhpcyB3YXkgd2UgY2FuIGNoZWNrIHRoZWlyIGV4aXN0ZW5jZSBpbiBPKDEpIHRpbWUgaW5zdGVhZCBvZiBsb29waW5nIHRocm91Z2ggd2hvbGUgYXJyYXkuXG4gICAgICAgICAgICAvLyAoZm9yIGV4YW1wbGU6IG9wdGlvbnMuZW5hYmxlZERhdGVzWycyMDE0LTAyLTI3J10gPT09IHRydWUpXG4gICAgICAgICAgICB2YXIgZ2l2ZW5EYXRlc0luZGV4ZWQgPSB7fTtcbiAgICAgICAgICAgICQuZWFjaChnaXZlbkRhdGVzQXJyYXksIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBkRGF0ZSA9IHBhcnNlSW5wdXREYXRlKHRoaXMpO1xuICAgICAgICAgICAgICAgIGlmIChkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2l2ZW5EYXRlc0luZGV4ZWRbZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJyldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiAoT2JqZWN0LmtleXMoZ2l2ZW5EYXRlc0luZGV4ZWQpLmxlbmd0aCkgPyBnaXZlbkRhdGVzSW5kZXhlZCA6IGZhbHNlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpbmRleEdpdmVuSG91cnMgPSBmdW5jdGlvbihnaXZlbkhvdXJzQXJyYXkpIHtcbiAgICAgICAgICAgIC8vIFN0b3JlIGdpdmVuIGVuYWJsZWRIb3VycyBhbmQgZGlzYWJsZWRIb3VycyBhcyBrZXlzLlxuICAgICAgICAgICAgLy8gVGhpcyB3YXkgd2UgY2FuIGNoZWNrIHRoZWlyIGV4aXN0ZW5jZSBpbiBPKDEpIHRpbWUgaW5zdGVhZCBvZiBsb29waW5nIHRocm91Z2ggd2hvbGUgYXJyYXkuXG4gICAgICAgICAgICAvLyAoZm9yIGV4YW1wbGU6IG9wdGlvbnMuZW5hYmxlZEhvdXJzWycyMDE0LTAyLTI3J10gPT09IHRydWUpXG4gICAgICAgICAgICB2YXIgZ2l2ZW5Ib3Vyc0luZGV4ZWQgPSB7fTtcbiAgICAgICAgICAgICQuZWFjaChnaXZlbkhvdXJzQXJyYXksIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGdpdmVuSG91cnNJbmRleGVkW3RoaXNdID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIChPYmplY3Qua2V5cyhnaXZlbkhvdXJzSW5kZXhlZCkubGVuZ3RoKSA/IGdpdmVuSG91cnNJbmRleGVkIDogZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGluaXRGb3JtYXR0aW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQgfHwgJ0wgTFQnO1xuXG4gICAgICAgICAgICBhY3R1YWxGb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLCBmdW5jdGlvbihmb3JtYXRJbnB1dCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdpbnB1dCA9IGRhdGUubG9jYWxlRGF0YSgpLmxvbmdEYXRlRm9ybWF0KGZvcm1hdElucHV0KSB8fCBmb3JtYXRJbnB1dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3aW5wdXQucmVwbGFjZSgvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLCBmdW5jdGlvbihmb3JtYXRJbnB1dDIpIHsgLy8gdGVtcCBmaXggZm9yICM3NDBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUubG9jYWxlRGF0YSgpLmxvbmdEYXRlRm9ybWF0KGZvcm1hdElucHV0MikgfHwgZm9ybWF0SW5wdXQyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHBhcnNlRm9ybWF0cyA9IG9wdGlvbnMuZXh0cmFGb3JtYXRzID8gb3B0aW9ucy5leHRyYUZvcm1hdHMuc2xpY2UoKSA6IFtdO1xuICAgICAgICAgICAgaWYgKHBhcnNlRm9ybWF0cy5pbmRleE9mKGZvcm1hdCkgPCAwICYmIHBhcnNlRm9ybWF0cy5pbmRleE9mKGFjdHVhbEZvcm1hdCkgPCAwKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VGb3JtYXRzLnB1c2goYWN0dWFsRm9ybWF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdXNlMjRIb3VycyA9IChhY3R1YWxGb3JtYXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdhJykgPCAxICYmIGFjdHVhbEZvcm1hdC5yZXBsYWNlKC9cXFsuKj9cXF0vZywgJycpLmluZGV4T2YoJ2gnKSA8IDEpO1xuXG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCd5JykpIHtcbiAgICAgICAgICAgICAgICBtaW5WaWV3TW9kZU51bWJlciA9IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdNJykpIHtcbiAgICAgICAgICAgICAgICBtaW5WaWV3TW9kZU51bWJlciA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdkJykpIHtcbiAgICAgICAgICAgICAgICBtaW5WaWV3TW9kZU51bWJlciA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGN1cnJlbnRWaWV3TW9kZSA9IE1hdGgubWF4KG1pblZpZXdNb2RlTnVtYmVyLCBjdXJyZW50Vmlld01vZGUpO1xuXG4gICAgICAgICAgICBpZiAoIXVuc2V0KSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgKlxuICAgICAgICAgKiBQdWJsaWMgQVBJIGZ1bmN0aW9uc1xuICAgICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgICpcbiAgICAgICAgICogSW1wb3J0YW50OiBEbyBub3QgZXhwb3NlIGRpcmVjdCByZWZlcmVuY2VzIHRvIHByaXZhdGUgb2JqZWN0cyBvciB0aGUgb3B0aW9uc1xuICAgICAgICAgKiBvYmplY3QgdG8gdGhlIG91dGVyIHdvcmxkLiBBbHdheXMgcmV0dXJuIGEgY2xvbmUgd2hlbiByZXR1cm5pbmcgdmFsdWVzIG9yIG1ha2VcbiAgICAgICAgICogYSBjbG9uZSB3aGVuIHNldHRpbmcgYSBwcml2YXRlIHZhcmlhYmxlLlxuICAgICAgICAgKlxuICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIHBpY2tlci5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+RGVzdHJveXMgdGhlIHdpZGdldCBhbmQgcmVtb3ZlcyBhbGwgYXR0YWNoZWQgZXZlbnQgbGlzdGVuZXJzPC9zdW1tYXJ5PlxuICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgZGV0YWNoRGF0ZVBpY2tlckVsZW1lbnRFdmVudHMoKTtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRGF0YSgnRGF0ZVRpbWVQaWNrZXInKTtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRGF0YSgnZGF0ZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50b2dnbGUgPSB0b2dnbGU7XG5cbiAgICAgICAgcGlja2VyLnNob3cgPSBzaG93O1xuXG4gICAgICAgIHBpY2tlci5oaWRlID0gaGlkZTtcblxuICAgICAgICBwaWNrZXIuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PkRpc2FibGVzIHRoZSBpbnB1dCBlbGVtZW50LCB0aGUgY29tcG9uZW50IGlzIGF0dGFjaGVkIHRvLCBieSBhZGRpbmcgYSBkaXNhYmxlZD1cInRydWVcIiBhdHRyaWJ1dGUgdG8gaXQuXG4gICAgICAgICAgICAvLyAvSWYgdGhlIHdpZGdldCB3YXMgdmlzaWJsZSBiZWZvcmUgdGhhdCBjYWxsIGl0IGlzIGhpZGRlbi4gUG9zc2libHkgZW1pdHMgZHAuaGlkZTwvc3VtbWFyeT5cbiAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50Lmhhc0NsYXNzKCdidG4nKSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0LnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5lbmFibGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5FbmFibGVzIHRoZSBpbnB1dCBlbGVtZW50LCB0aGUgY29tcG9uZW50IGlzIGF0dGFjaGVkIHRvLCBieSByZW1vdmluZyBkaXNhYmxlZCBhdHRyaWJ1dGUgZnJvbSBpdC48L3N1bW1hcnk+XG4gICAgICAgICAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC5oYXNDbGFzcygnYnRuJykpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dC5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmlnbm9yZVJlYWRvbmx5ID0gZnVuY3Rpb24oaWdub3JlUmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuaWdub3JlUmVhZG9ubHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlnbm9yZVJlYWRvbmx5ICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpZ25vcmVSZWFkb25seSAoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuaWdub3JlUmVhZG9ubHkgPSBpZ25vcmVSZWFkb25seTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLm9wdGlvbnMgPSBmdW5jdGlvbihuZXdPcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKG5ld09wdGlvbnMgaW5zdGFuY2VvZiBPYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9ucygpIG9wdGlvbnMgcGFyYW1ldGVyIHNob3VsZCBiZSBhbiBvYmplY3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQuZXh0ZW5kKHRydWUsIG9wdGlvbnMsIG5ld09wdGlvbnMpO1xuICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAocGlja2VyW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBwaWNrZXJba2V5XSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uICcgKyBrZXkgKyAnIGlzIG5vdCByZWNvZ25pemVkIScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF0ZSA9IGZ1bmN0aW9uKG5ld0RhdGUpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kYXRlXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyB0aGUgY29tcG9uZW50J3MgbW9kZWwgY3VycmVudCBkYXRlLCBhIG1vbWVudCBvYmplY3Qgb3IgbnVsbCBpZiBub3Qgc2V0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiTW9tZW50XCI+ZGF0ZS5jbG9uZSgpPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+U2V0cyB0aGUgY29tcG9uZW50cyBtb2RlbCBjdXJyZW50IG1vbWVudCB0byBpdC4gUGFzc2luZyBhIG51bGwgdmFsdWUgdW5zZXRzIHRoZSBjb21wb25lbnRzIG1vZGVsIGN1cnJlbnQgbW9tZW50LiBQYXJzaW5nIG9mIHRoZSBuZXdEYXRlIHBhcmFtZXRlciBpcyBtYWRlIHVzaW5nIG1vbWVudCBsaWJyYXJ5IHdpdGggdGhlIG9wdGlvbnMuZm9ybWF0IGFuZCBvcHRpb25zLnVzZVN0cmljdCBjb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwibmV3RGF0ZVwiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kYXRlX3A6bmV3RGF0ZVwiPlRha2VzIHN0cmluZywgRGF0ZSwgbW9tZW50LCBudWxsIHBhcmFtZXRlci48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodW5zZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLmNsb25lKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdEYXRlICE9PSBudWxsICYmIHR5cGVvZiBuZXdEYXRlICE9PSAnc3RyaW5nJyAmJiAhbW9tZW50LmlzTW9tZW50KG5ld0RhdGUpICYmICEobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF0ZSgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiBbbnVsbCwgc3RyaW5nLCBtb21lbnQgb3IgRGF0ZV0nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSA9PT0gbnVsbCA/IG51bGwgOiBwYXJzZUlucHV0RGF0ZShuZXdEYXRlKSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5mb3JtYXQgPSBmdW5jdGlvbihuZXdGb3JtYXQpIHtcbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT50ZXN0IHN1PC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwibmV3Rm9ybWF0XCI+aW5mbyBhYm91dCBwYXJhPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwic3RyaW5nfGJvb2xlYW5cIj5yZXR1cm5zIGZvbzwvcmV0dXJucz5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKHR5cGVvZiBuZXdGb3JtYXQgIT09ICdzdHJpbmcnKSAmJiAoKHR5cGVvZiBuZXdGb3JtYXQgIT09ICdib29sZWFuJykgfHwgKG5ld0Zvcm1hdCAhPT0gZmFsc2UpKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Zvcm1hdCgpIGV4cGVjdHMgYSBzdHJpbmcgb3IgYm9vbGVhbjpmYWxzZSBwYXJhbWV0ZXIgJyArIG5ld0Zvcm1hdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuZm9ybWF0ID0gbmV3Rm9ybWF0O1xuICAgICAgICAgICAgaWYgKGFjdHVhbEZvcm1hdCkge1xuICAgICAgICAgICAgICAgIGluaXRGb3JtYXR0aW5nKCk7IC8vIHJlaW5pdCBmb3JtYXR0aW5nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50aW1lWm9uZSA9IGZ1bmN0aW9uKG5ld1pvbmUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMudGltZVpvbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3Wm9uZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCduZXdab25lKCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy50aW1lWm9uZSA9IG5ld1pvbmU7XG5cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmRheVZpZXdIZWFkZXJGb3JtYXQgPSBmdW5jdGlvbihuZXdGb3JtYXQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGF5Vmlld0hlYWRlckZvcm1hdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZXdGb3JtYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF5Vmlld0hlYWRlckZvcm1hdCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuZGF5Vmlld0hlYWRlckZvcm1hdCA9IG5ld0Zvcm1hdDtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmV4dHJhRm9ybWF0cyA9IGZ1bmN0aW9uKGZvcm1hdHMpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZXh0cmFGb3JtYXRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZm9ybWF0cyAhPT0gZmFsc2UgJiYgIShmb3JtYXRzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXh0cmFGb3JtYXRzKCkgZXhwZWN0cyBhbiBhcnJheSBvciBmYWxzZSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5leHRyYUZvcm1hdHMgPSBmb3JtYXRzO1xuICAgICAgICAgICAgaWYgKHBhcnNlRm9ybWF0cykge1xuICAgICAgICAgICAgICAgIGluaXRGb3JtYXR0aW5nKCk7IC8vIHJlaW5pdCBmb3JtYXR0aW5nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlZERhdGVzID0gZnVuY3Rpb24oZGF0ZXMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZERhdGVzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGRpc2FibGVkIGRhdGVzIG9uIHRoZSBjb21wb25lbnQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJhcnJheVwiPm9wdGlvbnMuZGlzYWJsZWREYXRlczwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlNldHRpbmcgdGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUgY29uZmlndXJhdGlvbi4gQWxzbyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiBvZlxuICAgICAgICAgICAgLy8gL29wdGlvbnMuZW5hYmxlZERhdGVzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiZGF0ZXNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGlzYWJsZWREYXRlc19wOmRhdGVzXCI+VGFrZXMgYW4gWyBzdHJpbmcgb3IgRGF0ZSBvciBtb21lbnQgXSBvZiB2YWx1ZXMgYW5kIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGRheXMuPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcHRpb25zLmRpc2FibGVkRGF0ZXMgPyAkLmV4dGVuZCh7fSwgb3B0aW9ucy5kaXNhYmxlZERhdGVzKSA6IG9wdGlvbnMuZGlzYWJsZWREYXRlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZGF0ZXMpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkRGF0ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoZGF0ZXMgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkaXNhYmxlZERhdGVzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWREYXRlcyA9IGluZGV4R2l2ZW5EYXRlcyhkYXRlcyk7XG4gICAgICAgICAgICBvcHRpb25zLmVuYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5lbmFibGVkRGF0ZXMgPSBmdW5jdGlvbihkYXRlcykge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmVuYWJsZWREYXRlc1wiPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgY3VycmVudGx5IHNldCBlbmFibGVkIGRhdGVzIG9uIHRoZSBjb21wb25lbnQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJhcnJheVwiPm9wdGlvbnMuZW5hYmxlZERhdGVzPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+U2V0dGluZyB0aGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvcHRpb25zLm1pbkRhdGUsIG9wdGlvbnMubWF4RGF0ZSBjb25maWd1cmF0aW9uLiBBbHNvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIG9mIG9wdGlvbnMuZGlzYWJsZWREYXRlcyBpZiBzdWNoIGV4aXN0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImRhdGVzXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmVuYWJsZWREYXRlc19wOmRhdGVzXCI+VGFrZXMgYW4gWyBzdHJpbmcgb3IgRGF0ZSBvciBtb21lbnQgXSBvZiB2YWx1ZXMgYW5kIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGRheXMuPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcHRpb25zLmVuYWJsZWREYXRlcyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmVuYWJsZWREYXRlcykgOiBvcHRpb25zLmVuYWJsZWREYXRlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZGF0ZXMpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmVuYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShkYXRlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2VuYWJsZWREYXRlcygpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmVuYWJsZWREYXRlcyA9IGluZGV4R2l2ZW5EYXRlcyhkYXRlcyk7XG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkRGF0ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF5c09mV2Vla0Rpc2FibGVkID0gZnVuY3Rpb24oZGF5c09mV2Vla0Rpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZC5zcGxpY2UoMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIGRheXNPZldlZWtEaXNhYmxlZCA9PT0gJ2Jvb2xlYW4nKSAmJiAhZGF5c09mV2Vla0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kYXlzT2ZXZWVrRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIShkYXlzT2ZXZWVrRGlzYWJsZWQgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkYXlzT2ZXZWVrRGlzYWJsZWQoKSBleHBlY3RzIGFuIGFycmF5IHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5kYXlzT2ZXZWVrRGlzYWJsZWQgPSBkYXlzT2ZXZWVrRGlzYWJsZWQucmVkdWNlKGZ1bmN0aW9uKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSA9IHBhcnNlSW50KGN1cnJlbnRWYWx1ZSwgMTApO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgPiA2IHx8IGN1cnJlbnRWYWx1ZSA8IDAgfHwgaXNOYU4oY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmFsdWUuaW5kZXhPZihjdXJyZW50VmFsdWUpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlLnB1c2goY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgICAgICB9LCBbXSkuc29ydCgpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHZhciB0cmllcyA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKCFpc1ZhbGlkKGRhdGUsICdkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5hZGQoMSwgJ2QnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWVzID09PSAzMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCAzMSB0aW1lcyB0byBmaW5kIGEgdmFsaWQgZGF0ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyaWVzKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5tYXhEYXRlID0gZnVuY3Rpb24obWF4RGF0ZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5tYXhEYXRlID8gb3B0aW9ucy5tYXhEYXRlLmNsb25lKCkgOiBvcHRpb25zLm1heERhdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIG1heERhdGUgPT09ICdib29sZWFuJykgJiYgbWF4RGF0ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1heERhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG1heERhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heERhdGUgPT09ICdub3cnIHx8IG1heERhdGUgPT09ICdtb21lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heERhdGUgPSBnZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwYXJzZWREYXRlID0gcGFyc2VJbnB1dERhdGUobWF4RGF0ZSk7XG5cbiAgICAgICAgICAgIGlmICghcGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtYXhEYXRlKCkgQ291bGQgbm90IHBhcnNlIGRhdGUgcGFyYW1ldGVyOiAnICsgbWF4RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5taW5EYXRlICYmIHBhcnNlZERhdGUuaXNCZWZvcmUob3B0aW9ucy5taW5EYXRlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heERhdGUoKSBkYXRlIHBhcmFtZXRlciBpcyBiZWZvcmUgb3B0aW9ucy5taW5EYXRlOiAnICsgcGFyc2VkRGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLm1heERhdGUgPSBwYXJzZWREYXRlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCAmJiBkYXRlLmlzQWZ0ZXIobWF4RGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShvcHRpb25zLm1heERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZpZXdEYXRlLmlzQWZ0ZXIocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IHBhcnNlZERhdGUuY2xvbmUoKS5zdWJ0cmFjdChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5taW5EYXRlID0gZnVuY3Rpb24obWluRGF0ZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5taW5EYXRlID8gb3B0aW9ucy5taW5EYXRlLmNsb25lKCkgOiBvcHRpb25zLm1pbkRhdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIG1pbkRhdGUgPT09ICdib29sZWFuJykgJiYgbWluRGF0ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1pbkRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG1pbkRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbkRhdGUgPT09ICdub3cnIHx8IG1pbkRhdGUgPT09ICdtb21lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbkRhdGUgPSBnZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwYXJzZWREYXRlID0gcGFyc2VJbnB1dERhdGUobWluRGF0ZSk7XG5cbiAgICAgICAgICAgIGlmICghcGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW5EYXRlKCkgQ291bGQgbm90IHBhcnNlIGRhdGUgcGFyYW1ldGVyOiAnICsgbWluRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5tYXhEYXRlICYmIHBhcnNlZERhdGUuaXNBZnRlcihvcHRpb25zLm1heERhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWluRGF0ZSgpIGRhdGUgcGFyYW1ldGVyIGlzIGFmdGVyIG9wdGlvbnMubWF4RGF0ZTogJyArIHBhcnNlZERhdGUuZm9ybWF0KGFjdHVhbEZvcm1hdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5taW5EYXRlID0gcGFyc2VkRGF0ZTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVzZUN1cnJlbnQgJiYgIW9wdGlvbnMua2VlcEludmFsaWQgJiYgZGF0ZS5pc0JlZm9yZShtaW5EYXRlKSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG9wdGlvbnMubWluRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmlld0RhdGUuaXNCZWZvcmUocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IHBhcnNlZERhdGUuY2xvbmUoKS5hZGQob3B0aW9ucy5zdGVwcGluZywgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGVmYXVsdERhdGUgPSBmdW5jdGlvbihkZWZhdWx0RGF0ZSkge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHREYXRlXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhIG1vbWVudCB3aXRoIHRoZSBvcHRpb25zLmRlZmF1bHREYXRlIG9wdGlvbiBjb25maWd1cmF0aW9uIG9yIGZhbHNlIGlmIG5vdCBzZXQ8L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cIk1vbWVudFwiPmRhdGUuY2xvbmUoKTwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PldpbGwgc2V0IHRoZSBwaWNrZXIncyBpbml0YWwgZGF0ZS4gSWYgYSBib29sZWFuOmZhbHNlIHZhbHVlIGlzIHBhc3NlZCB0aGUgb3B0aW9ucy5kZWZhdWx0RGF0ZSBwYXJhbWV0ZXIgaXMgY2xlYXJlZC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJkZWZhdWx0RGF0ZVwiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kZWZhdWx0RGF0ZV9wOmRlZmF1bHREYXRlXCI+VGFrZXMgYSBzdHJpbmcsIERhdGUsIG1vbWVudCwgYm9vbGVhbjpmYWxzZTwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmRlZmF1bHREYXRlID8gb3B0aW9ucy5kZWZhdWx0RGF0ZS5jbG9uZSgpIDogb3B0aW9ucy5kZWZhdWx0RGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGVmYXVsdERhdGUpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmRlZmF1bHREYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0RGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdERhdGUgPT09ICdub3cnIHx8IGRlZmF1bHREYXRlID09PSAnbW9tZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHREYXRlID0gZ2V0TW9tZW50KGRlZmF1bHREYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwYXJzZWREYXRlID0gcGFyc2VJbnB1dERhdGUoZGVmYXVsdERhdGUpO1xuICAgICAgICAgICAgaWYgKCFwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RlZmF1bHREYXRlKCkgQ291bGQgbm90IHBhcnNlIGRhdGUgcGFyYW1ldGVyOiAnICsgZGVmYXVsdERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHBhcnNlZERhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGVmYXVsdERhdGUoKSBkYXRlIHBhc3NlZCBpcyBpbnZhbGlkIGFjY29yZGluZyB0byBjb21wb25lbnQgc2V0dXAgdmFsaWRhdGlvbnMnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kZWZhdWx0RGF0ZSA9IHBhcnNlZERhdGU7XG5cbiAgICAgICAgICAgIGlmICgob3B0aW9ucy5kZWZhdWx0RGF0ZSAmJiBvcHRpb25zLmlubGluZSkgfHwgaW5wdXQudmFsKCkudHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG9wdGlvbnMuZGVmYXVsdERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIubG9jYWxlID0gZnVuY3Rpb24obG9jYWxlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmxvY2FsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFtb21lbnQubG9jYWxlRGF0YShsb2NhbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbG9jYWxlKCkgbG9jYWxlICcgKyBsb2NhbGUgKyAnIGlzIG5vdCBsb2FkZWQgZnJvbSBtb21lbnQgbG9jYWxlcyEnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgICAgICBkYXRlLmxvY2FsZShvcHRpb25zLmxvY2FsZSk7XG4gICAgICAgICAgICB2aWV3RGF0ZS5sb2NhbGUob3B0aW9ucy5sb2NhbGUpO1xuXG4gICAgICAgICAgICBpZiAoYWN0dWFsRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTsgLy8gcmVpbml0IGZvcm1hdHRpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuc3RlcHBpbmcgPSBmdW5jdGlvbihzdGVwcGluZykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5zdGVwcGluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RlcHBpbmcgPSBwYXJzZUludChzdGVwcGluZywgMTApO1xuICAgICAgICAgICAgaWYgKGlzTmFOKHN0ZXBwaW5nKSB8fCBzdGVwcGluZyA8IDEpIHtcbiAgICAgICAgICAgICAgICBzdGVwcGluZyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnN0ZXBwaW5nID0gc3RlcHBpbmc7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci51c2VDdXJyZW50ID0gZnVuY3Rpb24odXNlQ3VycmVudCkge1xuICAgICAgICAgICAgdmFyIHVzZUN1cnJlbnRPcHRpb25zID0gWyd5ZWFyJywgJ21vbnRoJywgJ2RheScsICdob3VyJywgJ21pbnV0ZSddO1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy51c2VDdXJyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKHR5cGVvZiB1c2VDdXJyZW50ICE9PSAnYm9vbGVhbicpICYmICh0eXBlb2YgdXNlQ3VycmVudCAhPT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndXNlQ3VycmVudCgpIGV4cGVjdHMgYSBib29sZWFuIG9yIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdXNlQ3VycmVudCA9PT0gJ3N0cmluZycgJiYgdXNlQ3VycmVudE9wdGlvbnMuaW5kZXhPZih1c2VDdXJyZW50LnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3VzZUN1cnJlbnQoKSBleHBlY3RzIGEgc3RyaW5nIHBhcmFtZXRlciBvZiAnICsgdXNlQ3VycmVudE9wdGlvbnMuam9pbignLCAnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnVzZUN1cnJlbnQgPSB1c2VDdXJyZW50O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuY29sbGFwc2UgPSBmdW5jdGlvbihjb2xsYXBzZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5jb2xsYXBzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xsYXBzZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY29sbGFwc2UoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbGxhcHNlID09PSBjb2xsYXBzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmNvbGxhcHNlID0gY29sbGFwc2U7XG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmljb25zID0gZnVuY3Rpb24oaWNvbnMpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHt9LCBvcHRpb25zLmljb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEoaWNvbnMgaW5zdGFuY2VvZiBPYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaWNvbnMoKSBleHBlY3RzIHBhcmFtZXRlciB0byBiZSBhbiBPYmplY3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQuZXh0ZW5kKG9wdGlvbnMuaWNvbnMsIGljb25zKTtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIudG9vbHRpcHMgPSBmdW5jdGlvbih0b29sdGlwcykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIG9wdGlvbnMudG9vbHRpcHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoISh0b29sdGlwcyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0b29sdGlwcygpIGV4cGVjdHMgcGFyYW1ldGVyIHRvIGJlIGFuIE9iamVjdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJC5leHRlbmQob3B0aW9ucy50b29sdGlwcywgdG9vbHRpcHMpO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci51c2VTdHJpY3QgPSBmdW5jdGlvbih1c2VTdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMudXNlU3RyaWN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHVzZVN0cmljdCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndXNlU3RyaWN0KCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnVzZVN0cmljdCA9IHVzZVN0cmljdDtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnNpZGVCeVNpZGUgPSBmdW5jdGlvbihzaWRlQnlTaWRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnNpZGVCeVNpZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2lkZUJ5U2lkZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2lkZUJ5U2lkZSgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5zaWRlQnlTaWRlID0gc2lkZUJ5U2lkZTtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIudmlld01vZGUgPSBmdW5jdGlvbih2aWV3TW9kZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy52aWV3TW9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2aWV3TW9kZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aWV3TW9kZSgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2aWV3TW9kZXMuaW5kZXhPZih2aWV3TW9kZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmlld01vZGUoKSBwYXJhbWV0ZXIgbXVzdCBiZSBvbmUgb2YgKCcgKyB2aWV3TW9kZXMuam9pbignLCAnKSArICcpIHZhbHVlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMudmlld01vZGUgPSB2aWV3TW9kZTtcbiAgICAgICAgICAgIGN1cnJlbnRWaWV3TW9kZSA9IE1hdGgubWF4KHZpZXdNb2Rlcy5pbmRleE9mKHZpZXdNb2RlKSwgbWluVmlld01vZGVOdW1iZXIpO1xuXG4gICAgICAgICAgICBzaG93TW9kZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIudG9vbGJhclBsYWNlbWVudCA9IGZ1bmN0aW9uKHRvb2xiYXJQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMudG9vbGJhclBsYWNlbWVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b29sYmFyUGxhY2VtZW50ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Rvb2xiYXJQbGFjZW1lbnQoKSBleHBlY3RzIGEgc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRvb2xiYXJQbGFjZW1lbnRzLmluZGV4T2YodG9vbGJhclBsYWNlbWVudCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndG9vbGJhclBsYWNlbWVudCgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiAoJyArIHRvb2xiYXJQbGFjZW1lbnRzLmpvaW4oJywgJykgKyAnKSB2YWx1ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy50b29sYmFyUGxhY2VtZW50ID0gdG9vbGJhclBsYWNlbWVudDtcblxuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci53aWRnZXRQb3NpdGlvbmluZyA9IGZ1bmN0aW9uKHdpZGdldFBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZCh7fSwgb3B0aW9ucy53aWRnZXRQb3NpdGlvbmluZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgoe30pLnRvU3RyaW5nLmNhbGwod2lkZ2V0UG9zaXRpb25pbmcpICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBvc2l0aW9uaW5nKCkgZXhwZWN0cyBhbiBvYmplY3QgdmFyaWFibGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd3aWRnZXRQb3NpdGlvbmluZygpIGhvcml6b250YWwgdmFyaWFibGUgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsID0gd2lkZ2V0UG9zaXRpb25pbmcuaG9yaXpvbnRhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmIChob3Jpem9udGFsTW9kZXMuaW5kZXhPZih3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSBleHBlY3RzIGhvcml6b250YWwgcGFyYW1ldGVyIHRvIGJlIG9uZSBvZiAoJyArIGhvcml6b250YWxNb2Rlcy5qb2luKCcsICcpICsgJyknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3B0aW9ucy53aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsID0gd2lkZ2V0UG9zaXRpb25pbmcuaG9yaXpvbnRhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2lkZ2V0UG9zaXRpb25pbmcudmVydGljYWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBvc2l0aW9uaW5nKCkgdmVydGljYWwgdmFyaWFibGUgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCA9IHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHZlcnRpY2FsTW9kZXMuaW5kZXhPZih3aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBvc2l0aW9uaW5nKCkgZXhwZWN0cyB2ZXJ0aWNhbCBwYXJhbWV0ZXIgdG8gYmUgb25lIG9mICgnICsgdmVydGljYWxNb2Rlcy5qb2luKCcsICcpICsgJyknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3B0aW9ucy53aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCA9IHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5jYWxlbmRhcldlZWtzID0gZnVuY3Rpb24oY2FsZW5kYXJXZWVrcykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5jYWxlbmRhcldlZWtzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGVuZGFyV2Vla3MgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NhbGVuZGFyV2Vla3MoKSBleHBlY3RzIHBhcmFtZXRlciB0byBiZSBhIGJvb2xlYW4gdmFsdWUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5jYWxlbmRhcldlZWtzID0gY2FsZW5kYXJXZWVrcztcbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuc2hvd1RvZGF5QnV0dG9uID0gZnVuY3Rpb24oc2hvd1RvZGF5QnV0dG9uKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnNob3dUb2RheUJ1dHRvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzaG93VG9kYXlCdXR0b24gIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Nob3dUb2RheUJ1dHRvbigpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLnNob3dUb2RheUJ1dHRvbiA9IHNob3dUb2RheUJ1dHRvbjtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuc2hvd0NsZWFyID0gZnVuY3Rpb24oc2hvd0NsZWFyKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnNob3dDbGVhcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzaG93Q2xlYXIgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Nob3dDbGVhcigpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLnNob3dDbGVhciA9IHNob3dDbGVhcjtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIud2lkZ2V0UGFyZW50ID0gZnVuY3Rpb24od2lkZ2V0UGFyZW50KSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLndpZGdldFBhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXRQYXJlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0UGFyZW50ID0gJCh3aWRnZXRQYXJlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAod2lkZ2V0UGFyZW50ICE9PSBudWxsICYmICh0eXBlb2Ygd2lkZ2V0UGFyZW50ICE9PSAnc3RyaW5nJyAmJiAhKHdpZGdldFBhcmVudCBpbnN0YW5jZW9mICQpKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBhcmVudCgpIGV4cGVjdHMgYSBzdHJpbmcgb3IgYSBqUXVlcnkgb2JqZWN0IHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLndpZGdldFBhcmVudCA9IHdpZGdldFBhcmVudDtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIua2VlcE9wZW4gPSBmdW5jdGlvbihrZWVwT3Blbikge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5rZWVwT3BlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBrZWVwT3BlbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigna2VlcE9wZW4oKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5rZWVwT3BlbiA9IGtlZXBPcGVuO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZm9jdXNPblNob3cgPSBmdW5jdGlvbihmb2N1c09uU2hvdykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb2N1c09uU2hvdztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmb2N1c09uU2hvdyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZm9jdXNPblNob3coKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5mb2N1c09uU2hvdyA9IGZvY3VzT25TaG93O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuaW5saW5lID0gZnVuY3Rpb24oaW5saW5lKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmlubGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmxpbmUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2lubGluZSgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmlubGluZSA9IGlubGluZTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIua2V5QmluZHMgPSBmdW5jdGlvbihrZXlCaW5kcykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5rZXlCaW5kcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5rZXlCaW5kcyA9IGtleUJpbmRzO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZ2V0TW9tZW50ID0gZnVuY3Rpb24oZCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldE1vbWVudChkKTtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGVidWcgPSBmdW5jdGlvbihkZWJ1Zykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkZWJ1ZyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGVidWcoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kZWJ1ZyA9IGRlYnVnO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuYWxsb3dJbnB1dFRvZ2dsZSA9IGZ1bmN0aW9uKGFsbG93SW5wdXRUb2dnbGUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuYWxsb3dJbnB1dFRvZ2dsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBhbGxvd0lucHV0VG9nZ2xlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhbGxvd0lucHV0VG9nZ2xlKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuYWxsb3dJbnB1dFRvZ2dsZSA9IGFsbG93SW5wdXRUb2dnbGU7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zaG93Q2xvc2UgPSBmdW5jdGlvbihzaG93Q2xvc2UpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2hvd0Nsb3NlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNob3dDbG9zZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2hvd0Nsb3NlKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuc2hvd0Nsb3NlID0gc2hvd0Nsb3NlO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIua2VlcEludmFsaWQgPSBmdW5jdGlvbihrZWVwSW52YWxpZCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5rZWVwSW52YWxpZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBrZWVwSW52YWxpZCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigna2VlcEludmFsaWQoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMua2VlcEludmFsaWQgPSBrZWVwSW52YWxpZDtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmRhdGVwaWNrZXJJbnB1dCA9IGZ1bmN0aW9uKGRhdGVwaWNrZXJJbnB1dCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kYXRlcGlja2VySW5wdXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0ZXBpY2tlcklucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RhdGVwaWNrZXJJbnB1dCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuZGF0ZXBpY2tlcklucHV0ID0gZGF0ZXBpY2tlcklucHV0O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIucGFyc2VJbnB1dERhdGUgPSBmdW5jdGlvbihwYXJzZUlucHV0RGF0ZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5wYXJzZUlucHV0RGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJzZUlucHV0RGF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BhcnNlSW5wdXREYXRlKCkgc2hvbHVkIGJlIGFzIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMucGFyc2VJbnB1dERhdGUgPSBwYXJzZUlucHV0RGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzID0gZnVuY3Rpb24oZGlzYWJsZWRUaW1lSW50ZXJ2YWxzKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGRpc2FibGVkIGRhdGVzIG9uIHRoZSBjb21wb25lbnQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJhcnJheVwiPm9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+U2V0dGluZyB0aGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvcHRpb25zLm1pbkRhdGUsIG9wdGlvbnMubWF4RGF0ZSBjb25maWd1cmF0aW9uLiBBbHNvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIG9mXG4gICAgICAgICAgICAvLyAvb3B0aW9ucy5lbmFibGVkRGF0ZXMgaWYgc3VjaCBleGlzdC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJkYXRlc1wiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZFRpbWVJbnRlcnZhbHNfcDpkYXRlc1wiPlRha2VzIGFuIFsgc3RyaW5nIG9yIERhdGUgb3IgbW9tZW50IF0gb2YgdmFsdWVzIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IG9ubHkgZnJvbSB0aG9zZSBkYXlzLjwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAob3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgPyAkLmV4dGVuZCh7fSwgb3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMpIDogb3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkVGltZUludGVydmFscykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGRpc2FibGVkVGltZUludGVydmFscyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Rpc2FibGVkVGltZUludGVydmFscygpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyA9IGRpc2FibGVkVGltZUludGVydmFscztcbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGlzYWJsZWRIb3VycyA9IGZ1bmN0aW9uKGhvdXJzKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGlzYWJsZWRIb3Vyc1wiPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgY3VycmVudGx5IHNldCBkaXNhYmxlZCBob3VycyBvbiB0aGUgY29tcG9uZW50Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiYXJyYXlcIj5vcHRpb25zLmRpc2FibGVkSG91cnM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2ZcbiAgICAgICAgICAgIC8vIC9vcHRpb25zLmVuYWJsZWRIb3VycyBpZiBzdWNoIGV4aXN0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImhvdXJzXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRpc2FibGVkSG91cnNfcDpob3Vyc1wiPlRha2VzIGFuIFsgaW50IF0gb2YgdmFsdWVzIGFuZCBkaXNhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IG9ubHkgZnJvbSB0aG9zZSBob3Vycy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZGlzYWJsZWRIb3VycyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmRpc2FibGVkSG91cnMpIDogb3B0aW9ucy5kaXNhYmxlZEhvdXJzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFob3Vycykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRIb3VycyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShob3VycyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Rpc2FibGVkSG91cnMoKSBleHBlY3RzIGFuIGFycmF5IHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZEhvdXJzID0gaW5kZXhHaXZlbkhvdXJzKGhvdXJzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZEhvdXJzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VDdXJyZW50ICYmICFvcHRpb25zLmtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRyaWVzID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoIWlzVmFsaWQoZGF0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLmFkZCgxLCAnaCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHJpZXMgPT09IDI0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIDI0IHRpbWVzIHRvIGZpbmQgYSB2YWxpZCBkYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJpZXMrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmVuYWJsZWRIb3VycyA9IGZ1bmN0aW9uKGhvdXJzKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZEhvdXJzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGVuYWJsZWQgaG91cnMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5lbmFibGVkSG91cnM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygb3B0aW9ucy5kaXNhYmxlZEhvdXJzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiaG91cnNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZEhvdXJzX3A6aG91cnNcIj5UYWtlcyBhbiBbIGludCBdIG9mIHZhbHVlcyBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBvbmx5IGZyb20gdGhvc2UgaG91cnMuPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcHRpb25zLmVuYWJsZWRIb3VycyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmVuYWJsZWRIb3VycykgOiBvcHRpb25zLmVuYWJsZWRIb3Vycyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaG91cnMpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmVuYWJsZWRIb3VycyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShob3VycyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2VuYWJsZWRIb3VycygpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmVuYWJsZWRIb3VycyA9IGluZGV4R2l2ZW5Ib3Vycyhob3Vycyk7XG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkSG91cnMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVzZUN1cnJlbnQgJiYgIW9wdGlvbnMua2VlcEludmFsaWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdHJpZXMgPSAwO1xuICAgICAgICAgICAgICAgIHdoaWxlICghaXNWYWxpZChkYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuYWRkKDEsICdoJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmllcyA9PT0gMjQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgMjQgdGltZXMgdG8gZmluZCBhIHZhbGlkIGRhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0cmllcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGNvbXBvbmVudCdzIG1vZGVsIGN1cnJlbnQgdmlld0RhdGUsIGEgbW9tZW50IG9iamVjdCBvciBudWxsIGlmIG5vdCBzZXQuIFBhc3NpbmcgYSBudWxsIHZhbHVlIHVuc2V0cyB0aGUgY29tcG9uZW50cyBtb2RlbCBjdXJyZW50IG1vbWVudC4gUGFyc2luZyBvZiB0aGUgbmV3RGF0ZSBwYXJhbWV0ZXIgaXMgbWFkZSB1c2luZyBtb21lbnQgbGlicmFyeSB3aXRoIHRoZSBvcHRpb25zLmZvcm1hdCBhbmQgb3B0aW9ucy51c2VTdHJpY3QgY29tcG9uZW50cyBjb25maWd1cmF0aW9uLlxuICAgICAgICAgKiBAcGFyYW0ge1Rha2VzIHN0cmluZywgdmlld0RhdGUsIG1vbWVudCwgbnVsbCBwYXJhbWV0ZXIufSBuZXdEYXRlXG4gICAgICAgICAqIEByZXR1cm5zIHt2aWV3RGF0ZS5jbG9uZSgpfVxuICAgICAgICAgKi9cbiAgICAgICAgcGlja2VyLnZpZXdEYXRlID0gZnVuY3Rpb24obmV3RGF0ZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmlld0RhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFuZXdEYXRlKSB7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUgPSBkYXRlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZXdEYXRlICE9PSAnc3RyaW5nJyAmJiAhbW9tZW50LmlzTW9tZW50KG5ld0RhdGUpICYmICEobmV3RGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmlld0RhdGUoKSBwYXJhbWV0ZXIgbXVzdCBiZSBvbmUgb2YgW3N0cmluZywgbW9tZW50IG9yIERhdGVdJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZpZXdEYXRlID0gcGFyc2VJbnB1dERhdGUobmV3RGF0ZSk7XG4gICAgICAgICAgICB2aWV3VXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGluaXRpYWxpemluZyBlbGVtZW50IGFuZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgICAgICBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgaW5wdXQgPSBlbGVtZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5wdXQgPSBlbGVtZW50LmZpbmQob3B0aW9ucy5kYXRlcGlja2VySW5wdXQpO1xuICAgICAgICAgICAgaWYgKGlucHV0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gZWxlbWVudC5maW5kKCdpbnB1dCcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaW5wdXQuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NTUyBjbGFzcyBcIicgKyBvcHRpb25zLmRhdGVwaWNrZXJJbnB1dCArICdcIiBjYW5ub3QgYmUgYXBwbGllZCB0byBub24gaW5wdXQgZWxlbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVsZW1lbnQuaGFzQ2xhc3MoJ2lucHV0LWdyb3VwJykpIHtcbiAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlcmUgaXMgbW9yZSB0aGVuIG9uZSAnaW5wdXQtZ3JvdXAtYWRkb24nIElzc3VlICM0OFxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuZmluZCgnLmRhdGVwaWNrZXJidXR0b24nKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQgPSBlbGVtZW50LmZpbmQoJy5pbnB1dC1ncm91cC1hZGRvbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQgPSBlbGVtZW50LmZpbmQoJy5kYXRlcGlja2VyYnV0dG9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lICYmICFpbnB1dC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgaW5pdGlhbGl6ZSBEYXRlVGltZVBpY2tlciB3aXRob3V0IGFuIGlucHV0IGVsZW1lbnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCBkZWZhdWx0cyBmb3IgZGF0ZSBoZXJlIG5vdyBpbnN0ZWFkIG9mIGluIHZhciBkZWNsYXJhdGlvblxuICAgICAgICBkYXRlID0gZ2V0TW9tZW50KCk7XG4gICAgICAgIHZpZXdEYXRlID0gZGF0ZS5jbG9uZSgpO1xuXG4gICAgICAgICQuZXh0ZW5kKHRydWUsIG9wdGlvbnMsIGRhdGFUb09wdGlvbnMoKSk7XG5cbiAgICAgICAgcGlja2VyLm9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTtcblxuICAgICAgICBhdHRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cygpO1xuXG4gICAgICAgIGlmIChpbnB1dC5wcm9wKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICBwaWNrZXIuZGlzYWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dC5pcygnaW5wdXQnKSAmJiBpbnB1dC52YWwoKS50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShwYXJzZUlucHV0RGF0ZShpbnB1dC52YWwoKS50cmltKCkpKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmRlZmF1bHREYXRlICYmIGlucHV0LmF0dHIoJ3BsYWNlaG9sZGVyJykgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0VmFsdWUob3B0aW9ucy5kZWZhdWx0RGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBzaG93KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICB9O1xuXG4gICAgLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogalF1ZXJ5IHBsdWdpbiBjb25zdHJ1Y3RvciBhbmQgZGVmYXVsdHMgb2JqZWN0XG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKipcbiAgICAgKiBTZWUgKGh0dHA6Ly9qcXVlcnkuY29tLykuXG4gICAgICogQG5hbWUgalF1ZXJ5XG4gICAgICogQGNsYXNzXG4gICAgICogU2VlIHRoZSBqUXVlcnkgTGlicmFyeSAgKGh0dHA6Ly9qcXVlcnkuY29tLykgZm9yIGZ1bGwgZGV0YWlscy4gIFRoaXMganVzdFxuICAgICAqIGRvY3VtZW50cyB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzZXMgdGhhdCBhcmUgYWRkZWQgdG8galF1ZXJ5IGJ5IHRoaXMgcGx1Zy1pbi5cbiAgICAgKi9cbiAgICAvKipcbiAgICAgKiBTZWUgKGh0dHA6Ly9qcXVlcnkuY29tLylcbiAgICAgKiBAbmFtZSBmblxuICAgICAqIEBjbGFzc1xuICAgICAqIFNlZSB0aGUgalF1ZXJ5IExpYnJhcnkgIChodHRwOi8vanF1ZXJ5LmNvbS8pIGZvciBmdWxsIGRldGFpbHMuICBUaGlzIGp1c3RcbiAgICAgKiBkb2N1bWVudHMgdGhlIGZ1bmN0aW9uIGFuZCBjbGFzc2VzIHRoYXQgYXJlIGFkZGVkIHRvIGpRdWVyeSBieSB0aGlzIHBsdWctaW4uXG4gICAgICogQG1lbWJlck9mIGpRdWVyeVxuICAgICAqL1xuICAgIC8qKlxuICAgICAqIFNob3cgY29tbWVudHNcbiAgICAgKiBAY2xhc3MgZGF0ZXRpbWVwaWNrZXJcbiAgICAgKiBAbWVtYmVyT2YgalF1ZXJ5LmZuXG4gICAgICovXG4gICAgJC5mbi5kYXRldGltZXBpY2tlciA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICB2YXIgaXNJbnN0YW5jZSA9IHRydWU7XG4gICAgICAgIHZhciB0aGlzTWV0aG9kcyA9IFsnZGVzdHJveScsICdoaWRlJywgJ3Nob3cnLCAndG9nZ2xlJ107XG4gICAgICAgIHZhciByZXR1cm5WYWx1ZTtcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgdmFyIF9vcHRpb25zO1xuICAgICAgICAgICAgICAgIGlmICghJHRoaXMuZGF0YSgnRGF0ZVRpbWVQaWNrZXInKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBwcml2YXRlIGNvcHkgb2YgdGhlIGRlZmF1bHRzIG9iamVjdFxuICAgICAgICAgICAgICAgICAgICBfb3B0aW9ucyA9ICQuZXh0ZW5kKHRydWUsIHt9LCAkLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHRzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgJHRoaXMuZGF0YSgnRGF0ZVRpbWVQaWNrZXInLCBkYXRlVGltZVBpY2tlcigkdGhpcywgX29wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9ICR0aGlzLmRhdGEoJ0RhdGVUaW1lUGlja2VyJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlcihcIicgKyBvcHRpb25zICsgJ1wiKSBtZXRob2Qgd2FzIGNhbGxlZCBvbiBhbiBlbGVtZW50IHRoYXQgaXMgbm90IHVzaW5nIERhdGVUaW1lUGlja2VyJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBpbnN0YW5jZVtvcHRpb25zXS5hcHBseShpbnN0YW5jZSwgYXJncyk7XG4gICAgICAgICAgICAgICAgaXNJbnN0YW5jZSA9IHJldHVyblZhbHVlID09PSBpbnN0YW5jZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaXNJbnN0YW5jZSB8fCAkLmluQXJyYXkob3B0aW9ucywgdGhpc01ldGhvZHMpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHMgZm9yIERhdGVUaW1lUGlja2VyOiAnICsgb3B0aW9ucyk7XG4gICAgfTtcblxuICAgICQuZm4uZGF0ZXRpbWVwaWNrZXIuZGVmYXVsdHMgPSB7XG4gICAgICAgIHRpbWVab25lOiAnJyxcbiAgICAgICAgZm9ybWF0OiBmYWxzZSxcbiAgICAgICAgZGF5Vmlld0hlYWRlckZvcm1hdDogJ01NTU0gWVlZWScsXG4gICAgICAgIGV4dHJhRm9ybWF0czogZmFsc2UsXG4gICAgICAgIHN0ZXBwaW5nOiAxLFxuICAgICAgICBtaW5EYXRlOiBmYWxzZSxcbiAgICAgICAgbWF4RGF0ZTogZmFsc2UsXG4gICAgICAgIHVzZUN1cnJlbnQ6IHRydWUsXG4gICAgICAgIGNvbGxhcHNlOiB0cnVlLFxuICAgICAgICBsb2NhbGU6IG1vbWVudC5sb2NhbGUoKSxcbiAgICAgICAgZGVmYXVsdERhdGU6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZERhdGVzOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlZERhdGVzOiBmYWxzZSxcbiAgICAgICAgaWNvbnM6IHtcbiAgICAgICAgICAgIHRpbWU6ICdnbHlwaGljb24gZ2x5cGhpY29uLXRpbWUnLFxuICAgICAgICAgICAgZGF0ZTogJ2dseXBoaWNvbiBnbHlwaGljb24tY2FsZW5kYXInLFxuICAgICAgICAgICAgdXA6ICdnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tdXAnLFxuICAgICAgICAgICAgZG93bjogJ2dseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi1kb3duJyxcbiAgICAgICAgICAgIHByZXZpb3VzOiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLWxlZnQnLFxuICAgICAgICAgICAgbmV4dDogJ2dseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi1yaWdodCcsXG4gICAgICAgICAgICB0b2RheTogJ2dseXBoaWNvbiBnbHlwaGljb24tc2NyZWVuc2hvdCcsXG4gICAgICAgICAgICBjbGVhcjogJ2dseXBoaWNvbiBnbHlwaGljb24tdHJhc2gnLFxuICAgICAgICAgICAgY2xvc2U6ICdnbHlwaGljb24gZ2x5cGhpY29uLXJlbW92ZSdcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcHM6IHtcbiAgICAgICAgICAgIHRvZGF5OiAnR28gdG8gdG9kYXknLFxuICAgICAgICAgICAgY2xlYXI6ICdDbGVhciBzZWxlY3Rpb24nLFxuICAgICAgICAgICAgY2xvc2U6ICdDbG9zZSB0aGUgcGlja2VyJyxcbiAgICAgICAgICAgIHNlbGVjdE1vbnRoOiAnU2VsZWN0IE1vbnRoJyxcbiAgICAgICAgICAgIHByZXZNb250aDogJ1ByZXZpb3VzIE1vbnRoJyxcbiAgICAgICAgICAgIG5leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgICAgICAgICAgc2VsZWN0WWVhcjogJ1NlbGVjdCBZZWFyJyxcbiAgICAgICAgICAgIHByZXZZZWFyOiAnUHJldmlvdXMgWWVhcicsXG4gICAgICAgICAgICBuZXh0WWVhcjogJ05leHQgWWVhcicsXG4gICAgICAgICAgICBzZWxlY3REZWNhZGU6ICdTZWxlY3QgRGVjYWRlJyxcbiAgICAgICAgICAgIHByZXZEZWNhZGU6ICdQcmV2aW91cyBEZWNhZGUnLFxuICAgICAgICAgICAgbmV4dERlY2FkZTogJ05leHQgRGVjYWRlJyxcbiAgICAgICAgICAgIHByZXZDZW50dXJ5OiAnUHJldmlvdXMgQ2VudHVyeScsXG4gICAgICAgICAgICBuZXh0Q2VudHVyeTogJ05leHQgQ2VudHVyeScsXG4gICAgICAgICAgICBwaWNrSG91cjogJ1BpY2sgSG91cicsXG4gICAgICAgICAgICBpbmNyZW1lbnRIb3VyOiAnSW5jcmVtZW50IEhvdXInLFxuICAgICAgICAgICAgZGVjcmVtZW50SG91cjogJ0RlY3JlbWVudCBIb3VyJyxcbiAgICAgICAgICAgIHBpY2tNaW51dGU6ICdQaWNrIE1pbnV0ZScsXG4gICAgICAgICAgICBpbmNyZW1lbnRNaW51dGU6ICdJbmNyZW1lbnQgTWludXRlJyxcbiAgICAgICAgICAgIGRlY3JlbWVudE1pbnV0ZTogJ0RlY3JlbWVudCBNaW51dGUnLFxuICAgICAgICAgICAgcGlja1NlY29uZDogJ1BpY2sgU2Vjb25kJyxcbiAgICAgICAgICAgIGluY3JlbWVudFNlY29uZDogJ0luY3JlbWVudCBTZWNvbmQnLFxuICAgICAgICAgICAgZGVjcmVtZW50U2Vjb25kOiAnRGVjcmVtZW50IFNlY29uZCcsXG4gICAgICAgICAgICB0b2dnbGVQZXJpb2Q6ICdUb2dnbGUgUGVyaW9kJyxcbiAgICAgICAgICAgIHNlbGVjdFRpbWU6ICdTZWxlY3QgVGltZSdcbiAgICAgICAgfSxcbiAgICAgICAgdXNlU3RyaWN0OiBmYWxzZSxcbiAgICAgICAgc2lkZUJ5U2lkZTogZmFsc2UsXG4gICAgICAgIGRheXNPZldlZWtEaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNhbGVuZGFyV2Vla3M6IGZhbHNlLFxuICAgICAgICB2aWV3TW9kZTogJ2RheXMnLFxuICAgICAgICB0b29sYmFyUGxhY2VtZW50OiAnZGVmYXVsdCcsXG4gICAgICAgIHNob3dUb2RheUJ1dHRvbjogZmFsc2UsXG4gICAgICAgIHNob3dDbGVhcjogZmFsc2UsXG4gICAgICAgIHNob3dDbG9zZTogZmFsc2UsXG4gICAgICAgIHdpZGdldFBvc2l0aW9uaW5nOiB7XG4gICAgICAgICAgICBob3Jpem9udGFsOiAnYXV0bycsXG4gICAgICAgICAgICB2ZXJ0aWNhbDogJ2F1dG8nXG4gICAgICAgIH0sXG4gICAgICAgIHdpZGdldFBhcmVudDogbnVsbCxcbiAgICAgICAgaWdub3JlUmVhZG9ubHk6IGZhbHNlLFxuICAgICAgICBrZWVwT3BlbjogZmFsc2UsXG4gICAgICAgIGZvY3VzT25TaG93OiB0cnVlLFxuICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICBrZWVwSW52YWxpZDogZmFsc2UsXG4gICAgICAgIGRhdGVwaWNrZXJJbnB1dDogJy5kYXRlcGlja2VyaW5wdXQnLFxuICAgICAgICBrZXlCaW5kczoge1xuICAgICAgICAgICAgdXA6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KDcsICdkJykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuYWRkKHRoaXMuc3RlcHBpbmcoKSwgJ20nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRvd246IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoNywgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5zdWJ0cmFjdCh0aGlzLnN0ZXBwaW5nKCksICdtJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnY29udHJvbCB1cCc6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KDEsICd5JykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuYWRkKDEsICdoJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnY29udHJvbCBkb3duJzogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuYWRkKDEsICd5JykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ2gnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlZnQ6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KDEsICdkJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByaWdodDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuYWRkKDEsICdkJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYWdlVXA6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KDEsICdNJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYWdlRG93bjogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuYWRkKDEsICdNJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbnRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXNjYXBlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyB0YWI6IGZ1bmN0aW9uICh3aWRnZXQpIHsgLy90aGlzIGJyZWFrIHRoZSBmbG93IG9mIHRoZSBmb3JtLiBkaXNhYmxpbmcgZm9yIG5vd1xuICAgICAgICAgICAgLy8gICAgdmFyIHRvZ2dsZSA9IHdpZGdldC5maW5kKCcucGlja2VyLXN3aXRjaCBhW2RhdGEtYWN0aW9uPVwidG9nZ2xlUGlja2VyXCJdJyk7XG4gICAgICAgICAgICAvLyAgICBpZih0b2dnbGUubGVuZ3RoID4gMCkgdG9nZ2xlLmNsaWNrKCk7XG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgJ2NvbnRyb2wgc3BhY2UnOiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLmJ0bltkYXRhLWFjdGlvbj1cInRvZ2dsZVBlcmlvZFwiXScpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSh0aGlzLmdldE1vbWVudCgpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnZGVsZXRlJzogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgIGFsbG93SW5wdXRUb2dnbGU6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZFRpbWVJbnRlcnZhbHM6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZEhvdXJzOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlZEhvdXJzOiBmYWxzZSxcbiAgICAgICAgdmlld0RhdGU6IGZhbHNlXG4gICAgfTtcblxuICAgIHJldHVybiAkLmZuLmRhdGV0aW1lcGlja2VyO1xufSkpO1xuIl0sIm5hbWVzIjpbImZhY3RvcnkiLCJkZWZpbmUiLCJhbWQiLCJleHBvcnRzIiwibW9kdWxlIiwicmVxdWlyZSIsImpRdWVyeSIsIkVycm9yIiwibW9tZW50IiwiJCIsImRhdGVUaW1lUGlja2VyIiwiZWxlbWVudCIsIm9wdGlvbnMiLCJwaWNrZXIiLCJkYXRlIiwidmlld0RhdGUiLCJ1bnNldCIsImlucHV0IiwiY29tcG9uZW50Iiwid2lkZ2V0IiwidXNlMjRIb3VycyIsIm1pblZpZXdNb2RlTnVtYmVyIiwiYWN0dWFsRm9ybWF0IiwicGFyc2VGb3JtYXRzIiwiY3VycmVudFZpZXdNb2RlIiwiZGF0ZVBpY2tlck1vZGVzIiwiY2xzTmFtZSIsIm5hdkZuYyIsIm5hdlN0ZXAiLCJ2aWV3TW9kZXMiLCJ2ZXJ0aWNhbE1vZGVzIiwiaG9yaXpvbnRhbE1vZGVzIiwidG9vbGJhclBsYWNlbWVudHMiLCJrZXlNYXAiLCJrZXlTdGF0ZSIsImhhc1RpbWVab25lIiwidHoiLCJ1bmRlZmluZWQiLCJ0aW1lWm9uZSIsImdldE1vbWVudCIsImQiLCJyZXR1cm5Nb21lbnQiLCJpc0RhdGUiLCJpc01vbWVudCIsInVzZVN0cmljdCIsImlzRW5hYmxlZCIsImdyYW51bGFyaXR5IiwibGVuZ3RoIiwiVHlwZUVycm9yIiwiaW5kZXhPZiIsInRvTG93ZXJDYXNlIiwiaGFzVGltZSIsImhhc0RhdGUiLCJnZXREYXRlUGlja2VyVGVtcGxhdGUiLCJoZWFkVGVtcGxhdGUiLCJhcHBlbmQiLCJhZGRDbGFzcyIsImF0dHIiLCJpY29ucyIsInByZXZpb3VzIiwiY2FsZW5kYXJXZWVrcyIsIm5leHQiLCJjb250VGVtcGxhdGUiLCJjbG9uZSIsImdldFRpbWVQaWNrZXJNYWluVGVtcGxhdGUiLCJ0b3BSb3ciLCJtaWRkbGVSb3ciLCJib3R0b21Sb3ciLCJocmVmIiwidGFiaW5kZXgiLCJ0b29sdGlwcyIsImluY3JlbWVudEhvdXIiLCJ1cCIsInBpY2tIb3VyIiwiZGVjcmVtZW50SG91ciIsImRvd24iLCJodG1sIiwiaW5jcmVtZW50TWludXRlIiwicGlja01pbnV0ZSIsImRlY3JlbWVudE1pbnV0ZSIsImluY3JlbWVudFNlY29uZCIsInBpY2tTZWNvbmQiLCJkZWNyZW1lbnRTZWNvbmQiLCJ0b2dnbGVQZXJpb2QiLCJnZXRUaW1lUGlja2VyVGVtcGxhdGUiLCJob3Vyc1ZpZXciLCJtaW51dGVzVmlldyIsInNlY29uZHNWaWV3IiwicmV0IiwicHVzaCIsImdldFRvb2xiYXIiLCJyb3ciLCJzaG93VG9kYXlCdXR0b24iLCJ0b2RheSIsInNpZGVCeVNpZGUiLCJzZWxlY3RUaW1lIiwidGltZSIsInNob3dDbGVhciIsImNsZWFyIiwic2hvd0Nsb3NlIiwiY2xvc2UiLCJnZXRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiZGF0ZVZpZXciLCJ0aW1lVmlldyIsImNvbnRlbnQiLCJ0b29sYmFyIiwiY29sbGFwc2UiLCJpbmxpbmUiLCJyZW1vdmVDbGFzcyIsInRvb2xiYXJQbGFjZW1lbnQiLCJkYXRhVG9PcHRpb25zIiwiZURhdGEiLCJkYXRhT3B0aW9ucyIsImlzIiwiZGF0YSIsImZpbmQiLCJkYXRlT3B0aW9ucyIsIk9iamVjdCIsImV4dGVuZCIsImVhY2giLCJrZXkiLCJhdHRyaWJ1dGVOYW1lIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInBsYWNlIiwicG9zaXRpb24iLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsIndpZGdldFBvc2l0aW9uaW5nIiwiaG9yaXpvbnRhbCIsInBhcmVudCIsIndpZGdldFBhcmVudCIsImFmdGVyIiwiY2hpbGRyZW4iLCJmaXJzdCIsInRvcCIsImhlaWdodCIsIndpbmRvdyIsInNjcm9sbFRvcCIsIm91dGVySGVpZ2h0Iiwid2lkdGgiLCJsZWZ0Iiwib3V0ZXJXaWR0aCIsImNzcyIsInBhcmVudHMiLCJmaWx0ZXIiLCJib3R0b20iLCJyaWdodCIsIm5vdGlmeUV2ZW50IiwiZSIsInR5cGUiLCJpc1NhbWUiLCJvbGREYXRlIiwidHJpZ2dlciIsInZpZXdVcGRhdGUiLCJjaGFuZ2UiLCJzaG93TW9kZSIsImRpciIsIk1hdGgiLCJtYXgiLCJtaW4iLCJoaWRlIiwic2hvdyIsImZpbGxEb3ciLCJjdXJyZW50RGF0ZSIsInN0YXJ0T2YiLCJ0ZXh0IiwiaXNCZWZvcmUiLCJlbmRPZiIsImZvcm1hdCIsImFkZCIsImlzSW5EaXNhYmxlZERhdGVzIiwidGVzdERhdGUiLCJkaXNhYmxlZERhdGVzIiwiaXNJbkVuYWJsZWREYXRlcyIsImVuYWJsZWREYXRlcyIsImlzSW5EaXNhYmxlZEhvdXJzIiwiZGlzYWJsZWRIb3VycyIsImlzSW5FbmFibGVkSG91cnMiLCJlbmFibGVkSG91cnMiLCJpc1ZhbGlkIiwidGFyZ2V0TW9tZW50IiwibWluRGF0ZSIsIm1heERhdGUiLCJpc0FmdGVyIiwiZGF5c09mV2Vla0Rpc2FibGVkIiwiZGF5IiwiZGlzYWJsZWRUaW1lSW50ZXJ2YWxzIiwiZm91bmQiLCJpc0JldHdlZW4iLCJmaWxsTW9udGhzIiwic3BhbnMiLCJtb250aHNTaG9ydCIsImVtcHR5IiwidXBkYXRlTW9udGhzIiwibW9udGhzVmlldyIsIm1vbnRoc1ZpZXdIZWFkZXIiLCJtb250aHMiLCJlcSIsInByZXZZZWFyIiwic2VsZWN0WWVhciIsIm5leHRZZWFyIiwic3VidHJhY3QiLCJ5ZWFyIiwibW9udGgiLCJpbmRleCIsInVwZGF0ZVllYXJzIiwieWVhcnNWaWV3IiwieWVhcnNWaWV3SGVhZGVyIiwic3RhcnRZZWFyIiwiZW5kWWVhciIsInByZXZEZWNhZGUiLCJzZWxlY3REZWNhZGUiLCJuZXh0RGVjYWRlIiwidXBkYXRlRGVjYWRlcyIsImRlY2FkZXNWaWV3IiwiZGVjYWRlc1ZpZXdIZWFkZXIiLCJzdGFydERlY2FkZSIsInkiLCJlbmREZWNhZGUiLCJzdGFydGVkQXQiLCJtaW5EYXRlRGVjYWRlIiwibWF4RGF0ZURlY2FkZSIsImVuZERlY2FkZVllYXIiLCJwcmV2Q2VudHVyeSIsIm5leHRDZW50dXJ5IiwiZmlsbERhdGUiLCJkYXlzVmlldyIsImRheXNWaWV3SGVhZGVyIiwiY2xzTmFtZXMiLCJpIiwicHJldk1vbnRoIiwic2VsZWN0TW9udGgiLCJuZXh0TW9udGgiLCJkYXlWaWV3SGVhZGVyRm9ybWF0Iiwid2Vla2RheSIsIndlZWsiLCJjbGFzc05hbWVzIiwiam9pbiIsImZpbGxIb3VycyIsInRhYmxlIiwiY3VycmVudEhvdXIiLCJob3VyIiwiZmlsbE1pbnV0ZXMiLCJjdXJyZW50TWludXRlIiwic3RlcCIsInN0ZXBwaW5nIiwibWludXRlIiwiZmlsbFNlY29uZHMiLCJjdXJyZW50U2Vjb25kIiwic2Vjb25kIiwiZmlsbFRpbWUiLCJ0b2dnbGUiLCJuZXdEYXRlIiwidGltZUNvbXBvbmVudHMiLCJob3VycyIsInVwZGF0ZSIsInNldFZhbHVlIiwidmFsIiwibG9jYWxlIiwibWludXRlcyIsInJvdW5kIiwic2Vjb25kcyIsImtlZXBJbnZhbGlkIiwidHJhbnNpdGlvbmluZyIsImNvbGxhcHNlRGF0YSIsImhhc0NsYXNzIiwidG9nZ2xlQ2xhc3MiLCJvZmYiLCJyZW1vdmUiLCJibHVyIiwicGFyc2VJbnB1dERhdGUiLCJpbnB1dERhdGUiLCJEYXRlIiwiYWN0aW9ucyIsInBpY2tlclN3aXRjaCIsInRhcmdldCIsImNsb3Nlc3QiLCJwYXJzZUludCIsInNlbGVjdERheSIsImtlZXBPcGVuIiwiaW5jcmVtZW50SG91cnMiLCJpbmNyZW1lbnRNaW51dGVzIiwiaW5jcmVtZW50U2Vjb25kcyIsImRlY3JlbWVudEhvdXJzIiwiZGVjcmVtZW50TWludXRlcyIsImRlY3JlbWVudFNlY29uZHMiLCJ0b2dnbGVQaWNrZXIiLCIkdGhpcyIsIiRwYXJlbnQiLCJleHBhbmRlZCIsImNsb3NlZCIsInNob3dQaWNrZXIiLCJzaG93SG91cnMiLCJzaG93TWludXRlcyIsInNob3dTZWNvbmRzIiwic2VsZWN0SG91ciIsImNhbGwiLCJzZWxlY3RNaW51dGUiLCJzZWxlY3RTZWNvbmQiLCJ0b2RheXNEYXRlIiwiZG9BY3Rpb24iLCJjdXJyZW50VGFyZ2V0IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjdXJyZW50TW9tZW50IiwidXNlQ3VycmVudEdyYW51bGFyaXR5IiwibSIsInByb3AiLCJpZ25vcmVSZWFkb25seSIsInRyaW0iLCJ1c2VDdXJyZW50Iiwib24iLCJmb2N1c09uU2hvdyIsImZvY3VzIiwia2V5ZG93biIsImhhbmRsZXIiLCJpbmRleDIiLCJwcmVzc2VkS2V5cyIsInByZXNzZWRNb2RpZmllcnMiLCJjdXJyZW50S2V5Iiwid2hpY2giLCJrZXlCaW5kS2V5cyIsImFsbE1vZGlmaWVyc1ByZXNzZWQiLCJwcmVzc2VkIiwiaGFzT3duUHJvcGVydHkiLCJrZXlCaW5kcyIsInNwbGl0Iiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJrZXl1cCIsInBhcnNlZERhdGUiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJhdHRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyIsImRlYnVnIiwiYWxsb3dJbnB1dFRvZ2dsZSIsImRldGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzIiwiaW5kZXhHaXZlbkRhdGVzIiwiZ2l2ZW5EYXRlc0FycmF5IiwiZ2l2ZW5EYXRlc0luZGV4ZWQiLCJkRGF0ZSIsImtleXMiLCJpbmRleEdpdmVuSG91cnMiLCJnaXZlbkhvdXJzQXJyYXkiLCJnaXZlbkhvdXJzSW5kZXhlZCIsImluaXRGb3JtYXR0aW5nIiwicmVwbGFjZSIsImZvcm1hdElucHV0IiwibmV3aW5wdXQiLCJsb2NhbGVEYXRhIiwibG9uZ0RhdGVGb3JtYXQiLCJmb3JtYXRJbnB1dDIiLCJleHRyYUZvcm1hdHMiLCJkZXN0cm95IiwicmVtb3ZlRGF0YSIsImRpc2FibGUiLCJlbmFibGUiLCJuZXdPcHRpb25zIiwidmFsdWUiLCJuZXdGb3JtYXQiLCJuZXdab25lIiwiZm9ybWF0cyIsIkFycmF5IiwiZGF0ZXMiLCJzcGxpY2UiLCJyZWR1Y2UiLCJwcmV2aW91c1ZhbHVlIiwiY3VycmVudFZhbHVlIiwiaXNOYU4iLCJzb3J0IiwidHJpZXMiLCJkZWZhdWx0RGF0ZSIsInVzZUN1cnJlbnRPcHRpb25zIiwidmlld01vZGUiLCJ0b1N0cmluZyIsImRhdGVwaWNrZXJJbnB1dCIsImZuIiwiZGF0ZXRpbWVwaWNrZXIiLCJhcmdzIiwicHJvdG90eXBlIiwiaXNJbnN0YW5jZSIsInRoaXNNZXRob2RzIiwicmV0dXJuVmFsdWUiLCJfb3B0aW9ucyIsImRlZmF1bHRzIiwiaW5zdGFuY2UiLCJpbkFycmF5IiwicGFnZVVwIiwicGFnZURvd24iLCJlbnRlciIsImVzY2FwZSIsImNsaWNrIiwidCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-datetimepicker.js\n");
/***/ }),
/***/ "./app/utils/bootstrap-dropdown.js":
/*!*****************************************!*\
!*** ./app/utils/bootstrap-dropdown.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict'; // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop';\n var toggle = '[data-toggle=\"dropdown\"]';\n\n var Dropdown = function Dropdown(element) {\n $(element).on('click.bs.dropdown', this.toggle);\n };\n\n Dropdown.VERSION = '3.4.1';\n\n function getParent($this) {\n var selector = $this.attr('data-target');\n\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null;\n return $parent && $parent.length ? $parent : $this.parent();\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) {\n return;\n }\n\n $(backdrop).remove();\n $(toggle).each(function () {\n var $this = $(this);\n var $parent = getParent($this);\n var relatedTarget = {\n relatedTarget: this\n };\n\n if (!$parent.hasClass('open')) {\n return;\n }\n\n if (e && e.type === 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) {\n return;\n }\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) {\n return;\n }\n\n $this.attr('aria-expanded', 'false');\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget));\n });\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this);\n\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n clearMenus();\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus);\n }\n\n var relatedTarget = {\n relatedTarget: this\n };\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) {\n return;\n }\n\n $this.trigger('focus').attr('aria-expanded', 'true');\n $parent.toggleClass('open').trigger($.Event('shown.bs.dropdown', relatedTarget));\n }\n\n return false;\n };\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;\n var $this = $(this);\n e.preventDefault();\n e.stopPropagation();\n\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n\n if (!isActive && e.which !== 27 || isActive && e.which === 27) {\n if (e.which === 27) {\n $parent.find(toggle).trigger('focus');\n }\n\n return $this.trigger('click');\n }\n\n var desc = ' li:not(.disabled):visible a';\n var $items = $parent.find('.dropdown-menu' + desc);\n\n if (!$items.length) {\n return;\n }\n\n var index = $items.index(e.target);\n\n if (e.which === 38 && index > 0) {\n index--;\n } // up\n\n\n if (e.which === 40 && index < $items.length - 1) {\n index++;\n } // down\n\n\n if (!~index) {\n index = 0;\n }\n\n $items.eq(index).trigger('focus');\n }; // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.dropdown');\n if (!data) $this.data('bs.dropdown', data = new Dropdown(this));\n if (typeof option === 'string') data[option].call($this);\n });\n }\n\n var old = $.fn.dropdown;\n $.fn.dropdown = Plugin;\n $.fn.dropdown.Constructor = Dropdown; // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old;\n return this;\n }; // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n\n $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) {\n e.stopPropagation();\n }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YWRiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQm9vdHN0cmFwOiBkcm9wZG93bi5qcyB2My40LjFcbiAqIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzMuNC9qYXZhc2NyaXB0LyNkcm9wZG93bnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL3YzLWRldi9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbisoZnVuY3Rpb24oJCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIERST1BET1dOIENMQVNTIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBjb25zdCBiYWNrZHJvcCA9ICcuZHJvcGRvd24tYmFja2Ryb3AnO1xuICAgIGNvbnN0IHRvZ2dsZSA9ICdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXSc7XG4gICAgY29uc3QgRHJvcGRvd24gPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICQoZWxlbWVudCkub24oJ2NsaWNrLmJzLmRyb3Bkb3duJywgdGhpcy50b2dnbGUpO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5WRVJTSU9OID0gJzMuNC4xJztcblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudCgkdGhpcykge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpO1xuXG4gICAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBzZWxlY3RvciAhPT0gJyMnID8gJChkb2N1bWVudCkuZmluZChzZWxlY3RvcikgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFyTWVudXMoZSkge1xuICAgICAgICBpZiAoZSAmJiBlLndoaWNoID09PSAzKSB7IHJldHVybjsgfVxuICAgICAgICAkKGJhY2tkcm9wKS5yZW1vdmUoKTtcbiAgICAgICAgJCh0b2dnbGUpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBjb25zdCAkcGFyZW50ID0gZ2V0UGFyZW50KCR0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcblxuICAgICAgICAgICAgaWYgKCEkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChlICYmIGUudHlwZSA9PT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUuYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG5cbiAgICAgICAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcigkLkV2ZW50KCdoaWRkZW4uYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29uc3QgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpO1xuXG4gICAgICAgIGNsZWFyTWVudXMoKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbW9iaWxlIHdlIHVzZSBhIGJhY2tkcm9wIGJlY2F1c2UgY2xpY2sgZXZlbnRzIGRvbid0IGRlbGVnYXRlXG4gICAgICAgICAgICAgICAgJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdkcm9wZG93bi1iYWNrZHJvcCcpXG4gICAgICAgICAgICAgICAgICAgIC5pbnNlcnRBZnRlcigkKHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgY2xlYXJNZW51cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcbiAgICAgICAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnc2hvdy5icy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcblxuICAgICAgICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICR0aGlzXG4gICAgICAgICAgICAgICAgLnRyaWdnZXIoJ2ZvY3VzJylcbiAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG5cbiAgICAgICAgICAgICRwYXJlbnRcbiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoJ29wZW4nKVxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCQuRXZlbnQoJ3Nob3duLmJzLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKCEvKDM4fDQwfDI3fDMyKS8udGVzdChlLndoaWNoKSB8fCAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlICYmIGUud2hpY2ggIT09IDI3IHx8IGlzQWN0aXZlICYmIGUud2hpY2ggPT09IDI3KSB7XG4gICAgICAgICAgICBpZiAoZS53aGljaCA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAkcGFyZW50LmZpbmQodG9nZ2xlKS50cmlnZ2VyKCdmb2N1cycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJHRoaXMudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlc2MgPSAnIGxpOm5vdCguZGlzYWJsZWQpOnZpc2libGUgYSc7XG4gICAgICAgIGNvbnN0ICRpdGVtcyA9ICRwYXJlbnQuZmluZCgnLmRyb3Bkb3duLW1lbnUnICsgZGVzYyk7XG5cbiAgICAgICAgaWYgKCEkaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaW5kZXggPSAkaXRlbXMuaW5kZXgoZS50YXJnZXQpO1xuXG4gICAgICAgIGlmIChlLndoaWNoID09PSAzOCAmJiBpbmRleCA+IDApIHsgaW5kZXgtLTsgfSAvLyB1cFxuICAgICAgICBpZiAoZS53aGljaCA9PT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgeyBpbmRleCsrOyB9IC8vIGRvd25cbiAgICAgICAgaWYgKCF+aW5kZXgpIHsgaW5kZXggPSAwOyB9XG5cbiAgICAgICAgJGl0ZW1zLmVxKGluZGV4KS50cmlnZ2VyKCdmb2N1cycpO1xuICAgIH07XG5cbiAgICAvLyBEUk9QRE9XTiBQTFVHSU4gREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBsZXQgZGF0YSA9ICR0aGlzLmRhdGEoJ2JzLmRyb3Bkb3duJyk7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnYnMuZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZCA9ICQuZm4uZHJvcGRvd247XG5cbiAgICAkLmZuLmRyb3Bkb3duID0gUGx1Z2luO1xuICAgICQuZm4uZHJvcGRvd24uQ29uc3RydWN0b3IgPSBEcm9wZG93bjtcblxuICAgIC8vIERST1BET1dOIE5PIENPTkZMSUNUXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT1cblxuICAgICQuZm4uZHJvcGRvd24ubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAkLmZuLmRyb3Bkb3duID0gb2xkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgJChkb2N1bWVudClcbiAgICAgICAgLm9uKCdjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaScsIGNsZWFyTWVudXMpXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbihlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IH0pXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUpXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKTtcbn0oalF1ZXJ5KSk7XG4iXSwibmFtZXMiOlsialF1ZXJ5IiwiJCIsImJhY2tkcm9wIiwidG9nZ2xlIiwiRHJvcGRvd24iLCJlbGVtZW50Iiwib24iLCJWRVJTSU9OIiwiZ2V0UGFyZW50IiwiJHRoaXMiLCJzZWxlY3RvciIsImF0dHIiLCJ0ZXN0IiwicmVwbGFjZSIsIiRwYXJlbnQiLCJkb2N1bWVudCIsImZpbmQiLCJsZW5ndGgiLCJwYXJlbnQiLCJjbGVhck1lbnVzIiwiZSIsIndoaWNoIiwicmVtb3ZlIiwiZWFjaCIsInJlbGF0ZWRUYXJnZXQiLCJoYXNDbGFzcyIsInR5cGUiLCJ0YXJnZXQiLCJ0YWdOYW1lIiwiY29udGFpbnMiLCJ0cmlnZ2VyIiwiRXZlbnQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJyZW1vdmVDbGFzcyIsInByb3RvdHlwZSIsImlzIiwiaXNBY3RpdmUiLCJkb2N1bWVudEVsZW1lbnQiLCJjbG9zZXN0IiwiY3JlYXRlRWxlbWVudCIsImFkZENsYXNzIiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImRlc2MiLCIkaXRlbXMiLCJpbmRleCIsImVxIiwiUGx1Z2luIiwib3B0aW9uIiwiZGF0YSIsImNhbGwiLCJvbGQiLCJmbiIsImRyb3Bkb3duIiwiQ29uc3RydWN0b3IiLCJub0NvbmZsaWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-dropdown.js\n");
/***/ }),
/***/ "./app/utils/bootstrap-transition.js":
/*!*******************************************!*\
!*** ./app/utils/bootstrap-transition.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n+function ($) {\n 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap');\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return {\n end: transEndEventNames[name]\n };\n }\n }\n\n return false; // explicit for ie8 ( ._.)\n } // http://blog.alexmaccaw.com/css-transitions\n\n\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false;\n var $el = this;\n $(this).one('bsTransitionEnd', function () {\n called = true;\n });\n\n var callback = function callback() {\n if (!called) $($el).trigger($.support.transition.end);\n };\n\n setTimeout(callback, duration);\n return this;\n };\n\n $(function () {\n $.support.transition = transitionEnd();\n if (!$.support.transition) return;\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function handle(e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);\n }\n };\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvYm9vdHN0cmFwLXRyYW5zaXRpb24uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQSxDQUFFLFVBQVNDLENBQVQsRUFBWTtBQUNWLGVBRFUsQ0FHVjtBQUNBOztBQUVBLFdBQVNDLGFBQVQsR0FBeUI7QUFDckIsUUFBSUMsRUFBRSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsV0FBdkIsQ0FBVDtBQUVBLFFBQUlDLGtCQUFrQixHQUFHO0FBQ3JCQyxNQUFBQSxnQkFBZ0IsRUFBRSxxQkFERztBQUVyQkMsTUFBQUEsYUFBYSxFQUFFLGVBRk07QUFHckJDLE1BQUFBLFdBQVcsRUFBRSwrQkFIUTtBQUlyQkMsTUFBQUEsVUFBVSxFQUFFO0FBSlMsS0FBekI7O0FBT0EsU0FBSyxJQUFJQyxJQUFULElBQWlCTCxrQkFBakIsRUFBcUM7QUFDakMsVUFBSUgsRUFBRSxDQUFDUyxLQUFILENBQVNELElBQVQsTUFBbUJFLFNBQXZCLEVBQWtDO0FBQzlCLGVBQU87QUFBRUMsVUFBQUEsR0FBRyxFQUFFUixrQkFBa0IsQ0FBQ0ssSUFBRDtBQUF6QixTQUFQO0FBQ0g7QUFDSjs7QUFFRCxXQUFPLEtBQVAsQ0FoQnFCLENBZ0JQO0FBQ2pCLEdBdkJTLENBeUJWOzs7QUFDQVYsRUFBQUEsQ0FBQyxDQUFDYyxFQUFGLENBQUtDLG9CQUFMLEdBQTRCLFVBQVNDLFFBQVQsRUFBbUI7QUFDM0MsUUFBSUMsTUFBTSxHQUFHLEtBQWI7QUFDQSxRQUFJQyxHQUFHLEdBQUcsSUFBVjtBQUNBbEIsSUFBQUEsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRbUIsR0FBUixDQUFZLGlCQUFaLEVBQStCLFlBQVc7QUFBRUYsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFBZ0IsS0FBNUQ7O0FBQ0EsUUFBSUcsUUFBUSxHQUFHLFNBQVhBLFFBQVcsR0FBVztBQUFFLFVBQUksQ0FBQ0gsTUFBTCxFQUFhakIsQ0FBQyxDQUFDa0IsR0FBRCxDQUFELENBQU9HLE9BQVAsQ0FBZXJCLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWIsVUFBVixDQUFxQkksR0FBcEM7QUFBMkMsS0FBcEY7O0FBQ0FVLElBQUFBLFVBQVUsQ0FBQ0gsUUFBRCxFQUFXSixRQUFYLENBQVY7QUFDQSxXQUFPLElBQVA7QUFDSCxHQVBEOztBQVNBaEIsRUFBQUEsQ0FBQyxDQUFDLFlBQVc7QUFDVEEsSUFBQUEsQ0FBQyxDQUFDc0IsT0FBRixDQUFVYixVQUFWLEdBQXVCUixhQUFhLEVBQXBDO0FBRUEsUUFBSSxDQUFDRCxDQUFDLENBQUNzQixPQUFGLENBQVViLFVBQWYsRUFBMkI7QUFFM0JULElBQUFBLENBQUMsQ0FBQ3dCLEtBQUYsQ0FBUUMsT0FBUixDQUFnQkMsZUFBaEIsR0FBa0M7QUFDOUJDLE1BQUFBLFFBQVEsRUFBRTNCLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWIsVUFBVixDQUFxQkksR0FERDtBQUU5QmUsTUFBQUEsWUFBWSxFQUFFNUIsQ0FBQyxDQUFDc0IsT0FBRixDQUFVYixVQUFWLENBQXFCSSxHQUZMO0FBRzlCZ0IsTUFBQUEsTUFBTSxFQUFFLGdCQUFTQyxDQUFULEVBQVk7QUFDaEIsWUFBSTlCLENBQUMsQ0FBQzhCLENBQUMsQ0FBQ0MsTUFBSCxDQUFELENBQVlDLEVBQVosQ0FBZSxJQUFmLENBQUosRUFBMEIsT0FBT0YsQ0FBQyxDQUFDRyxTQUFGLENBQVlDLE9BQVosQ0FBb0JDLEtBQXBCLENBQTBCLElBQTFCLEVBQWdDQyxTQUFoQyxDQUFQO0FBQzdCO0FBTDZCLEtBQWxDO0FBT0gsR0FaQSxDQUFEO0FBY0gsQ0FqREMsQ0FpREFyQywrQ0FqREEsQ0FBRiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvYm9vdHN0cmFwLXRyYW5zaXRpb24uanM/NmVhNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5cbisoZnVuY3Rpb24oJCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIENTUyBUUkFOU0lUSU9OIFNVUFBPUlQgKFNob3V0b3V0OiBodHRwOi8vd3d3Lm1vZGVybml6ci5jb20vKVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgZnVuY3Rpb24gdHJhbnNpdGlvbkVuZCgpIHtcbiAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYm9vdHN0cmFwJyk7XG5cbiAgICAgICAgdmFyIHRyYW5zRW5kRXZlbnROYW1lcyA9IHtcbiAgICAgICAgICAgIFdlYmtpdFRyYW5zaXRpb246ICd3ZWJraXRUcmFuc2l0aW9uRW5kJyxcbiAgICAgICAgICAgIE1velRyYW5zaXRpb246ICd0cmFuc2l0aW9uZW5kJyxcbiAgICAgICAgICAgIE9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25FbmQgb3RyYW5zaXRpb25lbmQnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiB0cmFuc0VuZEV2ZW50TmFtZXMpIHtcbiAgICAgICAgICAgIGlmIChlbC5zdHlsZVtuYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZW5kOiB0cmFuc0VuZEV2ZW50TmFtZXNbbmFtZV0gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTsgLy8gZXhwbGljaXQgZm9yIGllOCAoICAuXy4pXG4gICAgfVxuXG4gICAgLy8gaHR0cDovL2Jsb2cuYWxleG1hY2Nhdy5jb20vY3NzLXRyYW5zaXRpb25zXG4gICAgJC5mbi5lbXVsYXRlVHJhbnNpdGlvbkVuZCA9IGZ1bmN0aW9uKGR1cmF0aW9uKSB7XG4gICAgICAgIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdmFyICRlbCA9IHRoaXM7XG4gICAgICAgICQodGhpcykub25lKCdic1RyYW5zaXRpb25FbmQnLCBmdW5jdGlvbigpIHsgY2FsbGVkID0gdHJ1ZTsgfSk7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKCkgeyBpZiAoIWNhbGxlZCkgJCgkZWwpLnRyaWdnZXIoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKTsgfTtcbiAgICAgICAgc2V0VGltZW91dChjYWxsYmFjaywgZHVyYXRpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgJChmdW5jdGlvbigpIHtcbiAgICAgICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uRW5kKCk7XG5cbiAgICAgICAgaWYgKCEkLnN1cHBvcnQudHJhbnNpdGlvbikgcmV0dXJuO1xuXG4gICAgICAgICQuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQgPSB7XG4gICAgICAgICAgICBiaW5kVHlwZTogJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLFxuICAgICAgICAgICAgZGVsZWdhdGVUeXBlOiAkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsXG4gICAgICAgICAgICBoYW5kbGU6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhpcykpIHJldHVybiBlLmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSk7XG5cbn0oalF1ZXJ5KSk7XG4iXSwibmFtZXMiOlsialF1ZXJ5IiwiJCIsInRyYW5zaXRpb25FbmQiLCJlbCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInRyYW5zRW5kRXZlbnROYW1lcyIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwiT1RyYW5zaXRpb24iLCJ0cmFuc2l0aW9uIiwibmFtZSIsInN0eWxlIiwidW5kZWZpbmVkIiwiZW5kIiwiZm4iLCJlbXVsYXRlVHJhbnNpdGlvbkVuZCIsImR1cmF0aW9uIiwiY2FsbGVkIiwiJGVsIiwib25lIiwiY2FsbGJhY2siLCJ0cmlnZ2VyIiwic3VwcG9ydCIsInNldFRpbWVvdXQiLCJldmVudCIsInNwZWNpYWwiLCJic1RyYW5zaXRpb25FbmQiLCJiaW5kVHlwZSIsImRlbGVnYXRlVHlwZSIsImhhbmRsZSIsImUiLCJ0YXJnZXQiLCJpcyIsImhhbmRsZU9iaiIsImhhbmRsZXIiLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-transition.js\n");
/***/ }),
/***/ "./app/utils/changelog.js":
/*!********************************!*\
!*** ./app/utils/changelog.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable */\n\nvar TRIGGER = null;\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-changelog]', function (event) {\n TRIGGER = event.currentTarget;\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('opened', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('<div class=\"changelog-overflow center\" style=\"padding:5rem 0;text-align:center;\"><i class=\"fa fa-spinner fa-spin fa-3x fa-fw\"></i></div>');\n\n if (!TRIGGER) {\n return true;\n }\n\n var url = jquery__WEBPACK_IMPORTED_MODULE_0___default()(TRIGGER).data('remodalChangelog');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: url\n }).done(function (data) {\n instance.$modal.html(data);\n });\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closed', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvY2hhbmdlbG9nLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFFQSxJQUFJQyxPQUFPLEdBQUcsSUFBZDtBQUVBRCw2Q0FBQyxDQUFDRSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsMEJBQXhCLEVBQW9ELFVBQUNDLEtBQUQsRUFBVztBQUMzREgsRUFBQUEsT0FBTyxHQUFHRyxLQUFLLENBQUNDLGFBQWhCO0FBQ0gsQ0FGRDtBQUlBTCw2Q0FBQyxDQUFDRSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLFFBQWYsRUFBeUIsK0JBQXpCLEVBQTBELFlBQU07QUFDNUQsTUFBTUcsUUFBUSxHQUFHTiw4REFBQSxDQUFpQkEsNkNBQUMsQ0FBQyw2QkFBRCxDQUFELENBQWlDUyxJQUFqQyxDQUFzQyxTQUF0QyxDQUFqQixDQUFqQjtBQUNBSCxFQUFBQSxRQUFRLENBQUNJLE1BQVQsQ0FBZ0JDLElBQWhCLENBQXFCLDBJQUFyQjs7QUFDQSxNQUFJLENBQUNWLE9BQUwsRUFBYztBQUFFLFdBQU8sSUFBUDtBQUFjOztBQUU5QixNQUFNVyxHQUFHLEdBQUdaLDZDQUFDLENBQUNDLE9BQUQsQ0FBRCxDQUFXUSxJQUFYLENBQWdCLGtCQUFoQixDQUFaO0FBRUFULEVBQUFBLGtEQUFBLENBQU87QUFBQ1ksSUFBQUEsR0FBRyxFQUFFQTtBQUFOLEdBQVAsRUFBbUJFLElBQW5CLENBQXdCLFVBQVNMLElBQVQsRUFBZTtBQUNuQ0gsSUFBQUEsUUFBUSxDQUFDSSxNQUFULENBQWdCQyxJQUFoQixDQUFxQkYsSUFBckI7QUFDSCxHQUZEO0FBR0gsQ0FWRDtBQVlBVCw2Q0FBQyxDQUFDRSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLFFBQWYsRUFBeUIsK0JBQXpCLEVBQTBELFlBQU07QUFDNUQsTUFBTUcsUUFBUSxHQUFHTiw4REFBQSxDQUFpQkEsNkNBQUMsQ0FBQyw2QkFBRCxDQUFELENBQWlDUyxJQUFqQyxDQUFzQyxTQUF0QyxDQUFqQixDQUFqQjtBQUNBSCxFQUFBQSxRQUFRLENBQUNJLE1BQVQsQ0FBZ0JDLElBQWhCLENBQXFCLEVBQXJCO0FBQ0gsQ0FIRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvY2hhbmdlbG9nLmpzPzc2MWMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmxldCBUUklHR0VSID0gbnVsbDtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtY2hhbmdlbG9nXScsIChldmVudCkgPT4ge1xuICAgIFRSSUdHRVIgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdvcGVuZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnPGRpdiBjbGFzcz1cImNoYW5nZWxvZy1vdmVyZmxvdyBjZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6NXJlbSAwO3RleHQtYWxpZ246Y2VudGVyO1wiPjxpIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBmYS1zcGluIGZhLTN4IGZhLWZ3XCI+PC9pPjwvZGl2PicpO1xuICAgIGlmICghVFJJR0dFUikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgY29uc3QgdXJsID0gJChUUklHR0VSKS5kYXRhKCdyZW1vZGFsQ2hhbmdlbG9nJyk7XG5cbiAgICAkLmFqYXgoe3VybDogdXJsfSkuZG9uZShmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIGluc3RhbmNlLiRtb2RhbC5odG1sKGRhdGEpO1xuICAgIH0pO1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbG9zZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnJyk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiVFJJR0dFUiIsImRvY3VtZW50Iiwib24iLCJldmVudCIsImN1cnJlbnRUYXJnZXQiLCJpbnN0YW5jZSIsInJlbW9kYWwiLCJsb29rdXAiLCJkYXRhIiwiJG1vZGFsIiwiaHRtbCIsInVybCIsImFqYXgiLCJkb25lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/changelog.js\n");
/***/ }),
/***/ "./app/utils/colors.js":
/*!*****************************!*\
!*** ./app/utils/colors.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"parseHex\": () => (/* binding */ parseHex),\n/* harmony export */ \"hsb2rgb\": () => (/* binding */ hsb2rgb),\n/* harmony export */ \"rgb2hex\": () => (/* binding */ rgb2hex),\n/* harmony export */ \"rgbstr2hex\": () => (/* binding */ rgbstr2hex),\n/* harmony export */ \"hsb2hex\": () => (/* binding */ hsb2hex),\n/* harmony export */ \"hex2hsb\": () => (/* binding */ hex2hsb),\n/* harmony export */ \"rgb2hsb\": () => (/* binding */ rgb2hsb),\n/* harmony export */ \"hex2rgb\": () => (/* binding */ hex2rgb)\n/* harmony export */ });\n// Parses a string and returns a valid hex string when possible\n// parseHex('#fff') => '#ffffff'\nvar parseHex = function parseHex(string) {\n string = string.replace(/[^A-F0-9]/ig, '');\n if (string.length !== 3 && string.length !== 6) return '';\n\n if (string.length === 3) {\n string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];\n }\n\n return '#' + string.toLowerCase();\n}; // Converts an HSB object to an RGB object\n// hsb2rgb({h: 0, s: 0, b: 100}) => {r: 255, g: 255, b: 255}\n\nvar hsb2rgb = function hsb2rgb(hsb) {\n var rgb = {};\n var h = Math.round(hsb.h);\n var s = Math.round(hsb.s * 255 / 100);\n var v = Math.round(hsb.b * 255 / 100);\n\n if (s === 0) {\n rgb.r = rgb.g = rgb.b = v;\n } else {\n var t1 = v;\n var t2 = (255 - s) * v / 255;\n var t3 = (t1 - t2) * (h % 60) / 60;\n if (h === 360) h = 0;\n\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n } else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n } else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n } else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n } else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n } else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n } else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n\n return {\n r: Math.round(rgb.r),\n g: Math.round(rgb.g),\n b: Math.round(rgb.b)\n };\n}; // Converts an RGB object to a HEX string\n// rgb2hex({r: 255, g: 255, b: 255}) => #ffffff\n\nvar rgb2hex = function rgb2hex(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n hex.forEach(function (val, nr) {\n if (val.length === 1) hex[nr] = '0' + val;\n });\n return '#' + hex.join('');\n}; // Converts and RGB(a) string to a HEX string\n// rgbstr2hex('rgba(255, 255, 255, 0.5)') => #ffffff\n\nvar rgbstr2hex = function rgbstr2hex(rgb) {\n rgb = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n return rgb && rgb.length === 4 ? '#' + ('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';\n}; // Converts an HSB object to a HEX string\n// hsb2hex({h: 0, s: 0, b: 100}) => #ffffff\n\nvar hsb2hex = function hsb2hex(hsb) {\n return rgb2hex(hsb2rgb(hsb));\n}; // Converts a HEX string to an HSB object\n// hex2hsb('#ffffff') => {h: 0, s: 0, b: 100}\n\nvar hex2hsb = function hex2hsb(hex) {\n var hsb = rgb2hsb(hex2rgb(hex));\n if (hsb.s === 0) hsb.h = 360;\n return hsb;\n}; // Converts an RGB object to an HSB object\n// rgb2hsb({r: 255, g: 255, b: 255}) => {h: 0, s: 0, b: 100}\n\nvar rgb2hsb = function rgb2hsb(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max !== 0 ? 255 * delta / max : 0;\n\n if (hsb.s !== 0) {\n if (rgb.r === max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n } else if (rgb.g === max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n } else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n } else {\n hsb.h = -1;\n }\n\n hsb.h *= 60;\n\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n}; // Converts a HEX string to an RGB object\n// hex2rgb('#ffffff') => {r: 255, g: 255, b: 255}\n\nvar hex2rgb = function hex2rgb(hex) {\n hex = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return {\n /* jshint ignore:start */\n r: hex >> 16,\n g: (hex & 0x00FF00) >> 8,\n b: hex & 0x0000FF\n /* jshint ignore:end */\n\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UixHQUFHLENBQUNpQixPQUFKLENBQVksR0FBWixJQUFtQixDQUFDLENBQXJCLEdBQTBCakIsR0FBRyxDQUFDa0IsU0FBSixDQUFjLENBQWQsQ0FBMUIsR0FBNkNsQixHQUEvQyxFQUFxRCxFQUFyRCxDQUFkO0FBRUEsU0FBTztBQUNIO0FBQ0FOLElBQUFBLENBQUMsRUFBRU0sR0FBRyxJQUFJLEVBRlA7QUFHSEwsSUFBQUEsQ0FBQyxFQUFFLENBQUNLLEdBQUcsR0FBRyxRQUFQLEtBQW9CLENBSHBCO0FBSUhQLElBQUFBLENBQUMsRUFBR08sR0FBRyxHQUFHO0FBQ1Y7O0FBTEcsR0FBUDtBQU9ILENBVk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2NvbG9ycy5qcz9lMGE4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFBhcnNlcyBhIHN0cmluZyBhbmQgcmV0dXJucyBhIHZhbGlkIGhleCBzdHJpbmcgd2hlbiBwb3NzaWJsZVxuLy8gcGFyc2VIZXgoJyNmZmYnKSA9PiAnI2ZmZmZmZidcbmV4cG9ydCBjb25zdCBwYXJzZUhleCA9IChzdHJpbmcpID0+IHtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvW15BLUYwLTldL2lnLCAnJyk7XG4gICAgaWYgKHN0cmluZy5sZW5ndGggIT09IDMgJiYgc3RyaW5nLmxlbmd0aCAhPT0gNikgcmV0dXJuICcnO1xuICAgIGlmIChzdHJpbmcubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHN0cmluZyA9IHN0cmluZ1swXSArIHN0cmluZ1swXSArIHN0cmluZ1sxXSArIHN0cmluZ1sxXSArIHN0cmluZ1syXSArIHN0cmluZ1syXTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyMnICsgc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG59O1xuXG4vLyBDb252ZXJ0cyBhbiBIU0Igb2JqZWN0IHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhzYjJyZ2Ioe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fVxuZXhwb3J0IGNvbnN0IGhzYjJyZ2IgPSAoaHNiKSA9PiB7XG4gICAgbGV0IHJnYiA9IHt9O1xuICAgIGxldCBoID0gTWF0aC5yb3VuZChoc2IuaCk7XG4gICAgbGV0IHMgPSBNYXRoLnJvdW5kKGhzYi5zICogMjU1IC8gMTAwKTtcbiAgICBsZXQgdiA9IE1hdGgucm91bmQoaHNiLmIgKiAyNTUgLyAxMDApO1xuICAgIGlmIChzID09PSAwKSB7XG4gICAgICAgIHJnYi5yID0gcmdiLmcgPSByZ2IuYiA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHQxID0gdjtcbiAgICAgICAgdmFyIHQyID0gKDI1NSAtIHMpICogdiAvIDI1NTtcbiAgICAgICAgdmFyIHQzID0gKHQxIC0gdDIpICogKGggJSA2MCkgLyA2MDtcbiAgICAgICAgaWYgKGggPT09IDM2MCkgaCA9IDA7XG4gICAgICAgIGlmIChoIDwgNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxMjApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxODApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAyNDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzMDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmdiLnIgPSAwO1xuICAgICAgICAgICAgcmdiLmcgPSAwO1xuICAgICAgICAgICAgcmdiLmIgPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHI6IE1hdGgucm91bmQocmdiLnIpLFxuICAgICAgICBnOiBNYXRoLnJvdW5kKHJnYi5nKSxcbiAgICAgICAgYjogTWF0aC5yb3VuZChyZ2IuYilcbiAgICB9O1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIHJnYjJoZXgoe3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9KSA9PiAjZmZmZmZmXG5leHBvcnQgY29uc3QgcmdiMmhleCA9IChyZ2IpID0+IHtcbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICByZ2Iuci50b1N0cmluZygxNiksXG4gICAgICAgIHJnYi5nLnRvU3RyaW5nKDE2KSxcbiAgICAgICAgcmdiLmIudG9TdHJpbmcoMTYpXG4gICAgXTtcblxuICAgIGhleC5mb3JFYWNoKCh2YWwsIG5yKSA9PiB7XG4gICAgICAgIGlmICh2YWwubGVuZ3RoID09PSAxKSBoZXhbbnJdID0gJzAnICsgdmFsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICcjJyArIGhleC5qb2luKCcnKTtcbn07XG5cbi8vIENvbnZlcnRzIGFuZCBSR0IoYSkgc3RyaW5nIHRvIGEgSEVYIHN0cmluZ1xuLy8gcmdic3RyMmhleCgncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJykgPT4gI2ZmZmZmZlxuZXhwb3J0IGNvbnN0IHJnYnN0cjJoZXggPSAocmdiKSA9PiB7XG4gICAgcmdiID0gcmdiLm1hdGNoKC9ecmdiYT9bXFxzK10/XFwoW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8vaSk7XG5cbiAgICByZXR1cm4gKHJnYiAmJiByZ2IubGVuZ3RoID09PSA0KSA/ICcjJyArXG4gICAgKCcwJyArIHBhcnNlSW50KHJnYlsxXSwgMTApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpICtcbiAgICAoJzAnICsgcGFyc2VJbnQocmdiWzJdLCAxMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikgK1xuICAgICgnMCcgKyBwYXJzZUludChyZ2JbM10sIDEwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSA6ICcnO1xufTtcblxuLy8gQ29udmVydHMgYW4gSFNCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIGhzYjJoZXgoe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+ICNmZmZmZmZcbmV4cG9ydCBjb25zdCBoc2IyaGV4ID0gKGhzYikgPT4ge1xuICAgIHJldHVybiByZ2IyaGV4KGhzYjJyZ2IoaHNiKSk7XG59O1xuXG4vLyBDb252ZXJ0cyBhIEhFWCBzdHJpbmcgdG8gYW4gSFNCIG9iamVjdFxuLy8gaGV4MmhzYignI2ZmZmZmZicpID0+IHtoOiAwLCBzOiAwLCBiOiAxMDB9XG5leHBvcnQgY29uc3QgaGV4MmhzYiA9IChoZXgpID0+IHtcbiAgICBsZXQgaHNiID0gcmdiMmhzYihoZXgycmdiKGhleCkpO1xuICAgIGlmIChoc2IucyA9PT0gMCkgaHNiLmggPSAzNjA7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhbiBIU0Igb2JqZWN0XG4vLyByZ2IyaHNiKHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSkgPT4ge2g6IDAsIHM6IDAsIGI6IDEwMH1cbmV4cG9ydCBjb25zdCByZ2IyaHNiID0gKHJnYikgPT4ge1xuICAgIGxldCBoc2IgPSB7XG4gICAgICAgIGg6IDAsXG4gICAgICAgIHM6IDAsXG4gICAgICAgIGI6IDBcbiAgICB9O1xuICAgIGxldCBtaW4gPSBNYXRoLm1pbihyZ2IuciwgcmdiLmcsIHJnYi5iKTtcbiAgICBsZXQgbWF4ID0gTWF0aC5tYXgocmdiLnIsIHJnYi5nLCByZ2IuYik7XG4gICAgbGV0IGRlbHRhID0gbWF4IC0gbWluO1xuICAgIGhzYi5iID0gbWF4O1xuICAgIGhzYi5zID0gbWF4ICE9PSAwID8gMjU1ICogZGVsdGEgLyBtYXggOiAwO1xuICAgIGlmIChoc2IucyAhPT0gMCkge1xuICAgICAgICBpZiAocmdiLnIgPT09IG1heCkge1xuICAgICAgICAgICAgaHNiLmggPSAocmdiLmcgLSByZ2IuYikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIGlmIChyZ2IuZyA9PT0gbWF4KSB7XG4gICAgICAgICAgICBoc2IuaCA9IDIgKyAocmdiLmIgLSByZ2IucikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhzYi5oID0gNCArIChyZ2IuciAtIHJnYi5nKSAvIGRlbHRhO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaHNiLmggPSAtMTtcbiAgICB9XG4gICAgaHNiLmggKj0gNjA7XG4gICAgaWYgKGhzYi5oIDwgMCkge1xuICAgICAgICBoc2IuaCArPSAzNjA7XG4gICAgfVxuICAgIGhzYi5zICo9IDEwMCAvIDI1NTtcbiAgICBoc2IuYiAqPSAxMDAgLyAyNTU7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYSBIRVggc3RyaW5nIHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhleDJyZ2IoJyNmZmZmZmYnKSA9PiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX1cbmV4cG9ydCBjb25zdCBoZXgycmdiID0gKGhleCkgPT4ge1xuICAgIGhleCA9IHBhcnNlSW50KCgoaGV4LmluZGV4T2YoJyMnKSA+IC0xKSA/IGhleC5zdWJzdHJpbmcoMSkgOiBoZXgpLCAxNik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgICAgIHI6IGhleCA+PiAxNixcbiAgICAgICAgZzogKGhleCAmIDB4MDBGRjAwKSA+PiA4LFxuICAgICAgICBiOiAoaGV4ICYgMHgwMDAwRkYpXG4gICAgICAgIC8qIGpzaGludCBpZ25vcmU6ZW5kICovXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VIZXgiLCJzdHJpbmciLCJyZXBsYWNlIiwibGVuZ3RoIiwidG9Mb3dlckNhc2UiLCJoc2IycmdiIiwiaHNiIiwicmdiIiwiaCIsIk1hdGgiLCJyb3VuZCIsInMiLCJ2IiwiYiIsInIiLCJnIiwidDEiLCJ0MiIsInQzIiwicmdiMmhleCIsImhleCIsInRvU3RyaW5nIiwiZm9yRWFjaCIsInZhbCIsIm5yIiwiam9pbiIsInJnYnN0cjJoZXgiLCJtYXRjaCIsInBhcnNlSW50Iiwic2xpY2UiLCJoc2IyaGV4IiwiaGV4MmhzYiIsInJnYjJoc2IiLCJoZXgycmdiIiwibWluIiwibWF4IiwiZGVsdGEiLCJpbmRleE9mIiwic3Vic3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/colors.js\n");
/***/ }),
/***/ "./app/utils/cookies.js":
/*!******************************!*\
!*** ./app/utils/cookies.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\n * Cookies.js - 1.2.3-grav\n * https://github.com/ScottHamper/Cookies\n *\n * With SameSite support by Grav\n *\n * This is free and unencumbered software released into the public domain.\n */\nvar factory = function factory(window) {\n var _arguments = arguments;\n\n if (_typeof(window.document) !== 'object') {\n throw new Error('Cookies.js requires a `window` with a `document` object');\n }\n\n var Cookies = function Cookies(key, value, options) {\n return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options);\n }; // Allows for setter injection in unit tests\n\n\n Cookies._document = window.document; // Used to ensure cookie keys do not collide with\n // built-in `Object` properties\n\n Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)\n\n Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');\n Cookies.defaults = {\n path: '/',\n secure: false,\n sameSite: 'Lax'\n };\n\n Cookies.get = function (key) {\n if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) {\n Cookies._renewCache();\n }\n\n var value = Cookies._cache[Cookies._cacheKeyPrefix + key];\n return value === undefined ? undefined : decodeURIComponent(value);\n };\n\n Cookies.set = function (key, value, options) {\n options = Cookies._getExtendedOptions(options);\n options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires);\n Cookies._document.cookie = Cookies._generateCookieString(key, value, options);\n return Cookies;\n };\n\n Cookies.expire = function (key, options) {\n return Cookies.set(key, undefined, options);\n };\n\n Cookies._getExtendedOptions = function (options) {\n return {\n path: options && options.path || Cookies.defaults.path,\n domain: options && options.domain || Cookies.defaults.domain,\n expires: options && options.expires || Cookies.defaults.expires,\n secure: options && options.secure !== undefined ? options.secure : Cookies.defaults.secure,\n sameSite: options && options.sameSite || Cookies.defaults.sameSite\n };\n };\n\n Cookies._isValidDate = function (date) {\n return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n };\n\n Cookies._getExpiresDate = function (expires, now) {\n now = now || new Date();\n\n if (typeof expires === 'number') {\n expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);\n } else if (typeof expires === 'string') {\n expires = new Date(expires);\n }\n\n if (expires && !Cookies._isValidDate(expires)) {\n throw new Error('`expires` parameter cannot be converted to a valid Date instance');\n }\n\n return expires;\n };\n\n Cookies._generateCookieString = function (key, value, options) {\n key = key.replace(/[^#$&+\\^`|]/g, encodeURIComponent);\n key = key.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n value = (value + '').replace(/[^!#$&-+\\--:<-\\[\\]-~]/g, encodeURIComponent);\n options = options || {};\n var cookieString = key + '=' + value;\n cookieString += options.path ? ';path=' + options.path : '';\n cookieString += options.domain ? ';domain=' + options.domain : '';\n cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';\n cookieString += options.secure ? ';secure' : '';\n cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';\n return cookieString;\n };\n\n Cookies._getCacheFromString = function (documentCookie) {\n var cookieCache = {};\n var cookiesArray = documentCookie ? documentCookie.split('; ') : [];\n\n for (var i = 0; i < cookiesArray.length; i++) {\n var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);\n\n if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {\n cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;\n }\n }\n\n return cookieCache;\n };\n\n Cookies._getKeyValuePairFromCookieString = function (cookieString) {\n // \"=\" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`\n var separatorIndex = cookieString.indexOf('='); // IE omits the \"=\" when the cookie value is an empty string\n\n separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;\n var key = cookieString.substr(0, separatorIndex);\n var decodedKey;\n\n try {\n decodedKey = decodeURIComponent(key);\n } catch (e) {\n if (console && typeof console.error === 'function') {\n console.error('Could not decode cookie with key \"' + key + '\"', e);\n }\n }\n\n return {\n key: decodedKey,\n value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed\n\n };\n };\n\n Cookies._renewCache = function () {\n Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie);\n Cookies._cachedDocumentCookie = Cookies._document.cookie;\n };\n\n Cookies._areEnabled = function () {\n var testKey = 'cookies.js';\n var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1';\n Cookies.expire(testKey);\n return areEnabled;\n };\n\n Cookies.enabled = Cookies._areEnabled();\n return Cookies;\n};\n\n__webpack_require__.g.Cookies = __webpack_require__.g && _typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.g.Cookies);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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T0FBWixFQUFxQixDQUFyQixFQUF3QnBELEdBQXhCLENBQTRCb0QsT0FBNUIsTUFBeUMsR0FBNUQ7QUFDQTFELElBQUFBLE9BQU8sQ0FBQzBCLE1BQVIsQ0FBZWdDLE9BQWY7QUFDQSxXQUFPQyxVQUFQO0FBQ0gsR0FMRDs7QUFPQTNELEVBQUFBLE9BQU8sQ0FBQzRELE9BQVIsR0FBa0I1RCxPQUFPLENBQUN5RCxXQUFSLEVBQWxCO0FBRUEsU0FBT3pELE9BQVA7QUFDSCxDQXRKRDs7QUF3SkE2RCxxQkFBTSxDQUFDN0QsT0FBUCxHQUFrQjZELHFCQUFNLElBQUksUUFBT0EscUJBQU0sQ0FBQy9ELFFBQWQsTUFBMkIsUUFBdEMsR0FBa0RGLE9BQU8sQ0FBQ2lFLHFCQUFELENBQXpELEdBQW9FakUsT0FBckY7QUFFQSxpRUFBZWlFLHFCQUFNLENBQUM3RCxPQUF0QiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvY29va2llcy5qcz9lY2U1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb29raWVzLmpzIC0gMS4yLjMtZ3JhdlxuICogaHR0cHM6Ly9naXRodWIuY29tL1Njb3R0SGFtcGVyL0Nvb2tpZXNcbiAqXG4gKiBXaXRoIFNhbWVTaXRlIHN1cHBvcnQgYnkgR3JhdlxuICpcbiAqIFRoaXMgaXMgZnJlZSBhbmQgdW5lbmN1bWJlcmVkIHNvZnR3YXJlIHJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4uXG4gKi9cblxuY29uc3QgZmFjdG9yeSA9IGZ1bmN0aW9uKHdpbmRvdykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvb2tpZXMuanMgcmVxdWlyZXMgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YCBvYmplY3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBDb29raWVzID0gKGtleSwgdmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgID8gQ29va2llcy5nZXQoa2V5KVxuICAgICAgICAgICAgOiBDb29raWVzLnNldChrZXksIHZhbHVlLCBvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgLy8gQWxsb3dzIGZvciBzZXR0ZXIgaW5qZWN0aW9uIGluIHVuaXQgdGVzdHNcbiAgICBDb29raWVzLl9kb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxuICAgIC8vIFVzZWQgdG8gZW5zdXJlIGNvb2tpZSBrZXlzIGRvIG5vdCBjb2xsaWRlIHdpdGhcbiAgICAvLyBidWlsdC1pbiBgT2JqZWN0YCBwcm9wZXJ0aWVzXG4gICAgQ29va2llcy5fY2FjaGVLZXlQcmVmaXggPSAnY29va2V5Lic7IC8vIEh1cnIgaHVyciwgOilcblxuICAgIENvb2tpZXMuX21heEV4cGlyZURhdGUgPSBuZXcgRGF0ZSgnRnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBVVEMnKTtcblxuICAgIENvb2tpZXMuZGVmYXVsdHMgPSB7XG4gICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgc2VjdXJlOiBmYWxzZSxcbiAgICAgICAgc2FtZVNpdGU6ICdMYXgnXG4gICAgfTtcblxuICAgIENvb2tpZXMuZ2V0ID0gKGtleSkgPT4ge1xuICAgICAgICBpZiAoQ29va2llcy5fY2FjaGVkRG9jdW1lbnRDb29raWUgIT09IENvb2tpZXMuX2RvY3VtZW50LmNvb2tpZSkge1xuICAgICAgICAgICAgQ29va2llcy5fcmVuZXdDYWNoZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBDb29raWVzLl9jYWNoZVtDb29raWVzLl9jYWNoZUtleVByZWZpeCArIGtleV07XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgIH07XG5cbiAgICBDb29raWVzLnNldCA9IChrZXksIHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIG9wdGlvbnMgPSBDb29raWVzLl9nZXRFeHRlbmRlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMuZXhwaXJlcyA9IENvb2tpZXMuX2dldEV4cGlyZXNEYXRlKHZhbHVlID09PSB1bmRlZmluZWQgPyAtMSA6IG9wdGlvbnMuZXhwaXJlcyk7XG5cbiAgICAgICAgQ29va2llcy5fZG9jdW1lbnQuY29va2llID0gQ29va2llcy5fZ2VuZXJhdGVDb29raWVTdHJpbmcoa2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIENvb2tpZXM7XG4gICAgfTtcblxuICAgIENvb2tpZXMuZXhwaXJlID0gKGtleSwgb3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gQ29va2llcy5zZXQoa2V5LCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZXRFeHRlbmRlZE9wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGF0aDogb3B0aW9ucyAmJiBvcHRpb25zLnBhdGggfHwgQ29va2llcy5kZWZhdWx0cy5wYXRoLFxuICAgICAgICAgICAgZG9tYWluOiBvcHRpb25zICYmIG9wdGlvbnMuZG9tYWluIHx8IENvb2tpZXMuZGVmYXVsdHMuZG9tYWluLFxuICAgICAgICAgICAgZXhwaXJlczogb3B0aW9ucyAmJiBvcHRpb25zLmV4cGlyZXMgfHwgQ29va2llcy5kZWZhdWx0cy5leHBpcmVzLFxuICAgICAgICAgICAgc2VjdXJlOiBvcHRpb25zICYmIG9wdGlvbnMuc2VjdXJlICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnNlY3VyZSA6IENvb2tpZXMuZGVmYXVsdHMuc2VjdXJlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IG9wdGlvbnMgJiYgb3B0aW9ucy5zYW1lU2l0ZSB8fCBDb29raWVzLmRlZmF1bHRzLnNhbWVTaXRlXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2lzVmFsaWREYXRlID0gKGRhdGUpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkYXRlKSA9PT0gJ1tvYmplY3QgRGF0ZV0nICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2dldEV4cGlyZXNEYXRlID0gKGV4cGlyZXMsIG5vdykgPT4ge1xuICAgICAgICBub3cgPSBub3cgfHwgbmV3IERhdGUoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBleHBpcmVzID0gZXhwaXJlcyA9PT0gSW5maW5pdHlcbiAgICAgICAgICAgICAgICA/IENvb2tpZXMuX21heEV4cGlyZURhdGVcbiAgICAgICAgICAgICAgICA6IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyBleHBpcmVzICogMTAwMCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBleHBpcmVzID0gbmV3IERhdGUoZXhwaXJlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhwaXJlcyAmJiAhQ29va2llcy5faXNWYWxpZERhdGUoZXhwaXJlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4cGlyZXNgIHBhcmFtZXRlciBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgRGF0ZSBpbnN0YW5jZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cGlyZXM7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2dlbmVyYXRlQ29va2llU3RyaW5nID0gKGtleSwgdmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoL1teIyQmK1xcXmB8XS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZSgvXFwoL2csICclMjgnKS5yZXBsYWNlKC9cXCkvZywgJyUyOScpO1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSArICcnKS5yZXBsYWNlKC9bXiEjJCYtK1xcLS06PC1cXFtcXF0tfl0vZywgZW5jb2RlVVJJQ29tcG9uZW50KTtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgbGV0IGNvb2tpZVN0cmluZyA9IGtleSArICc9JyArIHZhbHVlO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5wYXRoID8gJztwYXRoPScgKyBvcHRpb25zLnBhdGggOiAnJztcbiAgICAgICAgY29va2llU3RyaW5nICs9IG9wdGlvbnMuZG9tYWluID8gJztkb21haW49JyArIG9wdGlvbnMuZG9tYWluIDogJyc7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSBvcHRpb25zLmV4cGlyZXMgPyAnO2V4cGlyZXM9JyArIG9wdGlvbnMuZXhwaXJlcy50b1VUQ1N0cmluZygpIDogJyc7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSBvcHRpb25zLnNlY3VyZSA/ICc7c2VjdXJlJyA6ICcnO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5zYW1lU2l0ZSA/ICc7U2FtZVNpdGU9JyArIG9wdGlvbnMuc2FtZVNpdGUgOiAnJztcblxuICAgICAgICByZXR1cm4gY29va2llU3RyaW5nO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZXRDYWNoZUZyb21TdHJpbmcgPSAoZG9jdW1lbnRDb29raWUpID0+IHtcbiAgICAgICAgbGV0IGNvb2tpZUNhY2hlID0ge307XG4gICAgICAgIGNvbnN0IGNvb2tpZXNBcnJheSA9IGRvY3VtZW50Q29va2llID8gZG9jdW1lbnRDb29raWUuc3BsaXQoJzsgJykgOiBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvb2tpZXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY29va2llS3ZwID0gQ29va2llcy5fZ2V0S2V5VmFsdWVQYWlyRnJvbUNvb2tpZVN0cmluZyhjb29raWVzQXJyYXlbaV0pO1xuXG4gICAgICAgICAgICBpZiAoY29va2llQ2FjaGVbQ29va2llcy5fY2FjaGVLZXlQcmVmaXggKyBjb29raWVLdnAua2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29va2llQ2FjaGVbQ29va2llcy5fY2FjaGVLZXlQcmVmaXggKyBjb29raWVLdnAua2V5XSA9IGNvb2tpZUt2cC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVDYWNoZTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fZ2V0S2V5VmFsdWVQYWlyRnJvbUNvb2tpZVN0cmluZyA9IChjb29raWVTdHJpbmcpID0+IHtcbiAgICAgICAgLy8gXCI9XCIgaXMgYSB2YWxpZCBjaGFyYWN0ZXIgaW4gYSBjb29raWUgdmFsdWUgYWNjb3JkaW5nIHRvIFJGQzYyNjUsIHNvIGNhbm5vdCBgc3BsaXQoJz0nKWBcbiAgICAgICAgbGV0IHNlcGFyYXRvckluZGV4ID0gY29va2llU3RyaW5nLmluZGV4T2YoJz0nKTtcblxuICAgICAgICAvLyBJRSBvbWl0cyB0aGUgXCI9XCIgd2hlbiB0aGUgY29va2llIHZhbHVlIGlzIGFuIGVtcHR5IHN0cmluZ1xuICAgICAgICBzZXBhcmF0b3JJbmRleCA9IHNlcGFyYXRvckluZGV4IDwgMCA/IGNvb2tpZVN0cmluZy5sZW5ndGggOiBzZXBhcmF0b3JJbmRleDtcblxuICAgICAgICBjb25zdCBrZXkgPSBjb29raWVTdHJpbmcuc3Vic3RyKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgICAgICAgbGV0IGRlY29kZWRLZXk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkZWNvZGVkS2V5ID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChjb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IGRlY29kZSBjb29raWUgd2l0aCBrZXkgXCInICsga2V5ICsgJ1wiJywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBkZWNvZGVkS2V5LFxuICAgICAgICAgICAgdmFsdWU6IGNvb2tpZVN0cmluZy5zdWJzdHIoc2VwYXJhdG9ySW5kZXggKyAxKSAvLyBEZWZlciBkZWNvZGluZyB2YWx1ZSB1bnRpbCBhY2Nlc3NlZFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBDb29raWVzLl9yZW5ld0NhY2hlID0gKCkgPT4ge1xuICAgICAgICBDb29raWVzLl9jYWNoZSA9IENvb2tpZXMuX2dldENhY2hlRnJvbVN0cmluZyhDb29raWVzLl9kb2N1bWVudC5jb29raWUpO1xuICAgICAgICBDb29raWVzLl9jYWNoZWREb2N1bWVudENvb2tpZSA9IENvb2tpZXMuX2RvY3VtZW50LmNvb2tpZTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fYXJlRW5hYmxlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGVzdEtleSA9ICdjb29raWVzLmpzJztcbiAgICAgICAgY29uc3QgYXJlRW5hYmxlZCA9IENvb2tpZXMuc2V0KHRlc3RLZXksIDEpLmdldCh0ZXN0S2V5KSA9PT0gJzEnO1xuICAgICAgICBDb29raWVzLmV4cGlyZSh0ZXN0S2V5KTtcbiAgICAgICAgcmV0dXJuIGFyZUVuYWJsZWQ7XG4gICAgfTtcblxuICAgIENvb2tpZXMuZW5hYmxlZCA9IENvb2tpZXMuX2FyZUVuYWJsZWQoKTtcblxuICAgIHJldHVybiBDb29raWVzO1xufTtcblxuZ2xvYmFsLkNvb2tpZXMgPSAoZ2xvYmFsICYmIHR5cGVvZiBnbG9iYWwuZG9jdW1lbnQgPT09ICdvYmplY3QnKSA/IGZhY3RvcnkoZ2xvYmFsKSA6IGZhY3Rvcnk7XG5cbmV4cG9ydCBkZWZhdWx0IGdsb2JhbC5Db29raWVzO1xuIl0sIm5hbWVzIjpbImZhY3RvcnkiLCJ3aW5kb3ciLCJkb2N1bWVudCIsIkVycm9yIiwiQ29va2llcyIsImtleSIsInZhbHVlIiwib3B0aW9ucyIsImFyZ3VtZW50cyIsImxlbmd0aCIsImdldCIsInNldCIsIl9kb2N1bWVudCIsIl9jYWNoZUtleVByZWZpeCIsIl9tYXhFeHBpcmVEYXRlIiwiRGF0ZSIsImRlZmF1bHRzIiwicGF0aCIsInNlY3VyZSIsInNhbWVTaXRlIiwiX2NhY2hlZERvY3VtZW50Q29va2llIiwiY29va2llIiwiX3JlbmV3Q2FjaGUiLCJfY2FjaGUiLCJ1bmRlZmluZWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfZ2V0RXh0ZW5kZWRPcHRpb25zIiwiZXhwaXJlcyIsIl9nZXRFeHBpcmVzRGF0ZSIsIl9nZW5lcmF0ZUNvb2tpZVN0cmluZyIsImV4cGlyZSIsImRvbWFpbiIsIl9pc1ZhbGlkRGF0ZSIsImRhdGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc05hTiIsImdldFRpbWUiLCJub3ciLCJJbmZpbml0eSIsInJlcGxhY2UiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb29raWVTdHJpbmciLCJ0b1VUQ1N0cmluZyIsIl9nZXRDYWNoZUZyb21TdHJpbmciLCJkb2N1bWVudENvb2tpZSIsImNvb2tpZUNhY2hlIiwiY29va2llc0FycmF5Iiwic3BsaXQiLCJpIiwiY29va2llS3ZwIiwiX2dldEtleVZhbHVlUGFpckZyb21Db29raWVTdHJpbmciLCJzZXBhcmF0b3JJbmRleCIsImluZGV4T2YiLCJzdWJzdHIiLCJkZWNvZGVkS2V5IiwiZSIsImNvbnNvbGUiLCJlcnJvciIsIl9hcmVFbmFibGVkIiwidGVzdEtleSIsImFyZUVuYWJsZWQiLCJlbmFibGVkIiwiZ2xvYmFsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/cookies.js\n");
/***/ }),
/***/ "./app/utils/cron-ui.js":
/*!******************************!*\
!*** ./app/utils/cron-ui.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/* eslint-disable */\n\n/*\n * This file is part of the Arnapou jqCron package.\n *\n * (c) Arnaud Buathier <arnaud@arnapou.net>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Default settings\n */\n\nvar jqCronDefaultSettings = {\n texts: {},\n monthdays: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],\n hours: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],\n hour_labels: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"],\n minutes: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59],\n lang: 'en',\n enabled_minute: false,\n enabled_hour: true,\n enabled_day: true,\n enabled_week: true,\n enabled_month: true,\n enabled_year: true,\n multiple_dom: false,\n multiple_month: false,\n multiple_mins: false,\n multiple_dow: false,\n multiple_time_hours: false,\n multiple_time_minutes: false,\n numeric_zero_pad: false,\n default_period: 'day',\n default_value: '',\n no_reset_button: true,\n disabled: false,\n bind_to: null,\n bind_method: {\n set: function set($element, value) {\n $element.is(':input') ? $element.val(value) : $element.data('jqCronValue', value);\n },\n get: function get($element) {\n return $element.is(':input') ? $element.val() : $element.data('jqCronValue');\n }\n }\n};\n/**\n * Custom extend of json for jqCron settings.\n * We don't use jQuery.extend because simple extend does not fit our needs, and deep extend has a bad\n * feature for us : it replaces keys of \"Arrays\" instead of replacing the full array.\n */\n\n(function ($) {\n var extend = function extend(dst, src) {\n for (var i in src) {\n if ($.isPlainObject(src[i])) {\n dst[i] = extend(dst[i] && $.isPlainObject(dst[i]) ? dst[i] : {}, src[i]);\n } else if ($.isArray(src[i])) {\n dst[i] = src[i].slice(0);\n } else if (src[i] !== undefined) {\n dst[i] = src[i];\n }\n }\n\n return dst;\n };\n\n this.jqCronMergeSettings = function (obj) {\n return extend(extend({}, jqCronDefaultSettings), obj || {});\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Shortcut to get the instance of jqCron instance from one jquery object\n */\n\n(function ($) {\n $.fn.jqCronGetInstance = function () {\n return this.data('jqCron');\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Main plugin\n */\n\n(function ($) {\n $.fn.jqCron = function (settings) {\n var saved_settings = settings;\n return this.each(function () {\n var cron, saved;\n var $this = $(this);\n var settings = jqCronMergeSettings(saved_settings); // clone settings\n\n var translations = settings.texts[settings.lang];\n\n if (_typeof(translations) !== 'object' || $.isEmptyObject(translations)) {\n console && console.error('Missing translations for language \"' + settings.lang + '\". ' + 'Please include jqCron.' + settings.lang + '.js or manually provide ' + 'the necessary translations when calling $.fn.jqCron().');\n return;\n }\n\n if (!settings.jquery_container) {\n if ($this.is(':container')) {\n settings.jquery_element = $this.uniqueId('jqCron');\n } else if ($this.is(':autoclose')) {\n // delete already generated dom if exists\n if ($this.next('.jqCron').length == 1) {\n $this.next('.jqCron').remove();\n } // generate new\n\n\n settings.jquery_element = $('<span class=\"jqCron\"></span>').uniqueId('jqCron').insertAfter($this);\n } else {\n console && console.error(settings.texts[settings.lang].error1.replace('%s', this.tagName));\n return;\n }\n } // autoset bind_to if it is an input\n\n\n if ($this.is(':input')) {\n settings.bind_to = settings.bind_to || $this;\n } // init cron object\n\n\n if (settings.bind_to) {\n if (settings.bind_to.is(':input')) {\n // auto bind from input to object if an input, textarea ...\n settings.bind_to.blur(function () {\n var value = settings.bind_method.get(settings.bind_to);\n $this.jqCronGetInstance().setCron(value);\n });\n }\n\n saved = settings.bind_method.get(settings.bind_to);\n cron = new jqCron(settings);\n cron.setCron(saved);\n } else {\n cron = new jqCron(settings);\n }\n\n $(this).data('jqCron', cron);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * jqCron class\n */\n\n(function ($) {\n var jqCronInstances = [];\n\n function jqCron(settings) {\n var _initialized = false;\n\n var _self = this;\n\n var _$elt = this;\n\n var _$obj = $('<span class=\"jqCron-container\"></span>');\n\n var _$blocks = $('<span class=\"jqCron-blocks\"></span>');\n\n var _$blockPERIOD = $('<span class=\"jqCron-period\"></span>');\n\n var _$blockDOM = $('<span class=\"jqCron-dom\"></span>');\n\n var _$blockMONTH = $('<span class=\"jqCron-month\"></span>');\n\n var _$blockMINS = $('<span class=\"jqCron-mins\"></span>');\n\n var _$blockDOW = $('<span class=\"jqCron-dow\"></span>');\n\n var _$blockTIME = $('<span class=\"jqCron-time\"></span>');\n\n var _$cross = $('<span class=\"jqCron-cross\">&#10008;</span>');\n\n var _selectors = [];\n\n var _selectorPeriod, _selectorMins, _selectorTimeH, _selectorTimeM, _selectorDow, _selectorDom, _selectorMonth; // instanciate a new selector\n\n\n function newSelector($block, multiple, type) {\n var selector = new jqCronSelector(_self, $block, multiple, type);\n selector.$.bind('selector:open', function () {\n // we close all opened selectors of all other jqCron\n for (var n = jqCronInstances.length; n--;) {\n if (jqCronInstances[n] != _self) {\n jqCronInstances[n].closeSelectors();\n } else {\n // we close all other opened selectors of this jqCron\n for (var o = _selectors.length; o--;) {\n if (_selectors[o] != selector) {\n _selectors[o].close();\n }\n }\n }\n }\n });\n selector.$.bind('selector:change', function () {\n var boundChanged = false; // don't propagate if not initialized\n\n if (!_initialized) return; // bind data between two minute selectors (only if they have the same multiple settings)\n\n if (settings.multiple_mins == settings.multiple_time_minutes) {\n if (selector == _selectorMins) {\n boundChanged = _selectorTimeM.setValue(_selectorMins.getValue());\n } else if (selector == _selectorTimeM) {\n boundChanged = _selectorMins.setValue(_selectorTimeM.getValue());\n }\n } // we propagate the change event to the main object\n\n\n boundChanged || _$obj.trigger('cron:change', _self.getCron());\n });\n\n _selectors.push(selector);\n\n return selector;\n } // disable the selector\n\n\n this.disable = function () {\n _$obj.addClass('disable');\n\n settings.disable = true;\n\n _self.closeSelectors();\n }; // return if the selector is disabled\n\n\n this.isDisabled = function () {\n return settings.disable == true;\n }; // enable the selector\n\n\n this.enable = function () {\n _$obj.removeClass('disable');\n\n settings.disable = false;\n }; // get cron value\n\n\n this.getCron = function () {\n var period = _selectorPeriod.getValue();\n\n var items = ['*', '*', '*', '*', '*'];\n\n if (period == 'hour') {\n items[0] = _selectorMins.getCronValue();\n }\n\n if (period == 'day' || period == 'week' || period == 'month' || period == 'year') {\n items[0] = _selectorTimeM.getCronValue();\n items[1] = _selectorTimeH.getCronValue();\n }\n\n if (period == 'month' || period == 'year') {\n items[2] = _selectorDom.getCronValue();\n }\n\n if (period == 'year') {\n items[3] = _selectorMonth.getCronValue();\n }\n\n if (period == 'week') {\n items[4] = _selectorDow.getCronValue();\n }\n\n return items.join(' ');\n }; // set cron (string like * * * * *)\n\n\n this.setCron = function (str) {\n if (!str) return;\n\n try {\n str = str.replace(/\\s+/g, ' ').replace(/^ +/, '').replace(/ +$/, ''); // sanitize\n\n var mask = str.replace(/[^\\* ]/g, '-').replace(/-+/g, '-').replace(/ +/g, '');\n var items = str.split(' ');\n if (items.length != 5) _self.error(_self.getText('error2'));\n\n if (mask == '*****') {\n // 1 possibility\n _selectorPeriod.setValue('minute');\n } else if (mask == '-****') {\n // 1 possibility\n _selectorPeriod.setValue('hour');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n } else if (mask.substring(2, mask.length) == '***') {\n // 4 possibilities\n _selectorPeriod.setValue('day');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n } else if (mask.substring(2, mask.length) == '-**') {\n // 4 possibilities\n _selectorPeriod.setValue('month');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDom.setCronValue(items[2]);\n } else if (mask.substring(2, mask.length) == '**-') {\n // 4 possibilities\n _selectorPeriod.setValue('week');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDow.setCronValue(items[4]);\n } else if (mask.substring(3, mask.length) == '-*') {\n // 8 possibilities\n _selectorPeriod.setValue('year');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDom.setCronValue(items[2]);\n\n _selectorMonth.setCronValue(items[3]);\n } else {\n _self.error(_self.getText('error4'));\n }\n\n _self.clearError();\n } catch (e) {}\n }; // close all child selectors\n\n\n this.closeSelectors = function () {\n for (var n = _selectors.length; n--;) {\n _selectors[n].close();\n }\n }; // get the main element id\n\n\n this.getId = function () {\n return _$elt.attr('id');\n }; // get the translated text\n\n\n this.getText = function (key) {\n var text = settings.texts[settings.lang][key] || null;\n\n if (typeof text == \"string\" && text.match('<b')) {\n text = text.replace(/(<b *\\/>)/gi, '</span><b /><span class=\"jqCron-text\">');\n text = '<span class=\"jqCron-text\">' + text + '</span>';\n }\n\n return text;\n }; // get the human readable text\n\n\n this.getHumanText = function () {\n var texts = [];\n\n _$obj.find('> span > span:visible').find('.jqCron-text, .jqCron-selector > span').each(function () {\n var text = $(this).text().replace(/\\s+$/g, '').replace(/^\\s+/g, '');\n text && texts.push(text);\n });\n\n return texts.join(' ').replace(/\\s:\\s/g, ':');\n }; // get settings\n\n\n this.getSettings = function () {\n return settings;\n }; // display an error\n\n\n this.error = function (msg) {\n console && console.error('[jqCron Error] ' + msg);\n\n _$obj.addClass('jqCron-error').attr('title', msg);\n\n throw msg;\n }; // clear error\n\n\n this.clearError = function () {\n _$obj.attr('title', '').removeClass('jqCron-error');\n }; // clear\n\n\n this.clear = function () {\n _selectorDom.setValue([]);\n\n _selectorDow.setValue([]);\n\n _selectorMins.setValue([]);\n\n _selectorMonth.setValue([]);\n\n _selectorTimeH.setValue([]);\n\n _selectorTimeM.setValue([]);\n\n _self.triggerChange();\n }; // init (called in constructor)\n\n\n this.init = function () {\n var n, i, labelsList, list;\n if (_initialized) return;\n settings = jqCronMergeSettings(settings);\n settings.jquery_element || _self.error(_self.getText('error3'));\n _$elt = settings.jquery_element;\n\n _$elt.append(_$obj);\n\n _$obj.data('id', settings.id);\n\n _$obj.data('jqCron', _self);\n\n _$obj.append(_$blocks);\n\n settings.no_reset_button || _$obj.append(_$cross);\n !settings.disable || _$obj.addClass('disable');\n\n _$blocks.append(_$blockPERIOD);\n\n if (/^(ko)$/i.test(settings.lang)) {\n _$blocks.append(_$blockMONTH, _$blockDOM);\n } else {\n _$blocks.append(_$blockDOM, _$blockMONTH);\n }\n\n _$blocks.append(_$blockMINS);\n\n _$blocks.append(_$blockDOW);\n\n _$blocks.append(_$blockTIME); // various binding\n\n\n _$cross.click(function () {\n _self.isDisabled() || _self.clear();\n }); // binding from cron to target\n\n\n _$obj.bind('cron:change', function (evt, value) {\n if (!settings.bind_to) return;\n settings.bind_method.set && settings.bind_method.set(settings.bind_to, value);\n\n _self.clearError();\n }); // PERIOD\n\n\n _$blockPERIOD.append(_self.getText('text_period'));\n\n _selectorPeriod = newSelector(_$blockPERIOD, false, 'period');\n settings.enabled_minute && _selectorPeriod.add('minute', _self.getText('name_minute'));\n settings.enabled_hour && _selectorPeriod.add('hour', _self.getText('name_hour'));\n settings.enabled_day && _selectorPeriod.add('day', _self.getText('name_day'));\n settings.enabled_week && _selectorPeriod.add('week', _self.getText('name_week'));\n settings.enabled_month && _selectorPeriod.add('month', _self.getText('name_month'));\n settings.enabled_year && _selectorPeriod.add('year', _self.getText('name_year'));\n\n _selectorPeriod.$.bind('selector:change', function (e, value) {\n _$blockDOM.hide();\n\n _$blockMONTH.hide();\n\n _$blockMINS.hide();\n\n _$blockDOW.hide();\n\n _$blockTIME.hide();\n\n if (value == 'hour') {\n _$blockMINS.show();\n } else if (value == 'day') {\n _$blockTIME.show();\n } else if (value == 'week') {\n _$blockDOW.show();\n\n _$blockTIME.show();\n } else if (value == 'month') {\n _$blockDOM.show();\n\n _$blockTIME.show();\n } else if (value == 'year') {\n _$blockDOM.show();\n\n _$blockMONTH.show();\n\n _$blockTIME.show();\n }\n });\n\n _selectorPeriod.setValue(settings.default_period); // MINS (minutes)\n\n\n _$blockMINS.append(_self.getText('text_mins'));\n\n _selectorMins = newSelector(_$blockMINS, settings.multiple_mins, 'minutes');\n\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorMins.add(list[i], list[i]);\n } // TIME (hour:min)\n\n\n _$blockTIME.append(_self.getText('text_time'));\n\n _selectorTimeH = newSelector(_$blockTIME, settings.multiple_time_hours, 'time_hours');\n\n for (i = 0, list = settings.hours, labelsList = settings.hour_labels; i < list.length; i++) {\n _selectorTimeH.add(list[i], labelsList[i]);\n }\n\n _selectorTimeM = newSelector(_$blockTIME, settings.multiple_time_minutes, 'time_minutes');\n\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorTimeM.add(list[i], list[i]);\n } // DOW (day of week)\n\n\n _$blockDOW.append(_self.getText('text_dow'));\n\n _selectorDow = newSelector(_$blockDOW, settings.multiple_dow, 'day_of_week');\n\n for (i = 0, list = _self.getText('weekdays'); i < list.length; i++) {\n _selectorDow.add(i + 1, list[i]);\n } // DOM (day of month)\n\n\n _$blockDOM.append(_self.getText('text_dom'));\n\n _selectorDom = newSelector(_$blockDOM, settings.multiple_dom, 'day_of_month');\n\n for (i = 0, list = settings.monthdays; i < list.length; i++) {\n _selectorDom.add(list[i], list[i]);\n } // MONTH (day of week)\n\n\n _$blockMONTH.append(_self.getText('text_month'));\n\n _selectorMonth = newSelector(_$blockMONTH, settings.multiple_month, 'month');\n\n for (i = 0, list = _self.getText('months'); i < list.length; i++) {\n _selectorMonth.add(i + 1, list[i]);\n } // close all selectors when we click in body\n\n\n $('body').click(function () {\n var i,\n n = _selectors.length;\n\n for (i = 0; i < n; i++) {\n _selectors[i].close();\n }\n });\n _initialized = true; // default value\n\n if (settings.default_value) {\n _self.setCron(settings.default_value);\n }\n }; // trigger a change event\n\n\n this.triggerChange = function () {\n _$obj.trigger('cron:change', _self.getCron());\n }; // store instance in array\n\n\n jqCronInstances.push(this); // expose main jquery object\n\n this.$ = _$obj; // init\n\n try {\n this.init();\n\n _self.triggerChange();\n } catch (e) {}\n }\n\n this.jqCron = jqCron;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * jqCronSelector class\n */\n\n(function ($) {\n function jqCronSelector(_cron, _$block, _multiple, _type) {\n var _self = this;\n\n var _$list = $('<ul class=\"jqCron-selector-list\"></ul>');\n\n var _$title = $('<span class=\"jqCron-selector-title\"></span>');\n\n var _$selector = $('<span class=\"jqCron-selector\"></span>');\n\n var _values = {};\n var _value = [];\n var _hasNumericTexts = true;\n\n var _numeric_zero_pad = _cron.getSettings().numeric_zero_pad; // return an array without doublon\n\n\n function array_unique(l) {\n var i = 0,\n n = l.length,\n k = {},\n a = [];\n\n while (i < n) {\n k[l[i]] || (k[l[i]] = true && a.push(l[i]));\n i++;\n }\n\n return a;\n } // get the value (an array if multiple, else a single value)\n\n\n this.getValue = function () {\n return _multiple ? _value : _value[0];\n }; // get a correct string for cron\n\n\n this.getCronValue = function () {\n if (_value.length == 0) return '*';\n var cron = [_value[0]],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = s + '-' + c;\n } else {\n s = c = _value[i];\n cron.push(c);\n }\n }\n\n return cron.join(',');\n }; // set the cron value\n\n\n this.setCronValue = function (str) {\n var values = [],\n m,\n i,\n n;\n\n if (str !== '*') {\n while (str != '') {\n // test \"*/n\" expression\n m = str.match(/^\\*\\/([0-9]+),?/);\n\n if (m && m.length == 2) {\n for (i = 0; i <= 59; i += m[1] | 0) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"a-b/n\" expression\n\n\n m = str.match(/^([0-9]+)-([0-9]+)\\/([0-9]+),?/);\n\n if (m && m.length == 4) {\n for (i = m[1] | 0; i <= (m[2] | 0); i += m[3] | 0) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"a-b\" expression\n\n\n m = str.match(/^([0-9]+)-([0-9]+),?/);\n\n if (m && m.length == 3) {\n for (i = m[1] | 0; i <= (m[2] | 0); i++) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"c\" expression\n\n\n m = str.match(/^([0-9]+),?/);\n\n if (m && m.length == 2) {\n values.push(m[1] | 0);\n str = str.replace(m[0], '');\n continue;\n } // something goes wrong in the expression\n\n\n return;\n }\n }\n\n _self.setValue(values);\n }; // close the selector\n\n\n this.close = function () {\n _$selector.trigger('selector:close');\n }; // open the selector\n\n\n this.open = function () {\n _$selector.trigger('selector:open');\n }; // whether the selector is open\n\n\n this.isOpened = function () {\n return _$list.is(':visible');\n }; // add a selected value to the list\n\n\n this.addValue = function (key) {\n var values = _multiple ? _value.slice(0) : []; // clone array\n\n values.push(key);\n\n _self.setValue(values);\n }; // remove a selected value from the list\n\n\n this.removeValue = function (key) {\n if (_multiple) {\n var i,\n newValue = [];\n\n for (i = 0; i < _value.length; i++) {\n if (key != [_value[i]]) {\n newValue.push(_value[i]);\n }\n }\n\n _self.setValue(newValue);\n } else {\n _self.clear();\n }\n }; // set the selected value(s) of the list\n\n\n this.setValue = function (keys) {\n var i,\n newKeys = [],\n saved = _value.join(' ');\n\n if (!$.isArray(keys)) keys = [keys];\n\n _$list.find('li').removeClass('selected');\n\n keys = array_unique(keys);\n keys.sort(function (a, b) {\n var ta = _typeof(a);\n\n var tb = _typeof(b);\n\n if (ta == tb && ta == \"number\") return a - b;else return String(a) == String(b) ? 0 : String(a) < String(b) ? -1 : 1;\n });\n\n if (_multiple) {\n for (i = 0; i < keys.length; i++) {\n if (keys[i] in _values) {\n _values[keys[i]].addClass('selected');\n\n newKeys.push(keys[i]);\n }\n }\n } else {\n if (keys[0] in _values) {\n _values[keys[0]].addClass('selected');\n\n newKeys.push(keys[0]);\n }\n } // remove unallowed values\n\n\n _value = newKeys;\n\n if (saved != _value.join(' ')) {\n _$selector.trigger('selector:change', _multiple ? keys : keys[0]);\n\n return true;\n }\n\n return false;\n }; // get the title text\n\n\n this.getTitleText = function () {\n var getValueText = function getValueText(key) {\n return key in _values ? _values[key].text() : key;\n };\n\n if (_value.length == 0) {\n return _cron.getText('empty_' + _type) || _cron.getText('empty');\n }\n\n var cron = [getValueText(_value[0])],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = getValueText(s) + '-' + getValueText(c);\n } else {\n s = c = _value[i];\n cron.push(getValueText(c));\n }\n }\n\n return cron.join(',');\n }; // clear list\n\n\n this.clear = function () {\n _values = {};\n\n _self.setValue([]);\n\n _$list.empty();\n }; // add a (key, value) pair\n\n\n this.add = function (key, value) {\n if (!(value + '').match(/^[0-9]+$/)) _hasNumericTexts = false;\n\n if (_numeric_zero_pad && _hasNumericTexts && value < 10) {\n value = '0' + value;\n }\n\n var $item = $('<li>' + value + '</li>');\n\n _$list.append($item);\n\n _values[key] = $item;\n $item.click(function () {\n if (_multiple && $(this).hasClass('selected')) {\n _self.removeValue(key);\n } else {\n _self.addValue(key);\n\n if (!_multiple) _self.close();\n }\n });\n }; // expose main jquery object\n\n\n this.$ = _$selector; // constructor\n\n _$block.find('b:eq(0)').after(_$selector).remove();\n\n _$selector.addClass('jqCron-selector-' + _$block.find('.jqCron-selector').length).append(_$title).append(_$list).bind('selector:open', function () {\n if (_hasNumericTexts) {\n var nbcols = 1,\n n = _$list.find('li').length;\n\n if (n > 5 && n <= 16) nbcols = 2;else if (n > 16 && n <= 23) nbcols = 3;else if (n > 23 && n <= 40) nbcols = 4;else if (n > 40) nbcols = 5;\n\n _$list.addClass('cols' + nbcols);\n }\n\n _$list.show();\n }).bind('selector:close', function () {\n _$list.hide();\n }).bind('selector:change', function () {\n _$title.html(_self.getTitleText());\n }).click(function (e) {\n e.stopPropagation();\n }).trigger('selector:change');\n\n $.fn.disableSelection && _$selector.disableSelection(); // only work with jQuery UI\n\n _$title.click(function (e) {\n _self.isOpened() || _cron.isDisabled() ? _self.close() : _self.open();\n });\n\n _self.close();\n\n _self.clear();\n }\n\n this.jqCronSelector = jqCronSelector;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Generate unique id for each element.\n * Skip elements which have already an id.\n */\n\n(function ($) {\n var jqUID = 0;\n\n var jqGetUID = function jqGetUID(prefix) {\n var id;\n\n while (1) {\n jqUID++;\n id = (prefix || 'JQUID') + '' + jqUID;\n if (!document.getElementById(id)) return id;\n }\n };\n\n $.fn.uniqueId = function (prefix) {\n return this.each(function () {\n if ($(this).attr('id')) return;\n var id = jqGetUID(prefix);\n $(this).attr('id', id);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Extends jQuery selectors with new block selector\n */\n\n(function ($) {\n $.extend($.expr[':'], {\n container: function container(a) {\n return (a.tagName + '').toLowerCase() in {\n a: 1,\n abbr: 1,\n acronym: 1,\n address: 1,\n b: 1,\n big: 1,\n blockquote: 1,\n button: 1,\n cite: 1,\n code: 1,\n dd: 1,\n del: 1,\n dfn: 1,\n div: 1,\n dt: 1,\n em: 1,\n fieldset: 1,\n form: 1,\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1,\n i: 1,\n ins: 1,\n kbd: 1,\n label: 1,\n li: 1,\n p: 1,\n pre: 1,\n q: 1,\n samp: 1,\n small: 1,\n span: 1,\n strong: 1,\n sub: 1,\n sup: 1,\n td: 1,\n tt: 1\n };\n },\n autoclose: function autoclose(a) {\n return (a.tagName + '').toLowerCase() in {\n area: 1,\n base: 1,\n basefont: 1,\n br: 1,\n col: 1,\n frame: 1,\n hr: 1,\n img: 1,\n input: 1,\n link: 1,\n meta: 1,\n param: 1\n };\n }\n });\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FsQzZCO0FBbUNuQ0MsUUFBQUEsSUFBSSxFQUFDLENBbkM4QjtBQW9DbkNDLFFBQUFBLE1BQU0sRUFBQyxDQXBDNEI7QUFxQ25DQyxRQUFBQSxHQUFHLEVBQUUsQ0FyQzhCO0FBc0NuQ0MsUUFBQUEsR0FBRyxFQUFDLENBdEMrQjtBQXVDbkNDLFFBQUFBLEVBQUUsRUFBQyxDQXZDZ0M7QUF3Q25DQyxRQUFBQSxFQUFFLEVBQUM7QUF4Q2dDLE9BQXZDO0FBMENILEtBNUNpQjtBQTZDbEJDLElBQUFBLFNBQVMsRUFBRSxtQkFBU3hFLENBQVQsRUFBWTtBQUNuQixhQUFPLENBQUNBLENBQUMsQ0FBQzlGLE9BQUYsR0FBVSxFQUFYLEVBQWVnSSxXQUFmLE1BQWdDO0FBQ25DdUMsUUFBQUEsSUFBSSxFQUFDLENBRDhCO0FBRW5DQyxRQUFBQSxJQUFJLEVBQUMsQ0FGOEI7QUFHbkNDLFFBQUFBLFFBQVEsRUFBQyxDQUgwQjtBQUluQ0MsUUFBQUEsRUFBRSxFQUFDLENBSmdDO0FBS25DQyxRQUFBQSxHQUFHLEVBQUMsQ0FMK0I7QUFNbkNDLFFBQUFBLEtBQUssRUFBQyxDQU42QjtBQU9uQ0MsUUFBQUEsRUFBRSxFQUFDLENBUGdDO0FBUW5DQyxRQUFBQSxHQUFHLEVBQUMsQ0FSK0I7QUFTbkNDLFFBQUFBLEtBQUssRUFBQyxDQVQ2QjtBQVVuQ0MsUUFBQUEsSUFBSSxFQUFDLENBVjhCO0FBV25DQyxRQUFBQSxJQUFJLEVBQUMsQ0FYOEI7QUFZbkNDLFFBQUFBLEtBQUssRUFBQztBQVo2QixPQUF2QztBQWNIO0FBNURpQixHQUF0QjtBQThESCxDQS9ERCxFQStERzFNLElBL0RILENBK0RRQyxNQS9EUixFQStEZ0I3QywrQ0EvRGhCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9jcm9uLXVpLmpzPzQ5ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG4vKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFybmFwb3UganFDcm9uIHBhY2thZ2UuXG4gKlxuICogKGMpIEFybmF1ZCBCdWF0aGllciA8YXJuYXVkQGFybmFwb3UubmV0PlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3NcbiAqL1xudmFyIGpxQ3JvbkRlZmF1bHRTZXR0aW5ncyA9IHtcbiAgICB0ZXh0czoge30sXG4gICAgbW9udGhkYXlzOiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzFdLFxuICAgIGhvdXJzOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzXSxcbiAgICBob3VyX2xhYmVsczogW1wiMFwiLCBcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCIsIFwiNlwiLCBcIjdcIiwgXCI4XCIsIFwiOVwiLCBcIjEwXCIsIFwiMTFcIiwgXCIxMlwiLCBcIjEzXCIsIFwiMTRcIiwgXCIxNVwiLCBcIjE2XCIsIFwiMTdcIiwgXCIxOFwiLCBcIjE5XCIsIFwiMjBcIiwgXCIyMVwiLCBcIjIyXCIsIFwiMjNcIl0sXG4gICAgbWludXRlczogWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OV0sXG4gICAgbGFuZzogJ2VuJyxcbiAgICBlbmFibGVkX21pbnV0ZTogZmFsc2UsXG4gICAgZW5hYmxlZF9ob3VyOiB0cnVlLFxuICAgIGVuYWJsZWRfZGF5OiB0cnVlLFxuICAgIGVuYWJsZWRfd2VlazogdHJ1ZSxcbiAgICBlbmFibGVkX21vbnRoOiB0cnVlLFxuICAgIGVuYWJsZWRfeWVhcjogdHJ1ZSxcbiAgICBtdWx0aXBsZV9kb206IGZhbHNlLFxuICAgIG11bHRpcGxlX21vbnRoOiBmYWxzZSxcbiAgICBtdWx0aXBsZV9taW5zOiBmYWxzZSxcbiAgICBtdWx0aXBsZV9kb3c6IGZhbHNlLFxuICAgIG11bHRpcGxlX3RpbWVfaG91cnM6IGZhbHNlLFxuICAgIG11bHRpcGxlX3RpbWVfbWludXRlczogZmFsc2UsXG4gICAgbnVtZXJpY196ZXJvX3BhZDogZmFsc2UsXG4gICAgZGVmYXVsdF9wZXJpb2Q6ICdkYXknLFxuICAgIGRlZmF1bHRfdmFsdWU6ICcnLFxuICAgIG5vX3Jlc2V0X2J1dHRvbjogdHJ1ZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgYmluZF90bzogbnVsbCxcbiAgICBiaW5kX21ldGhvZDoge1xuICAgICAgICBzZXQ6IGZ1bmN0aW9uKCRlbGVtZW50LCB2YWx1ZSkge1xuICAgICAgICAgICAgJGVsZW1lbnQuaXMoJzppbnB1dCcpID8gJGVsZW1lbnQudmFsKHZhbHVlKSA6ICRlbGVtZW50LmRhdGEoJ2pxQ3JvblZhbHVlJywgdmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uKCRlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQuaXMoJzppbnB1dCcpID8gJGVsZW1lbnQudmFsKCkgOiAkZWxlbWVudC5kYXRhKCdqcUNyb25WYWx1ZScpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuLyoqXG4gKiBDdXN0b20gZXh0ZW5kIG9mIGpzb24gZm9yIGpxQ3JvbiBzZXR0aW5ncy5cbiAqIFdlIGRvbid0IHVzZSBqUXVlcnkuZXh0ZW5kIGJlY2F1c2Ugc2ltcGxlIGV4dGVuZCBkb2VzIG5vdCBmaXQgb3VyIG5lZWRzLCBhbmQgZGVlcCBleHRlbmQgaGFzIGEgYmFkXG4gKiBmZWF0dXJlIGZvciB1cyA6IGl0IHJlcGxhY2VzIGtleXMgb2YgXCJBcnJheXNcIiBpbnN0ZWFkIG9mIHJlcGxhY2luZyB0aGUgZnVsbCBhcnJheS5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBleHRlbmQgPSBmdW5jdGlvbihkc3QsIHNyYykge1xuICAgICAgICBmb3IodmFyIGkgaW4gc3JjKSB7XG4gICAgICAgICAgICBpZigkLmlzUGxhaW5PYmplY3Qoc3JjW2ldKSkge1xuICAgICAgICAgICAgICAgIGRzdFtpXSA9IGV4dGVuZChkc3RbaV0gJiYgJC5pc1BsYWluT2JqZWN0KGRzdFtpXSkgPyBkc3RbaV0gOiB7fSwgc3JjW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYoJC5pc0FycmF5KHNyY1tpXSkpIHtcbiAgICAgICAgICAgICAgICBkc3RbaV0gPSBzcmNbaV0uc2xpY2UoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKHNyY1tpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZHN0W2ldID0gc3JjW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkc3Q7XG4gICAgfTtcbiAgICB0aGlzLmpxQ3Jvbk1lcmdlU2V0dGluZ3MgPSBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuZChleHRlbmQoe30sIGpxQ3JvbkRlZmF1bHRTZXR0aW5ncyksIG9iaiB8fCB7fSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBTaG9ydGN1dCB0byBnZXQgdGhlIGluc3RhbmNlIG9mIGpxQ3JvbiBpbnN0YW5jZSBmcm9tIG9uZSBqcXVlcnkgb2JqZWN0XG4gKi9cbihmdW5jdGlvbigkKXtcbiAgICAkLmZuLmpxQ3JvbkdldEluc3RhbmNlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEoJ2pxQ3JvbicpO1xuICAgIH07XG59KS5jYWxsKHdpbmRvdywgJCk7XG5cbi8qKlxuICogTWFpbiBwbHVnaW5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgICQuZm4uanFDcm9uID0gZnVuY3Rpb24oc2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIHNhdmVkX3NldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgY3Jvbiwgc2F2ZWQ7XG4gICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgdmFyIHNldHRpbmdzID0ganFDcm9uTWVyZ2VTZXR0aW5ncyhzYXZlZF9zZXR0aW5ncyk7IC8vIGNsb25lIHNldHRpbmdzXG4gICAgICAgICAgICB2YXIgdHJhbnNsYXRpb25zID0gc2V0dGluZ3MudGV4dHNbc2V0dGluZ3MubGFuZ107XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YodHJhbnNsYXRpb25zKSAhPT0gJ29iamVjdCcgfHwgJC5pc0VtcHR5T2JqZWN0KHRyYW5zbGF0aW9ucykpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdNaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgbGFuZ3VhZ2UgXCInICsgc2V0dGluZ3MubGFuZyArICdcIi4gJyArXG4gICAgICAgICAgICAgICAgICAgICdQbGVhc2UgaW5jbHVkZSBqcUNyb24uJyArIHNldHRpbmdzLmxhbmcgKyAnLmpzIG9yIG1hbnVhbGx5IHByb3ZpZGUgJyArXG4gICAgICAgICAgICAgICAgICAgICd0aGUgbmVjZXNzYXJ5IHRyYW5zbGF0aW9ucyB3aGVuIGNhbGxpbmcgJC5mbi5qcUNyb24oKS4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmKCFzZXR0aW5ncy5qcXVlcnlfY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgaWYoJHRoaXMuaXMoJzpjb250YWluZXInKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCA9ICR0aGlzLnVuaXF1ZUlkKCdqcUNyb24nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZigkdGhpcy5pcygnOmF1dG9jbG9zZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBhbHJlYWR5IGdlbmVyYXRlZCBkb20gaWYgZXhpc3RzXG4gICAgICAgICAgICAgICAgICAgIGlmKCR0aGlzLm5leHQoJy5qcUNyb24nKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMubmV4dCgnLmpxQ3JvbicpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRlIG5ld1xuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uXCI+PC9zcGFuPicpLnVuaXF1ZUlkKCdqcUNyb24nKS5pbnNlcnRBZnRlcigkdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3Ioc2V0dGluZ3MudGV4dHNbc2V0dGluZ3MubGFuZ10uZXJyb3IxLnJlcGxhY2UoJyVzJywgdGhpcy50YWdOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dG9zZXQgYmluZF90byBpZiBpdCBpcyBhbiBpbnB1dFxuICAgICAgICAgICAgaWYoJHRoaXMuaXMoJzppbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgc2V0dGluZ3MuYmluZF90byA9IHNldHRpbmdzLmJpbmRfdG8gfHwgJHRoaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGluaXQgY3JvbiBvYmplY3RcbiAgICAgICAgICAgIGlmKHNldHRpbmdzLmJpbmRfdG8pe1xuICAgICAgICAgICAgICAgIGlmKHNldHRpbmdzLmJpbmRfdG8uaXMoJzppbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGF1dG8gYmluZCBmcm9tIGlucHV0IHRvIG9iamVjdCBpZiBhbiBpbnB1dCwgdGV4dGFyZWEgLi4uXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmJpbmRfdG8uYmx1cihmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gc2V0dGluZ3MuYmluZF9tZXRob2QuZ2V0KHNldHRpbmdzLmJpbmRfdG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuanFDcm9uR2V0SW5zdGFuY2UoKS5zZXRDcm9uKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNhdmVkID0gc2V0dGluZ3MuYmluZF9tZXRob2QuZ2V0KHNldHRpbmdzLmJpbmRfdG8pO1xuICAgICAgICAgICAgICAgIGNyb24gPSBuZXcganFDcm9uKHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBjcm9uLnNldENyb24oc2F2ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY3JvbiA9IG5ldyBqcUNyb24oc2V0dGluZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJCh0aGlzKS5kYXRhKCdqcUNyb24nLCBjcm9uKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBqcUNyb24gY2xhc3NcbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBqcUNyb25JbnN0YW5jZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGpxQ3JvbihzZXR0aW5ncykge1xuICAgICAgICB2YXIgX2luaXRpYWxpemVkICA9IGZhbHNlO1xuICAgICAgICB2YXIgX3NlbGYgICAgICAgICA9IHRoaXM7XG4gICAgICAgIHZhciBfJGVsdCAgICAgICAgID0gdGhpcztcbiAgICAgICAgdmFyIF8kb2JqICAgICAgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1jb250YWluZXJcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrcyAgICAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tYmxvY2tzXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRibG9ja1BFUklPRCA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLXBlcmlvZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tET00gICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1kb21cIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrTU9OVEggID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tbW9udGhcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrTUlOUyAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tbWluc1wiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tET1cgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1kb3dcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrVElNRSAgID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tdGltZVwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kY3Jvc3MgICAgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1jcm9zc1wiPiYjMTAwMDg7PC9zcGFuPicpO1xuICAgICAgICB2YXIgX3NlbGVjdG9ycyAgICA9IFtdO1xuICAgICAgICB2YXIgX3NlbGVjdG9yUGVyaW9kLCBfc2VsZWN0b3JNaW5zLCBfc2VsZWN0b3JUaW1lSCwgX3NlbGVjdG9yVGltZU0sIF9zZWxlY3RvckRvdywgX3NlbGVjdG9yRG9tLCBfc2VsZWN0b3JNb250aDtcblxuICAgICAgICAvLyBpbnN0YW5jaWF0ZSBhIG5ldyBzZWxlY3RvclxuICAgICAgICBmdW5jdGlvbiBuZXdTZWxlY3RvcigkYmxvY2ssIG11bHRpcGxlLCB0eXBlKXtcbiAgICAgICAgICAgIHZhciBzZWxlY3RvciA9IG5ldyBqcUNyb25TZWxlY3Rvcihfc2VsZiwgJGJsb2NrLCBtdWx0aXBsZSwgdHlwZSk7XG4gICAgICAgICAgICBzZWxlY3Rvci4kLmJpbmQoJ3NlbGVjdG9yOm9wZW4nLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIC8vIHdlIGNsb3NlIGFsbCBvcGVuZWQgc2VsZWN0b3JzIG9mIGFsbCBvdGhlciBqcUNyb25cbiAgICAgICAgICAgICAgICBmb3IodmFyIG4gPSBqcUNyb25JbnN0YW5jZXMubGVuZ3RoOyBuLS07ICl7XG4gICAgICAgICAgICAgICAgICAgIGlmKGpxQ3Jvbkluc3RhbmNlc1tuXSAhPSBfc2VsZikge1xuICAgICAgICAgICAgICAgICAgICAgICAganFDcm9uSW5zdGFuY2VzW25dLmNsb3NlU2VsZWN0b3JzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjbG9zZSBhbGwgb3RoZXIgb3BlbmVkIHNlbGVjdG9ycyBvZiB0aGlzIGpxQ3JvblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKHZhciBvID0gX3NlbGVjdG9ycy5sZW5ndGg7IG8tLTsgKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihfc2VsZWN0b3JzW29dICE9IHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvcnNbb10uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNlbGVjdG9yLiQuYmluZCgnc2VsZWN0b3I6Y2hhbmdlJywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICB2YXIgYm91bmRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gZG9uJ3QgcHJvcGFnYXRlIGlmIG5vdCBpbml0aWFsaXplZFxuICAgICAgICAgICAgICAgIGlmKCFfaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICAvLyBiaW5kIGRhdGEgYmV0d2VlbiB0d28gbWludXRlIHNlbGVjdG9ycyAob25seSBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgbXVsdGlwbGUgc2V0dGluZ3MpXG4gICAgICAgICAgICAgICAgaWYoc2V0dGluZ3MubXVsdGlwbGVfbWlucyA9PSBzZXR0aW5ncy5tdWx0aXBsZV90aW1lX21pbnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0b3IgPT0gX3NlbGVjdG9yTWlucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRDaGFuZ2VkID0gX3NlbGVjdG9yVGltZU0uc2V0VmFsdWUoX3NlbGVjdG9yTWlucy5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHNlbGVjdG9yID09IF9zZWxlY3RvclRpbWVNKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZENoYW5nZWQgPSBfc2VsZWN0b3JNaW5zLnNldFZhbHVlKF9zZWxlY3RvclRpbWVNLmdldFZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHdlIHByb3BhZ2F0ZSB0aGUgY2hhbmdlIGV2ZW50IHRvIHRoZSBtYWluIG9iamVjdFxuICAgICAgICAgICAgICAgIGJvdW5kQ2hhbmdlZCB8fCBfJG9iai50cmlnZ2VyKCdjcm9uOmNoYW5nZScsIF9zZWxmLmdldENyb24oKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9zZWxlY3RvcnMucHVzaChzZWxlY3Rvcik7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0b3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkaXNhYmxlIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLmRpc2FibGUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRvYmouYWRkQ2xhc3MoJ2Rpc2FibGUnKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmRpc2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgX3NlbGYuY2xvc2VTZWxlY3RvcnMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyByZXR1cm4gaWYgdGhlIHNlbGVjdG9yIGlzIGRpc2FibGVkXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzLmRpc2FibGUgPT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBlbmFibGUgdGhlIHNlbGVjdG9yXG4gICAgICAgIHRoaXMuZW5hYmxlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kb2JqLnJlbW92ZUNsYXNzKCdkaXNhYmxlJyk7XG4gICAgICAgICAgICBzZXR0aW5ncy5kaXNhYmxlID0gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZ2V0IGNyb24gdmFsdWVcbiAgICAgICAgdGhpcy5nZXRDcm9uID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBwZXJpb2QgPSBfc2VsZWN0b3JQZXJpb2QuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IFsnKicsICcqJywgJyonLCAnKicsICcqJ107XG4gICAgICAgICAgICBpZihwZXJpb2QgPT0gJ2hvdXInKSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbMF0gPSBfc2VsZWN0b3JNaW5zLmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICdkYXknIHx8IHBlcmlvZCA9PSAnd2VlaycgfHwgcGVyaW9kID09ICdtb250aCcgfHwgcGVyaW9kID09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzBdID0gX3NlbGVjdG9yVGltZU0uZ2V0Q3JvblZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaXRlbXNbMV0gPSBfc2VsZWN0b3JUaW1lSC5nZXRDcm9uVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHBlcmlvZCA9PSAnbW9udGgnIHx8IHBlcmlvZCA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1syXSA9IF9zZWxlY3RvckRvbS5nZXRDcm9uVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHBlcmlvZCA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1szXSA9IF9zZWxlY3Rvck1vbnRoLmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICd3ZWVrJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzRdID0gX3NlbGVjdG9yRG93LmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmpvaW4oJyAnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzZXQgY3JvbiAoc3RyaW5nIGxpa2UgKiAqICogKiAqKVxuICAgICAgICB0aGlzLnNldENyb24gPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgICAgIGlmKCFzdHIpIHJldHVybjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccysvZywgJyAnKS5yZXBsYWNlKC9eICsvLCAnJykucmVwbGFjZSgvICskLywgJycpOyAvLyBzYW5pdGl6ZVxuICAgICAgICAgICAgICAgIHZhciBtYXNrID0gc3RyLnJlcGxhY2UoL1teXFwqIF0vZywgJy0nKS5yZXBsYWNlKC8tKy9nLCAnLScpLnJlcGxhY2UoLyArL2csICcnKTtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBzdHIuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoICE9IDUpIF9zZWxmLmVycm9yKF9zZWxmLmdldFRleHQoJ2Vycm9yMicpKTtcbiAgICAgICAgICAgICAgICBpZihtYXNrID09ICcqKioqKicpIHtcdFx0XHRcdFx0XHQvLyAxIHBvc3NpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgnbWludXRlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYobWFzayA9PSAnLSoqKionKSB7XHRcdFx0XHRcdC8vIDEgcG9zc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCdob3VyJyk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZihtYXNrLnN1YnN0cmluZygyLCBtYXNrLmxlbmd0aCkgPT0gJyoqKicpIHtcdFx0XHQvLyA0IHBvc3NpYmlsaXRpZXNcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCdkYXknKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRDcm9uVmFsdWUoaXRlbXNbMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKG1hc2suc3Vic3RyaW5nKDIsIG1hc2subGVuZ3RoKSA9PSAnLSoqJykge1x0XHRcdC8vIDQgcG9zc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguc2V0Q3JvblZhbHVlKGl0ZW1zWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yRG9tLnNldENyb25WYWx1ZShpdGVtc1syXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYobWFzay5zdWJzdHJpbmcoMiwgbWFzay5sZW5ndGgpID09ICcqKi0nKSB7XHRcdFx0Ly8gNCBwb3NzaWJpbGl0aWVzXG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgnd2VlaycpO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILnNldENyb25WYWx1ZShpdGVtc1sxXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvckRvdy5zZXRDcm9uVmFsdWUoaXRlbXNbNF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtYXNrLnN1YnN0cmluZygzLCBtYXNrLmxlbmd0aCkgPT0gJy0qJykge1x0XHRcdC8vIDggcG9zc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ3llYXInKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRDcm9uVmFsdWUoaXRlbXNbMV0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JEb20uc2V0Q3JvblZhbHVlKGl0ZW1zWzJdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTW9udGguc2V0Q3JvblZhbHVlKGl0ZW1zWzNdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmVycm9yKF9zZWxmLmdldFRleHQoJ2Vycm9yNCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3NlbGYuY2xlYXJFcnJvcigpO1xuICAgICAgICAgICAgfSBjYXRjaChlKSB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsb3NlIGFsbCBjaGlsZCBzZWxlY3RvcnNcbiAgICAgICAgdGhpcy5jbG9zZVNlbGVjdG9ycyA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBmb3IodmFyIG4gPSBfc2VsZWN0b3JzLmxlbmd0aDsgbi0tOyApe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvcnNbbl0uY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgdGhlIG1haW4gZWxlbWVudCBpZFxuICAgICAgICB0aGlzLmdldElkID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHJldHVybiBfJGVsdC5hdHRyKCdpZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2V0IHRoZSB0cmFuc2xhdGVkIHRleHRcbiAgICAgICAgdGhpcy5nZXRUZXh0ID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICB2YXIgdGV4dCA9IHNldHRpbmdzLnRleHRzW3NldHRpbmdzLmxhbmddW2tleV0gfHwgbnVsbDtcbiAgICAgICAgICAgIGlmKHR5cGVvZih0ZXh0KSA9PSBcInN0cmluZ1wiICYmIHRleHQubWF0Y2goJzxiJykpe1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyg8YiAqXFwvPikvZ2ksICc8L3NwYW4+PGIgLz48c3BhbiBjbGFzcz1cImpxQ3Jvbi10ZXh0XCI+Jyk7XG4gICAgICAgICAgICAgICAgdGV4dCA9ICc8c3BhbiBjbGFzcz1cImpxQ3Jvbi10ZXh0XCI+JyArIHRleHQgKyAnPC9zcGFuPic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHRleHRcbiAgICAgICAgdGhpcy5nZXRIdW1hblRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ZXh0cz1bXTtcbiAgICAgICAgICAgIF8kb2JqXG4gICAgICAgICAgICAgICAgLmZpbmQoJz4gc3BhbiA+IHNwYW46dmlzaWJsZScpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5qcUNyb24tdGV4dCwgLmpxQ3Jvbi1zZWxlY3RvciA+IHNwYW4nKVxuICAgICAgICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9ICQodGhpcykudGV4dCgpLnJlcGxhY2UoL1xccyskL2csICcnKS5yZXBsYWNlKC9eXFxzKy9nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgJiYgdGV4dHMucHVzaCh0ZXh0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0cy5qb2luKCcgJykucmVwbGFjZSgvXFxzOlxccy9nLCAnOicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2V0IHNldHRpbmdzXG4gICAgICAgIHRoaXMuZ2V0U2V0dGluZ3MgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGRpc3BsYXkgYW4gZXJyb3JcbiAgICAgICAgdGhpcy5lcnJvciA9IGZ1bmN0aW9uKG1zZykge1xuICAgICAgICAgICAgY29uc29sZSAmJiBjb25zb2xlLmVycm9yKCdbanFDcm9uIEVycm9yXSAnICsgbXNnKTtcbiAgICAgICAgICAgIF8kb2JqLmFkZENsYXNzKCdqcUNyb24tZXJyb3InKS5hdHRyKCd0aXRsZScsIG1zZyk7XG4gICAgICAgICAgICB0aHJvdyBtc2c7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2xlYXIgZXJyb3JcbiAgICAgICAgdGhpcy5jbGVhckVycm9yID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kb2JqLmF0dHIoJ3RpdGxlJywgJycpLnJlbW92ZUNsYXNzKCdqcUNyb24tZXJyb3InKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjbGVhclxuICAgICAgICB0aGlzLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBfc2VsZWN0b3JEb20uc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yRG93LnNldFZhbHVlKFtdKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yTW9udGguc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGYudHJpZ2dlckNoYW5nZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGluaXQgKGNhbGxlZCBpbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgdGhpcy5pbml0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBuLGksbGFiZWxzTGlzdCxsaXN0O1xuICAgICAgICAgICAgaWYoX2luaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAgICAgICAgIHNldHRpbmdzID0ganFDcm9uTWVyZ2VTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgICAgICAgICBzZXR0aW5ncy5qcXVlcnlfZWxlbWVudCB8fCBfc2VsZi5lcnJvcihfc2VsZi5nZXRUZXh0KCdlcnJvcjMnKSk7XG4gICAgICAgICAgICBfJGVsdCA9IHNldHRpbmdzLmpxdWVyeV9lbGVtZW50O1xuICAgICAgICAgICAgXyRlbHQuYXBwZW5kKF8kb2JqKTtcbiAgICAgICAgICAgIF8kb2JqLmRhdGEoJ2lkJywgc2V0dGluZ3MuaWQpO1xuICAgICAgICAgICAgXyRvYmouZGF0YSgnanFDcm9uJywgX3NlbGYpO1xuICAgICAgICAgICAgXyRvYmouYXBwZW5kKF8kYmxvY2tzKTtcbiAgICAgICAgICAgIHNldHRpbmdzLm5vX3Jlc2V0X2J1dHRvbiB8fCBfJG9iai5hcHBlbmQoXyRjcm9zcyk7XG4gICAgICAgICAgICAoIXNldHRpbmdzLmRpc2FibGUpIHx8IF8kb2JqLmFkZENsYXNzKCdkaXNhYmxlJyk7XG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja1BFUklPRCk7XG5cbiAgICAgICAgICAgIGlmICggL14oa28pJC9pLnRlc3Qoc2V0dGluZ3MubGFuZykgKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrTU9OVEgsIF8kYmxvY2tET00pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrRE9NLCBfJGJsb2NrTU9OVEgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja01JTlMpO1xuICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tET1cpO1xuICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tUSU1FKTtcblxuICAgICAgICAgICAgLy8gdmFyaW91cyBiaW5kaW5nXG4gICAgICAgICAgICBfJGNyb3NzLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgX3NlbGYuaXNEaXNhYmxlZCgpIHx8IF9zZWxmLmNsZWFyKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gYmluZGluZyBmcm9tIGNyb24gdG8gdGFyZ2V0XG4gICAgICAgICAgICBfJG9iai5iaW5kKCdjcm9uOmNoYW5nZScsIGZ1bmN0aW9uKGV2dCwgdmFsdWUpe1xuICAgICAgICAgICAgICAgIGlmKCFzZXR0aW5ncy5iaW5kX3RvKSByZXR1cm47XG4gICAgICAgICAgICAgICAgc2V0dGluZ3MuYmluZF9tZXRob2Quc2V0ICYmIHNldHRpbmdzLmJpbmRfbWV0aG9kLnNldChzZXR0aW5ncy5iaW5kX3RvLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgX3NlbGYuY2xlYXJFcnJvcigpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFBFUklPRFxuICAgICAgICAgICAgXyRibG9ja1BFUklPRC5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF9wZXJpb2QnKSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2QgPSBuZXdTZWxlY3RvcihfJGJsb2NrUEVSSU9ELCBmYWxzZSwgJ3BlcmlvZCcpO1xuICAgICAgICAgICAgc2V0dGluZ3MuZW5hYmxlZF9taW51dGUgJiYgX3NlbGVjdG9yUGVyaW9kLmFkZCgnbWludXRlJywgX3NlbGYuZ2V0VGV4dCgnbmFtZV9taW51dGUnKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX2hvdXIgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCdob3VyJywgICBfc2VsZi5nZXRUZXh0KCduYW1lX2hvdXInKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX2RheSAgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCdkYXknLCAgICBfc2VsZi5nZXRUZXh0KCduYW1lX2RheScpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfd2VlayAgICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ3dlZWsnLCAgIF9zZWxmLmdldFRleHQoJ25hbWVfd2VlaycpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfbW9udGggICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ21vbnRoJywgIF9zZWxmLmdldFRleHQoJ25hbWVfbW9udGgnKSk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX3llYXIgICAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCd5ZWFyJywgICBfc2VsZi5nZXRUZXh0KCduYW1lX3llYXInKSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2QuJC5iaW5kKCdzZWxlY3RvcjpjaGFuZ2UnLCBmdW5jdGlvbihlLCB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgXyRibG9ja0RPTS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja01PTlRILmhpZGUoKTtcbiAgICAgICAgICAgICAgICBfJGJsb2NrTUlOUy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja0RPVy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIGlmKHZhbHVlID09ICdob3VyJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrTUlOUy5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICd3ZWVrJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrRE9XLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICdtb250aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja0RPTS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tUSU1FLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja0RPTS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tNT05USC5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tUSU1FLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZShzZXR0aW5ncy5kZWZhdWx0X3BlcmlvZCk7XG5cbiAgICAgICAgICAgIC8vIE1JTlMgIChtaW51dGVzKVxuICAgICAgICAgICAgXyRibG9ja01JTlMuYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfbWlucycpKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMgPSBuZXdTZWxlY3RvcihfJGJsb2NrTUlOUywgc2V0dGluZ3MubXVsdGlwbGVfbWlucywgJ21pbnV0ZXMnKTtcbiAgICAgICAgICAgIGZvcihpPTAsIGxpc3Q9c2V0dGluZ3MubWludXRlczsgaTxsaXN0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVElNRSAgKGhvdXI6bWluKVxuICAgICAgICAgICAgXyRibG9ja1RJTUUuYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfdGltZScpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvclRpbWVIID0gbmV3U2VsZWN0b3IoXyRibG9ja1RJTUUsIHNldHRpbmdzLm11bHRpcGxlX3RpbWVfaG91cnMsICd0aW1lX2hvdXJzJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PXNldHRpbmdzLmhvdXJzLCBsYWJlbHNMaXN0PXNldHRpbmdzLmhvdXJfbGFiZWxzOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILmFkZChsaXN0W2ldLCBsYWJlbHNMaXN0W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNID0gbmV3U2VsZWN0b3IoXyRibG9ja1RJTUUsIHNldHRpbmdzLm11bHRpcGxlX3RpbWVfbWludXRlcywgJ3RpbWVfbWludXRlcycpO1xuICAgICAgICAgICAgZm9yKGk9MCwgbGlzdD1zZXR0aW5ncy5taW51dGVzOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRE9XICAoZGF5IG9mIHdlZWspXG4gICAgICAgICAgICBfJGJsb2NrRE9XLmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X2RvdycpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvckRvdyA9IG5ld1NlbGVjdG9yKF8kYmxvY2tET1csIHNldHRpbmdzLm11bHRpcGxlX2RvdywgJ2RheV9vZl93ZWVrJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PV9zZWxmLmdldFRleHQoJ3dlZWtkYXlzJyk7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yRG93LmFkZChpKzEsIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBET00gIChkYXkgb2YgbW9udGgpXG4gICAgICAgICAgICBfJGJsb2NrRE9NLmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X2RvbScpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvckRvbSA9IG5ld1NlbGVjdG9yKF8kYmxvY2tET00sIHNldHRpbmdzLm11bHRpcGxlX2RvbSwgJ2RheV9vZl9tb250aCcpO1xuICAgICAgICAgICAgZm9yKGk9MCwgbGlzdD1zZXR0aW5ncy5tb250aGRheXM7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yRG9tLmFkZChsaXN0W2ldLCBsaXN0W2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTU9OVEggIChkYXkgb2Ygd2VlaylcbiAgICAgICAgICAgIF8kYmxvY2tNT05USC5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF9tb250aCcpKTtcbiAgICAgICAgICAgIF9zZWxlY3Rvck1vbnRoID0gbmV3U2VsZWN0b3IoXyRibG9ja01PTlRILCBzZXR0aW5ncy5tdWx0aXBsZV9tb250aCwgJ21vbnRoJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PV9zZWxmLmdldFRleHQoJ21vbnRocycpOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1vbnRoLmFkZChpKzEsIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjbG9zZSBhbGwgc2VsZWN0b3JzIHdoZW4gd2UgY2xpY2sgaW4gYm9keVxuICAgICAgICAgICAgJCgnYm9keScpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdmFyIGksIG4gPSBfc2VsZWN0b3JzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JzW2ldLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgICBpZihzZXR0aW5ncy5kZWZhdWx0X3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgX3NlbGYuc2V0Q3JvbihzZXR0aW5ncy5kZWZhdWx0X3ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50XG4gICAgICAgIHRoaXMudHJpZ2dlckNoYW5nZSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBfJG9iai50cmlnZ2VyKCdjcm9uOmNoYW5nZScsIF9zZWxmLmdldENyb24oKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gc3RvcmUgaW5zdGFuY2UgaW4gYXJyYXlcbiAgICAgICAganFDcm9uSW5zdGFuY2VzLnB1c2godGhpcyk7XG5cbiAgICAgICAgLy8gZXhwb3NlIG1haW4ganF1ZXJ5IG9iamVjdFxuICAgICAgICB0aGlzLiQgPSBfJG9iajtcblxuICAgICAgICAvLyBpbml0XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgICAgIF9zZWxmLnRyaWdnZXJDaGFuZ2UoKTtcbiAgICAgICAgfSBjYXRjaChlKXt9XG4gICAgfVxuICAgIHRoaXMuanFDcm9uID0ganFDcm9uO1xufSkuY2FsbCh3aW5kb3csICQpO1xuXG5cbi8qKlxuICoganFDcm9uU2VsZWN0b3IgY2xhc3NcbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIGZ1bmN0aW9uIGpxQ3JvblNlbGVjdG9yKF9jcm9uLCBfJGJsb2NrLCBfbXVsdGlwbGUsIF90eXBlKXtcbiAgICAgICAgdmFyIF9zZWxmICAgICAgPSB0aGlzO1xuICAgICAgICB2YXIgXyRsaXN0ICAgICA9ICQoJzx1bCBjbGFzcz1cImpxQ3Jvbi1zZWxlY3Rvci1saXN0XCI+PC91bD4nKTtcbiAgICAgICAgdmFyIF8kdGl0bGUgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1zZWxlY3Rvci10aXRsZVwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kc2VsZWN0b3IgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1zZWxlY3RvclwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF92YWx1ZXMgICAgPSB7fTtcbiAgICAgICAgdmFyIF92YWx1ZSAgICAgPSBbXTtcbiAgICAgICAgdmFyIF9oYXNOdW1lcmljVGV4dHMgPSB0cnVlO1xuICAgICAgICB2YXIgX251bWVyaWNfemVyb19wYWQgPSBfY3Jvbi5nZXRTZXR0aW5ncygpLm51bWVyaWNfemVyb19wYWQ7XG5cbiAgICAgICAgLy8gcmV0dXJuIGFuIGFycmF5IHdpdGhvdXQgZG91YmxvblxuICAgICAgICBmdW5jdGlvbiBhcnJheV91bmlxdWUobCl7XG4gICAgICAgICAgICB2YXIgaT0wLG49bC5sZW5ndGgsaz17fSxhPVtdO1xuICAgICAgICAgICAgd2hpbGUoaTxuKSB7XG4gICAgICAgICAgICAgICAga1tsW2ldXSB8fCAoa1tsW2ldXSA9IDEgJiYgYS5wdXNoKGxbaV0pKTtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGdldCB0aGUgdmFsdWUgKGFuIGFycmF5IGlmIG11bHRpcGxlLCBlbHNlIGEgc2luZ2xlIHZhbHVlKVxuICAgICAgICB0aGlzLmdldFZhbHVlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHJldHVybiBfbXVsdGlwbGUgPyBfdmFsdWUgOiBfdmFsdWVbMF07XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZ2V0IGEgY29ycmVjdCBzdHJpbmcgZm9yIGNyb25cbiAgICAgICAgdGhpcy5nZXRDcm9uVmFsdWUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoX3ZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gJyonO1xuICAgICAgICAgICAgdmFyIGNyb24gPSBbX3ZhbHVlWzBdXSwgaSwgcyA9IF92YWx1ZVswXSwgYyA9IF92YWx1ZVswXSwgbiA9IF92YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICBmb3IoaT0xOyBpPG47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmKF92YWx1ZVtpXSA9PSBjKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbltjcm9uLmxlbmd0aC0xXSA9IHMrJy0nK2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzID0gYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbi5wdXNoKGMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcm9uLmpvaW4oJywnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzZXQgdGhlIGNyb24gdmFsdWVcbiAgICAgICAgdGhpcy5zZXRDcm9uVmFsdWUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXSwgbSAsaSwgbjtcbiAgICAgICAgICAgIGlmKHN0ciAhPT0gJyonKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUoc3RyICE9ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgXCIqL25cIiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIG0gPSBzdHIubWF0Y2goL15cXCpcXC8oWzAtOV0rKSw/Lyk7XG4gICAgICAgICAgICAgICAgICAgIGlmKG0gJiYgbS5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGk9MDsgaTw9NTk7IGkrPShtWzFdfDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiYS1iL25cIiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIG0gPSBzdHIubWF0Y2goL14oWzAtOV0rKS0oWzAtOV0rKVxcLyhbMC05XSspLD8vKTtcbiAgICAgICAgICAgICAgICAgICAgaWYobSAmJiBtLmxlbmd0aCA9PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IoaT0obVsxXXwwKTsgaTw9KG1bMl18MCk7IGkrPShtWzNdfDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiYS1iXCIgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICBtID0gc3RyLm1hdGNoKC9eKFswLTldKyktKFswLTldKyksPy8pO1xuICAgICAgICAgICAgICAgICAgICBpZihtICYmIG0ubGVuZ3RoID09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpPShtWzFdfDApOyBpPD0obVsyXXwwKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IFwiY1wiIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgbSA9IHN0ci5tYXRjaCgvXihbMC05XSspLD8vKTtcbiAgICAgICAgICAgICAgICAgICAgaWYobSAmJiBtLmxlbmd0aCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChtWzFdfDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UobVswXSwgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGdvZXMgd3JvbmcgaW4gdGhlIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZSh2YWx1ZXMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsb3NlIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLmNsb3NlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kc2VsZWN0b3IudHJpZ2dlcignc2VsZWN0b3I6Y2xvc2UnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBvcGVuIHRoZSBzZWxlY3RvclxuICAgICAgICB0aGlzLm9wZW4gPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRzZWxlY3Rvci50cmlnZ2VyKCdzZWxlY3RvcjpvcGVuJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gd2hldGhlciB0aGUgc2VsZWN0b3IgaXMgb3BlblxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gXyRsaXN0LmlzKCc6dmlzaWJsZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGFkZCBhIHNlbGVjdGVkIHZhbHVlIHRvIHRoZSBsaXN0XG4gICAgICAgIHRoaXMuYWRkVmFsdWUgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBfbXVsdGlwbGUgPyBfdmFsdWUuc2xpY2UoMCkgOiBbXTsgLy8gY2xvbmUgYXJyYXlcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKGtleSk7XG4gICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZSh2YWx1ZXMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHJlbW92ZSBhIHNlbGVjdGVkIHZhbHVlIGZyb20gdGhlIGxpc3RcbiAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZSA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYoX211bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGksIG5ld1ZhbHVlID0gW107XG4gICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxfdmFsdWUubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZihrZXkgIT0gW192YWx1ZVtpXV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnB1c2goX3ZhbHVlW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfc2VsZi5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfc2VsZi5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNldCB0aGUgc2VsZWN0ZWQgdmFsdWUocykgb2YgdGhlIGxpc3RcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSA9IGZ1bmN0aW9uKGtleXMpe1xuICAgICAgICAgICAgdmFyIGksIG5ld0tleXMgPSBbXSwgc2F2ZWQgPSBfdmFsdWUuam9pbignICcpO1xuICAgICAgICAgICAgaWYoISQuaXNBcnJheShrZXlzKSkga2V5cyA9IFtrZXlzXTtcbiAgICAgICAgICAgIF8kbGlzdC5maW5kKCdsaScpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAga2V5cyA9IGFycmF5X3VuaXF1ZShrZXlzKTtcbiAgICAgICAgICAgIGtleXMuc29ydChmdW5jdGlvbihhLCBiKXtcbiAgICAgICAgICAgICAgICB2YXIgdGEgPSB0eXBlb2YoYSk7XG4gICAgICAgICAgICAgICAgdmFyIHRiID0gdHlwZW9mKGIpO1xuICAgICAgICAgICAgICAgIGlmKHRhPT10YiAmJiB0YT09XCJudW1iZXJcIikgcmV0dXJuIGEtYjtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBTdHJpbmcoYSkgPT0gU3RyaW5nKGIpID8gMCA6IChTdHJpbmcoYSkgPCBTdHJpbmcoYikgPyAtMSA6IDEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZihfbXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPGtleXMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZihrZXlzW2ldIGluIF92YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92YWx1ZXNba2V5c1tpXV0uYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdLZXlzLnB1c2goa2V5c1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZihrZXlzWzBdIGluIF92YWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZhbHVlc1trZXlzWzBdXS5hZGRDbGFzcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3S2V5cy5wdXNoKGtleXNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlbW92ZSB1bmFsbG93ZWQgdmFsdWVzXG4gICAgICAgICAgICBfdmFsdWUgPSBuZXdLZXlzO1xuICAgICAgICAgICAgaWYoc2F2ZWQgIT0gX3ZhbHVlLmpvaW4oJyAnKSkge1xuICAgICAgICAgICAgICAgIF8kc2VsZWN0b3IudHJpZ2dlcignc2VsZWN0b3I6Y2hhbmdlJywgX211bHRpcGxlID8ga2V5cyA6IGtleXNbMF0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGdldCB0aGUgdGl0bGUgdGV4dFxuICAgICAgICB0aGlzLmdldFRpdGxlVGV4dCA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB2YXIgZ2V0VmFsdWVUZXh0ID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrZXkgaW4gX3ZhbHVlcykgPyBfdmFsdWVzW2tleV0udGV4dCgpIDoga2V5O1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYoX3ZhbHVlLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jcm9uLmdldFRleHQoJ2VtcHR5XycgKyBfdHlwZSkgfHwgX2Nyb24uZ2V0VGV4dCgnZW1wdHknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjcm9uID0gW2dldFZhbHVlVGV4dChfdmFsdWVbMF0pXSwgaSwgcyA9IF92YWx1ZVswXSwgYyA9IF92YWx1ZVswXSwgbiA9IF92YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICBmb3IoaT0xOyBpPG47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmKF92YWx1ZVtpXSA9PSBjKzEpIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbltjcm9uLmxlbmd0aC0xXSA9IGdldFZhbHVlVGV4dChzKSsnLScrZ2V0VmFsdWVUZXh0KGMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcyA9IGMgPSBfdmFsdWVbaV07XG4gICAgICAgICAgICAgICAgICAgIGNyb24ucHVzaChnZXRWYWx1ZVRleHQoYykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcm9uLmpvaW4oJywnKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjbGVhciBsaXN0XG4gICAgICAgIHRoaXMuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIF92YWx1ZXMgPSB7fTtcbiAgICAgICAgICAgIF9zZWxmLnNldFZhbHVlKFtdKTtcbiAgICAgICAgICAgIF8kbGlzdC5lbXB0eSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGFkZCBhIChrZXksIHZhbHVlKSBwYWlyXG4gICAgICAgIHRoaXMuYWRkID0gZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgaWYoISh2YWx1ZSsnJykubWF0Y2goL15bMC05XSskLykpIF9oYXNOdW1lcmljVGV4dHMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmKF9udW1lcmljX3plcm9fcGFkICYmIF9oYXNOdW1lcmljVGV4dHMgJiYgdmFsdWUgPCAxMCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gJzAnK3ZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyICRpdGVtID0gJCgnPGxpPicgKyB2YWx1ZSArICc8L2xpPicpO1xuICAgICAgICAgICAgXyRsaXN0LmFwcGVuZCgkaXRlbSk7XG4gICAgICAgICAgICBfdmFsdWVzW2tleV0gPSAkaXRlbTtcbiAgICAgICAgICAgICRpdGVtLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgaWYoX211bHRpcGxlICYmICQodGhpcykuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYucmVtb3ZlVmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmFkZFZhbHVlKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFfbXVsdGlwbGUpIF9zZWxmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZXhwb3NlIG1haW4ganF1ZXJ5IG9iamVjdFxuICAgICAgICB0aGlzLiQgPSBfJHNlbGVjdG9yO1xuXG4gICAgICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgIF8kYmxvY2suZmluZCgnYjplcSgwKScpLmFmdGVyKF8kc2VsZWN0b3IpLnJlbW92ZSgpO1xuICAgICAgICBfJHNlbGVjdG9yXG4gICAgICAgICAgICAuYWRkQ2xhc3MoJ2pxQ3Jvbi1zZWxlY3Rvci0nICsgXyRibG9jay5maW5kKCcuanFDcm9uLXNlbGVjdG9yJykubGVuZ3RoKVxuICAgICAgICAgICAgLmFwcGVuZChfJHRpdGxlKVxuICAgICAgICAgICAgLmFwcGVuZChfJGxpc3QpXG4gICAgICAgICAgICAuYmluZCgnc2VsZWN0b3I6b3BlbicsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgaWYoX2hhc051bWVyaWNUZXh0cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmJjb2xzID0gMSwgbiA9IF8kbGlzdC5maW5kKCdsaScpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYobiA+IDUgJiYgbiA8PSAxNikgbmJjb2xzID0gMjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gMTYgJiYgbiA8PSAyMykgbmJjb2xzID0gMztcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gMjMgJiYgbiA8PSA0MCkgbmJjb2xzID0gNDtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihuID4gNDApIG5iY29scyA9IDU7XG4gICAgICAgICAgICAgICAgICAgIF8kbGlzdC5hZGRDbGFzcygnY29scycrbmJjb2xzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXyRsaXN0LnNob3coKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYmluZCgnc2VsZWN0b3I6Y2xvc2UnLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIF8kbGlzdC5oaWRlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmJpbmQoJ3NlbGVjdG9yOmNoYW5nZScsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgXyR0aXRsZS5odG1sKF9zZWxmLmdldFRpdGxlVGV4dCgpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudHJpZ2dlcignc2VsZWN0b3I6Y2hhbmdlJylcbiAgICAgICAgO1xuICAgICAgICAkLmZuLmRpc2FibGVTZWxlY3Rpb24gJiYgXyRzZWxlY3Rvci5kaXNhYmxlU2VsZWN0aW9uKCk7IC8vIG9ubHkgd29yayB3aXRoIGpRdWVyeSBVSVxuICAgICAgICBfJHRpdGxlLmNsaWNrKGZ1bmN0aW9uKGUpe1xuICAgICAgICAgICAgKF9zZWxmLmlzT3BlbmVkKCkgfHwgX2Nyb24uaXNEaXNhYmxlZCgpKSA/IF9zZWxmLmNsb3NlKCkgOiBfc2VsZi5vcGVuKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBfc2VsZi5jbG9zZSgpO1xuICAgICAgICBfc2VsZi5jbGVhcigpO1xuICAgIH1cbiAgICB0aGlzLmpxQ3JvblNlbGVjdG9yID0ganFDcm9uU2VsZWN0b3I7XG59KS5jYWxsKHdpbmRvdywgJCk7XG5cbi8qKlxuICogR2VuZXJhdGUgdW5pcXVlIGlkIGZvciBlYWNoIGVsZW1lbnQuXG4gKiBTa2lwIGVsZW1lbnRzIHdoaWNoIGhhdmUgYWxyZWFkeSBhbiBpZC5cbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgIHZhciBqcVVJRCA9IDA7XG4gICAgdmFyIGpxR2V0VUlEID0gZnVuY3Rpb24ocHJlZml4KXtcbiAgICAgICAgdmFyIGlkO1xuICAgICAgICB3aGlsZSgxKSB7XG4gICAgICAgICAgICBqcVVJRCsrO1xuICAgICAgICAgICAgaWQgPSAoKHByZWZpeCB8fCAnSlFVSUQnKSsnJykgKyBqcVVJRDtcbiAgICAgICAgICAgIGlmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpIHJldHVybiBpZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgJC5mbi51bmlxdWVJZCA9ICBmdW5jdGlvbihwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgaWQgPSBqcUdldFVJRChwcmVmaXgpO1xuICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIGlkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuXG4vKipcbiAqIEV4dGVuZHMgalF1ZXJ5IHNlbGVjdG9ycyB3aXRoIG5ldyBibG9jayBzZWxlY3RvclxuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgJC5leHRlbmQoJC5leHByWyc6J10sIHtcbiAgICAgICAgY29udGFpbmVyOiBmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGEudGFnTmFtZSsnJykudG9Mb3dlckNhc2UoKSBpbiB7XG4gICAgICAgICAgICAgICAgYToxLFxuICAgICAgICAgICAgICAgIGFiYnI6MSxcbiAgICAgICAgICAgICAgICBhY3JvbnltOjEsXG4gICAgICAgICAgICAgICAgYWRkcmVzczoxLFxuICAgICAgICAgICAgICAgIGI6MSxcbiAgICAgICAgICAgICAgICBiaWc6MSxcbiAgICAgICAgICAgICAgICBibG9ja3F1b3RlOjEsXG4gICAgICAgICAgICAgICAgYnV0dG9uOjEsXG4gICAgICAgICAgICAgICAgY2l0ZToxLFxuICAgICAgICAgICAgICAgIGNvZGU6MSxcbiAgICAgICAgICAgICAgICBkZDogMSxcbiAgICAgICAgICAgICAgICBkZWw6MSxcbiAgICAgICAgICAgICAgICBkZm46MSxcbiAgICAgICAgICAgICAgICBkaXY6MSxcbiAgICAgICAgICAgICAgICBkdDoxLFxuICAgICAgICAgICAgICAgIGVtOjEsXG4gICAgICAgICAgICAgICAgZmllbGRzZXQ6MSxcbiAgICAgICAgICAgICAgICBmb3JtOjEsXG4gICAgICAgICAgICAgICAgaDE6MSxcbiAgICAgICAgICAgICAgICBoMjoxLFxuICAgICAgICAgICAgICAgIGgzOjEsXG4gICAgICAgICAgICAgICAgaDQ6MSxcbiAgICAgICAgICAgICAgICBoNToxLFxuICAgICAgICAgICAgICAgIGg2OiAxLFxuICAgICAgICAgICAgICAgIGk6MSxcbiAgICAgICAgICAgICAgICBpbnM6MSxcbiAgICAgICAgICAgICAgICBrYmQ6MSxcbiAgICAgICAgICAgICAgICBsYWJlbDoxLFxuICAgICAgICAgICAgICAgIGxpOjEsXG4gICAgICAgICAgICAgICAgcDoxLFxuICAgICAgICAgICAgICAgIHByZToxLFxuICAgICAgICAgICAgICAgIHE6MSxcbiAgICAgICAgICAgICAgICBzYW1wOjEsXG4gICAgICAgICAgICAgICAgc21hbGw6MSxcbiAgICAgICAgICAgICAgICBzcGFuOjEsXG4gICAgICAgICAgICAgICAgc3Ryb25nOjEsXG4gICAgICAgICAgICAgICAgc3ViOiAxLFxuICAgICAgICAgICAgICAgIHN1cDoxLFxuICAgICAgICAgICAgICAgIHRkOjEsXG4gICAgICAgICAgICAgICAgdHQ6MVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgYXV0b2Nsb3NlOiBmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGEudGFnTmFtZSsnJykudG9Mb3dlckNhc2UoKSBpbiB7XG4gICAgICAgICAgICAgICAgYXJlYToxLFxuICAgICAgICAgICAgICAgIGJhc2U6MSxcbiAgICAgICAgICAgICAgICBiYXNlZm9udDoxLFxuICAgICAgICAgICAgICAgIGJyOjEsXG4gICAgICAgICAgICAgICAgY29sOjEsXG4gICAgICAgICAgICAgICAgZnJhbWU6MSxcbiAgICAgICAgICAgICAgICBocjoxLFxuICAgICAgICAgICAgICAgIGltZzoxLFxuICAgICAgICAgICAgICAgIGlucHV0OjEsXG4gICAgICAgICAgICAgICAgbGluazoxLFxuICAgICAgICAgICAgICAgIG1ldGE6MSxcbiAgICAgICAgICAgICAgICBwYXJhbToxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG59KS5jYWxsKHdpbmRvdywgJCk7XG4iXSwibmFtZXMiOlsiJCIsImpxQ3JvbkRlZmF1bHRTZXR0aW5ncyIsInRleHRzIiwibW9udGhkYXlzIiwiaG91cnMiLCJob3VyX2xhYmVscyIsIm1pbnV0ZXMiLCJsYW5nIiwiZW5hYmxlZF9taW51dGUiLCJlbmFibGVkX2hvdXIiLCJlbmFibGVkX2RheSIsImVuYWJsZWRfd2VlayIsImVuYWJsZWRfbW9udGgiLCJlbmFibGVkX3llYXIiLCJtdWx0aXBsZV9kb20iLCJtdWx0aXBsZV9tb250aCIsIm11bHRpcGxlX21pbnMiLCJtdWx0aXBsZV9kb3ciLCJtdWx0aXBsZV90aW1lX2hvdXJzIiwibXVsdGlwbGVfdGltZV9taW51dGVzIiwibnVtZXJpY196ZXJvX3BhZCIsImRlZmF1bHRfcGVyaW9kIiwiZGVmYXVsdF92YWx1ZSIsIm5vX3Jlc2V0X2J1dHRvbiIsImRpc2FibGVkIiwiYmluZF90byIsImJpbmRfbWV0aG9kIiwic2V0IiwiJGVsZW1lbnQiLCJ2YWx1ZSIsImlzIiwidmFsIiwiZGF0YSIsImdldCIsImV4dGVuZCIsImRzdCIsInNyYyIsImkiLCJpc1BsYWluT2JqZWN0IiwiaXNBcnJheSIsInNsaWNlIiwidW5kZWZpbmVkIiwianFDcm9uTWVyZ2VTZXR0aW5ncyIsIm9iaiIsImNhbGwiLCJ3aW5kb3ciLCJmbiIsImpxQ3JvbkdldEluc3RhbmNlIiwianFDcm9uIiwic2V0dGluZ3MiLCJzYXZlZF9zZXR0aW5ncyIsImVhY2giLCJjcm9uIiwic2F2ZWQiLCIkdGhpcyIsInRyYW5zbGF0aW9ucyIsImlzRW1wdHlPYmplY3QiLCJjb25zb2xlIiwiZXJyb3IiLCJqcXVlcnlfY29udGFpbmVyIiwianF1ZXJ5X2VsZW1lbnQiLCJ1bmlxdWVJZCIsIm5leHQiLCJsZW5ndGgiLCJyZW1vdmUiLCJpbnNlcnRBZnRlciIsImVycm9yMSIsInJlcGxhY2UiLCJ0YWdOYW1lIiwiYmx1ciIsInNldENyb24iLCJqcUNyb25JbnN0YW5jZXMiLCJfaW5pdGlhbGl6ZWQiLCJfc2VsZiIsIl8kZWx0IiwiXyRvYmoiLCJfJGJsb2NrcyIsIl8kYmxvY2tQRVJJT0QiLCJfJGJsb2NrRE9NIiwiXyRibG9ja01PTlRIIiwiXyRibG9ja01JTlMiLCJfJGJsb2NrRE9XIiwiXyRibG9ja1RJTUUiLCJfJGNyb3NzIiwiX3NlbGVjdG9ycyIsIl9zZWxlY3RvclBlcmlvZCIsIl9zZWxlY3Rvck1pbnMiLCJfc2VsZWN0b3JUaW1lSCIsIl9zZWxlY3RvclRpbWVNIiwiX3NlbGVjdG9yRG93IiwiX3NlbGVjdG9yRG9tIiwiX3NlbGVjdG9yTW9udGgiLCJuZXdTZWxlY3RvciIsIiRibG9jayIsIm11bHRpcGxlIiwidHlwZSIsInNlbGVjdG9yIiwianFDcm9uU2VsZWN0b3IiLCJiaW5kIiwibiIsImNsb3NlU2VsZWN0b3JzIiwibyIsImNsb3NlIiwiYm91bmRDaGFuZ2VkIiwic2V0VmFsdWUiLCJnZXRWYWx1ZSIsInRyaWdnZXIiLCJnZXRDcm9uIiwicHVzaCIsImRpc2FibGUiLCJhZGRDbGFzcyIsImlzRGlzYWJsZWQiLCJlbmFibGUiLCJyZW1vdmVDbGFzcyIsInBlcmlvZCIsIml0ZW1zIiwiZ2V0Q3JvblZhbHVlIiwiam9pbiIsInN0ciIsIm1hc2siLCJzcGxpdCIsImdldFRleHQiLCJzZXRDcm9uVmFsdWUiLCJzdWJzdHJpbmciLCJjbGVhckVycm9yIiwiZSIsImdldElkIiwiYXR0ciIsImtleSIsInRleHQiLCJtYXRjaCIsImdldEh1bWFuVGV4dCIsImZpbmQiLCJnZXRTZXR0aW5ncyIsIm1zZyIsImNsZWFyIiwidHJpZ2dlckNoYW5nZSIsImluaXQiLCJsYWJlbHNMaXN0IiwibGlzdCIsImFwcGVuZCIsImlkIiwidGVzdCIsImNsaWNrIiwiZXZ0IiwiYWRkIiwiaGlkZSIsInNob3ciLCJfY3JvbiIsIl8kYmxvY2siLCJfbXVsdGlwbGUiLCJfdHlwZSIsIl8kbGlzdCIsIl8kdGl0bGUiLCJfJHNlbGVjdG9yIiwiX3ZhbHVlcyIsIl92YWx1ZSIsIl9oYXNOdW1lcmljVGV4dHMiLCJfbnVtZXJpY196ZXJvX3BhZCIsImFycmF5X3VuaXF1ZSIsImwiLCJrIiwiYSIsInMiLCJjIiwidmFsdWVzIiwibSIsIm9wZW4iLCJpc09wZW5lZCIsImFkZFZhbHVlIiwicmVtb3ZlVmFsdWUiLCJuZXdWYWx1ZSIsImtleXMiLCJuZXdLZXlzIiwic29ydCIsImIiLCJ0YSIsInRiIiwiU3RyaW5nIiwiZ2V0VGl0bGVUZXh0IiwiZ2V0VmFsdWVUZXh0IiwiZW1wdHkiLCIkaXRlbSIsImhhc0NsYXNzIiwiYWZ0ZXIiLCJuYmNvbHMiLCJodG1sIiwic3RvcFByb3BhZ2F0aW9uIiwiZGlzYWJsZVNlbGVjdGlvbiIsImpxVUlEIiwianFHZXRVSUQiLCJwcmVmaXgiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZXhwciIsImNvbnRhaW5lciIsInRvTG93ZXJDYXNlIiwiYWJiciIsImFjcm9ueW0iLCJhZGRyZXNzIiwiYmlnIiwiYmxvY2txdW90ZSIsImJ1dHRvbiIsImNpdGUiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZm4iLCJkaXYiLCJkdCIsImVtIiwiZmllbGRzZXQiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsaSIsInAiLCJwcmUiLCJxIiwic2FtcCIsInNtYWxsIiwic3BhbiIsInN0cm9uZyIsInN1YiIsInN1cCIsInRkIiwidHQiLCJhdXRvY2xvc2UiLCJhcmVhIiwiYmFzZSIsImJhc2Vmb250IiwiYnIiLCJjb2wiLCJmcmFtZSIsImhyIiwiaW1nIiwiaW5wdXQiLCJsaW5rIiwibWV0YSIsInBhcmFtIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/cron-ui.js\n");
/***/ }),
/***/ "./app/utils/finderjs.js":
/*!*******************************!*\
!*** ./app/utils/finderjs.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DEFAULTS\": () => (/* binding */ DEFAULTS),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\n * (c) Trilby Media, LLC\n * Author Djamil Legato\n *\n * Based on Mark Matyas's Finderjs\n * MIT License\n */\n\n\nvar DEFAULTS = {\n labelKey: 'name',\n valueKey: 'value',\n // new\n childKey: 'children',\n iconKey: 'icon',\n // new\n itemKey: 'item-key',\n // new\n pathBar: true,\n className: {\n container: 'fjs-container',\n pathBar: 'fjs-path-bar',\n col: 'fjs-col',\n list: 'fjs-list',\n item: 'fjs-item',\n active: 'fjs-active',\n children: 'fjs-has-children',\n url: 'fjs-url',\n itemPrepend: 'fjs-item-prepend',\n itemContent: 'fjs-item-content',\n itemAppend: 'fjs-item-append'\n }\n};\n\nvar Finder = /*#__PURE__*/function () {\n function Finder(container, data, options) {\n var _this = this;\n\n _classCallCheck(this, Finder);\n\n this.$emitter = new (eventemitter3__WEBPACK_IMPORTED_MODULE_1___default())();\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.data = data;\n this.config = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, DEFAULTS, options); // dom events\n\n this.container.on('click', this.clickEvent.bind(this));\n this.container.on('keydown', this.keydownEvent.bind(this)); // internal events\n\n this.$emitter.on('item-selected', this.itemSelected.bind(this));\n this.$emitter.on('create-column', this.addColumn.bind(this));\n this.$emitter.on('navigate', this.navigate.bind(this));\n this.$emitter.on('go-to', this.goTo.bind(this, this.data));\n this.container.addClass(this.config.className.container).attr('tabindex', 0);\n this.createColumn(this.data);\n\n if (this.config.pathBar) {\n this.pathBar = this.createPathBar();\n this.pathBar.on('click', '[data-breadcrumb-node]', function (event) {\n event.preventDefault();\n var location = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).data('breadcrumbNode');\n\n _this.goTo(_this.data, location);\n });\n } // '' is <Root>\n\n\n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(this.data, this.config.defaultPath);\n }\n }\n\n _createClass(Finder, [{\n key: \"reload\",\n value: function reload() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data;\n this.createColumn(data); // '' is <Root>\n\n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(data, this.config.defaultPath);\n }\n }\n }, {\n key: \"createColumn\",\n value: function createColumn(data, parent) {\n var _this2 = this;\n\n var callback = function callback(data) {\n return _this2.createColumn(data, parent);\n };\n\n if (typeof data === 'function') {\n data.call(this, parent, callback);\n } else if (Array.isArray(data) || _typeof(data) === 'object') {\n if (_typeof(data) === 'object') {\n data = Array.from(data);\n }\n\n var list = this.createList(data);\n var div = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />');\n div.append(list).addClass(this.config.className.col);\n this.$emitter.emit('create-column', div);\n return div;\n } else {\n throw new Error('Unknown data type');\n }\n }\n }, {\n key: \"createPathBar\",\n value: function createPathBar() {\n this.container.siblings(\".\".concat(this.config.className.pathBar)).remove();\n var pathBar = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<div class=\\\"\".concat(this.config.className.pathBar, \"\\\" />\"));\n pathBar.insertAfter(this.container);\n return pathBar;\n }\n }, {\n key: \"clickEvent\",\n value: function clickEvent(event) {\n event.stopPropagation();\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var column = target.closest(\".\".concat(this.config.className.col));\n var item = target.closest(\".\".concat(this.config.className.item));\n\n if (item.length) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: item\n });\n }\n }\n }, {\n key: \"keydownEvent\",\n value: function keydownEvent(event) {\n var codes = {\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down'\n };\n\n if (event.keyCode in codes) {\n event.stopPropagation();\n event.preventDefault();\n this.$emitter.emit('navigate', {\n direction: codes[event.keyCode]\n });\n }\n }\n }, {\n key: \"itemSelected\",\n value: function itemSelected(value) {\n var element = value.item;\n\n if (!element.length) {\n return false;\n }\n\n var item = element[0]._item;\n var column = value.column;\n var data = item[this.config.childKey] || this.data;\n var active = jquery__WEBPACK_IMPORTED_MODULE_0___default()(column).find(\".\".concat(this.config.className.active));\n\n if (active.length) {\n active.removeClass(this.config.className.active);\n }\n\n element.addClass(this.config.className.active);\n column.nextAll().remove(); // ?!?!?\n\n this.container[0].focus();\n window.scrollTo(window.pageXOffset, window.pageYOffset);\n this.updatePathBar();\n var newColumn;\n\n if (data) {\n newColumn = this.createColumn(data, item);\n this.$emitter.emit('interior-selected', item);\n } else {\n this.$emitter.emit('leaf-selected', item);\n }\n\n return newColumn;\n }\n }, {\n key: \"addColumn\",\n value: function addColumn(column) {\n this.container.append(column);\n this.$emitter.emit('column-created', column);\n }\n }, {\n key: \"navigate\",\n value: function navigate(value) {\n var active = this.findLastActive();\n var direction = value.direction;\n var column;\n var item;\n var target;\n\n if (active) {\n item = active.item;\n column = active.column;\n\n if (direction === 'up' && item.prev().length) {\n target = item.prev();\n } else if (direction === 'down' && item.next().length) {\n target = item.next();\n } else if (direction === 'right' && column.next().length) {\n column = column.next();\n target = column.find(\".\".concat(this.config.className.item)).first();\n } else if (direction === 'left' && column.prev().length) {\n column = column.prev();\n target = column.find(\".\".concat(this.config.className.active)).first() || column.find(\".\".concat(this.config.className.item));\n }\n } else {\n column = this.container.find(\".\".concat(this.config.className.col)).first();\n target = column.find(\".\".concat(this.config.className.item)).first();\n }\n\n if (target) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: target\n });\n }\n }\n }, {\n key: \"goTo\",\n value: function goTo(data, path) {\n var _this3 = this;\n\n path = Array.isArray(path) ? path : path.split('/').map(function (bit) {\n return bit.trim();\n }).filter(Boolean);\n\n if (path.length) {\n this.container.children().remove();\n }\n\n if (typeof data === 'function') {\n data.call(this, null, function (data) {\n return _this3.selectPath(path, data);\n });\n } else {\n this.selectPath(path, data);\n }\n }\n }, {\n key: \"selectPath\",\n value: function selectPath(path, data, column) {\n var _this4 = this;\n\n column = column || (path.length ? this.createColumn(data) : this.container.find(\"> .\".concat(this.config.className.col)));\n var current = path[0] || '';\n var children = data.find(function (item) {\n return item[_this4.config.itemKey] === current;\n });\n var newColumn = this.itemSelected({\n column: column,\n item: column.find(\"[data-fjs-item=\\\"\".concat(current, \"\\\"]\")).first()\n });\n path.shift();\n\n if (path.length && children) {\n this.selectPath(path, children[this.config.childKey], newColumn);\n }\n }\n }, {\n key: \"findLastActive\",\n value: function findLastActive() {\n var active = this.container.find(\".\".concat(this.config.className.active));\n\n if (!active.length) {\n return null;\n }\n\n var item = active.last();\n var column = item.closest(\".\".concat(this.config.className.col));\n return {\n item: item,\n column: column\n };\n }\n }, {\n key: \"createList\",\n value: function createList(data) {\n var _this5 = this;\n\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul />');\n var items = data.map(function (item) {\n return _this5.createItem(item);\n });\n var fragments = items.reduce(function (fragment, current) {\n fragment.appendChild(current[0] || current);\n return fragment;\n }, document.createDocumentFragment());\n list.append(fragments).addClass(this.config.className.list);\n return list;\n }\n }, {\n key: \"createItem\",\n value: function createItem(item) {\n var listItem = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<li />');\n var listItemClasses = [this.config.className.item];\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a />');\n var createItemContent = this.config.createItemContent || this.createItemContent;\n var fragment = createItemContent.call(this, item);\n link.append(fragment).attr('href', '').attr('tabindex', -1);\n\n if (item.url) {\n link.attr('href', item.url);\n listItemClasses.push(item.className);\n }\n\n if (item[this.config.childKey]) {\n listItemClasses.push(this.config.className[this.config.childKey]);\n }\n\n listItemClasses.push(\"fjs-item-\".concat(item.type));\n listItem.addClass(listItemClasses.join(' '));\n listItem.append(link).attr('data-fjs-item', item[this.config.itemKey]);\n listItem[0]._item = item;\n return listItem;\n }\n }, {\n key: \"updatePathBar\",\n value: function updatePathBar() {\n var _this6 = this;\n\n if (!this.config.pathBar) {\n return false;\n }\n\n var activeItems = this.container.find(\".\".concat(this.config.className.active));\n var itemKeys = '';\n this.pathBar.children().empty();\n activeItems.each(function (index, activeItem) {\n var item = activeItem._item;\n var isLast = index + 1 === activeItems.length;\n itemKeys += \"/\".concat(item[_this6.config.itemKey]);\n\n _this6.pathBar.append(\"\\n <span class=\\\"breadcrumb-node breadcrumb-node-\".concat(item.type, \"\\\" \").concat(item.type === 'dir' ? \"data-breadcrumb-node=\\\"\".concat(itemKeys, \"\\\"\") : '', \">\\n <i class=\\\"fa fa-fw \").concat(_this6.getIcon(item.type), \"\\\"></i>\\n <span class=\\\"breadcrumb-node-name\\\">\").concat(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(item[_this6.config.labelKey]).html(), \"</span>\\n \").concat(!isLast ? '<i class=\"fa fa-fw fa-chevron-right\"></i>' : '', \"\\n </span>\\n \"));\n });\n }\n }, {\n key: \"getIcon\",\n value: function getIcon(type) {\n switch (type) {\n case 'root':\n return 'fa-sitemap';\n\n case 'file':\n return 'fa-file-o';\n\n case 'dir':\n default:\n return 'fa-folder';\n }\n }\n }]);\n\n return Finder;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Finder);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBYW9ILElBQWIsQ0FBa0J2RyxJQUFJLENBQUMsTUFBSSxDQUFDVyxNQUFMLENBQVlyQixRQUFiLENBQXRCLEVBQThDaUgsSUFBOUMsRUFIN0MsMENBSVUsQ0FBQ0YsTUFBRCxHQUFVLDJDQUFWLEdBQXdELEVBSmxFO0FBT0gsT0FYRDtBQVlIOzs7V0FFRCxpQkFBUVIsSUFBUixFQUFjO0FBQ1YsY0FBUUEsSUFBUjtBQUNJLGFBQUssTUFBTDtBQUNJLGlCQUFPLFlBQVA7O0FBQ0osYUFBSyxNQUFMO0FBQ0ksaUJBQU8sV0FBUDs7QUFDSixhQUFLLEtBQUw7QUFDQTtBQUNJLGlCQUFPLFdBQVA7QUFQUjtBQVNIOzs7Ozs7QUFHTCxpRUFBZXRGLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2ZpbmRlcmpzLmpzP2NmNGMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAoYykgVHJpbGJ5IE1lZGlhLCBMTENcbiAqIEF1dGhvciBEamFtaWwgTGVnYXRvXG4gKlxuICogQmFzZWQgb24gTWFyayBNYXR5YXMncyBGaW5kZXJqc1xuICogTUlUIExpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudGVtaXR0ZXIzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRTID0ge1xuICAgIGxhYmVsS2V5OiAnbmFtZScsXG4gICAgdmFsdWVLZXk6ICd2YWx1ZScsIC8vIG5ld1xuICAgIGNoaWxkS2V5OiAnY2hpbGRyZW4nLFxuICAgIGljb25LZXk6ICdpY29uJywgLy8gbmV3XG4gICAgaXRlbUtleTogJ2l0ZW0ta2V5JywgLy8gbmV3XG4gICAgcGF0aEJhcjogdHJ1ZSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgY29udGFpbmVyOiAnZmpzLWNvbnRhaW5lcicsXG4gICAgICAgIHBhdGhCYXI6ICdmanMtcGF0aC1iYXInLFxuICAgICAgICBjb2w6ICdmanMtY29sJyxcbiAgICAgICAgbGlzdDogJ2Zqcy1saXN0JyxcbiAgICAgICAgaXRlbTogJ2Zqcy1pdGVtJyxcbiAgICAgICAgYWN0aXZlOiAnZmpzLWFjdGl2ZScsXG4gICAgICAgIGNoaWxkcmVuOiAnZmpzLWhhcy1jaGlsZHJlbicsXG4gICAgICAgIHVybDogJ2Zqcy11cmwnLFxuICAgICAgICBpdGVtUHJlcGVuZDogJ2Zqcy1pdGVtLXByZXBlbmQnLFxuICAgICAgICBpdGVtQ29udGVudDogJ2Zqcy1pdGVtLWNvbnRlbnQnLFxuICAgICAgICBpdGVtQXBwZW5kOiAnZmpzLWl0ZW0tYXBwZW5kJ1xuICAgIH1cbn07XG5cbmNsYXNzIEZpbmRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyLCBkYXRhLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuXG4gICAgICAgIHRoaXMuY29uZmlnID0gJC5leHRlbmQoe30sIERFRkFVTFRTLCBvcHRpb25zKTtcblxuICAgICAgICAvLyBkb20gZXZlbnRzXG4gICAgICAgIHRoaXMuY29udGFpbmVyLm9uKCdjbGljaycsIHRoaXMuY2xpY2tFdmVudC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIub24oJ2tleWRvd24nLCB0aGlzLmtleWRvd25FdmVudC5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBpbnRlcm5hbCBldmVudHNcbiAgICAgICAgdGhpcy4kZW1pdHRlci5vbignaXRlbS1zZWxlY3RlZCcsIHRoaXMuaXRlbVNlbGVjdGVkLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLiRlbWl0dGVyLm9uKCdjcmVhdGUtY29sdW1uJywgdGhpcy5hZGRDb2x1bW4uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIub24oJ25hdmlnYXRlJywgdGhpcy5uYXZpZ2F0ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy4kZW1pdHRlci5vbignZ28tdG8nLCB0aGlzLmdvVG8uYmluZCh0aGlzLCB0aGlzLmRhdGEpKTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29udGFpbmVyKS5hdHRyKCd0YWJpbmRleCcsIDApO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uKHRoaXMuZGF0YSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnBhdGhCYXIpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aEJhciA9IHRoaXMuY3JlYXRlUGF0aEJhcigpO1xuICAgICAgICAgICAgdGhpcy5wYXRoQmFyLm9uKCdjbGljaycsICdbZGF0YS1icmVhZGNydW1iLW5vZGVdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuZGF0YSgnYnJlYWRjcnVtYk5vZGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdvVG8odGhpcy5kYXRhLCBsb2NhdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICcnIGlzIDxSb290PlxuICAgICAgICBpZiAodGhpcy5jb25maWcuZGVmYXVsdFBhdGggfHwgdGhpcy5jb25maWcuZGVmYXVsdFBhdGggPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmdvVG8odGhpcy5kYXRhLCB0aGlzLmNvbmZpZy5kZWZhdWx0UGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWxvYWQoZGF0YSA9IHRoaXMuZGF0YSkge1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbihkYXRhKTtcblxuICAgICAgICAvLyAnJyBpcyA8Um9vdD5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoIHx8IHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5nb1RvKGRhdGEsIHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUNvbHVtbihkYXRhLCBwYXJlbnQpIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoZGF0YSkgPT4gdGhpcy5jcmVhdGVDb2x1bW4oZGF0YSwgcGFyZW50KTtcblxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGRhdGEuY2FsbCh0aGlzLCBwYXJlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpIHx8IHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBBcnJheS5mcm9tKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuY3JlYXRlTGlzdChkYXRhKTtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9ICQoJzxkaXYgLz4nKTtcbiAgICAgICAgICAgIGRpdi5hcHBlbmQobGlzdCkuYWRkQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmNvbCk7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCBkaXYpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGl2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGRhdGEgdHlwZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUGF0aEJhcigpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc2libGluZ3MoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5wYXRoQmFyfWApLnJlbW92ZSgpO1xuICAgICAgICBjb25zdCBwYXRoQmFyID0gJChgPGRpdiBjbGFzcz1cIiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLnBhdGhCYXJ9XCIgLz5gKTtcbiAgICAgICAgcGF0aEJhci5pbnNlcnRBZnRlcih0aGlzLmNvbnRhaW5lcik7XG5cbiAgICAgICAgcmV0dXJuIHBhdGhCYXI7XG4gICAgfVxuXG4gICAgY2xpY2tFdmVudChldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRhcmdldC5jbG9zZXN0KGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApO1xuICAgICAgICBjb25zdCBpdGVtID0gdGFyZ2V0LmNsb3Nlc3QoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApO1xuXG4gICAgICAgIGlmIChpdGVtLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdpdGVtLXNlbGVjdGVkJywgeyBjb2x1bW4sIGl0ZW0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBrZXlkb3duRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgY29kZXMgPSB7IDM3OiAnbGVmdCcsIDM4OiAndXAnLCAzOTogJ3JpZ2h0JywgNDA6ICdkb3duJyB9O1xuXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlIGluIGNvZGVzKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnbmF2aWdhdGUnLCB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBjb2Rlc1tldmVudC5rZXlDb2RlXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpdGVtU2VsZWN0ZWQodmFsdWUpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHZhbHVlLml0ZW07XG4gICAgICAgIGlmICghZWxlbWVudC5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBlbGVtZW50WzBdLl9pdGVtO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB2YWx1ZS5jb2x1bW47XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpdGVtW3RoaXMuY29uZmlnLmNoaWxkS2V5XSB8fCB0aGlzLmRhdGE7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9ICQoY29sdW1uKS5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApO1xuXG4gICAgICAgIGlmIChhY3RpdmUubGVuZ3RoKSB7XG4gICAgICAgICAgICBhY3RpdmUucmVtb3ZlQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmFjdGl2ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LmFkZENsYXNzKHRoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmUpO1xuICAgICAgICBjb2x1bW4ubmV4dEFsbCgpLnJlbW92ZSgpOyAvLyA/IT8hP1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyWzBdLmZvY3VzKCk7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh3aW5kb3cucGFnZVhPZmZzZXQsIHdpbmRvdy5wYWdlWU9mZnNldCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVQYXRoQmFyKCk7XG5cbiAgICAgICAgbGV0IG5ld0NvbHVtbjtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG5ld0NvbHVtbiA9IHRoaXMuY3JlYXRlQ29sdW1uKGRhdGEsIGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdpbnRlcmlvci1zZWxlY3RlZCcsIGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdsZWFmLXNlbGVjdGVkJywgaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cblxuICAgIGFkZENvbHVtbihjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kKGNvbHVtbik7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnY29sdW1uLWNyZWF0ZWQnLCBjb2x1bW4pO1xuICAgIH1cblxuICAgIG5hdmlnYXRlKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuZmluZExhc3RBY3RpdmUoKTtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdmFsdWUuZGlyZWN0aW9uO1xuICAgICAgICBsZXQgY29sdW1uO1xuICAgICAgICBsZXQgaXRlbTtcbiAgICAgICAgbGV0IHRhcmdldDtcblxuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICBpdGVtID0gYWN0aXZlLml0ZW07XG4gICAgICAgICAgICBjb2x1bW4gPSBhY3RpdmUuY29sdW1uO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnICYmIGl0ZW0ucHJldigpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGl0ZW0ucHJldigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJyAmJiBpdGVtLm5leHQoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBpdGVtLm5leHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncmlnaHQnICYmIGNvbHVtbi5uZXh0KCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uID0gY29sdW1uLm5leHQoKTtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBjb2x1bW4uZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW19YCkuZmlyc3QoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAnbGVmdCcgJiYgY29sdW1uLnByZXYoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4gPSBjb2x1bW4ucHJldigpO1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGNvbHVtbi5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApLmZpcnN0KCkgfHwgY29sdW1uLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sdW1uID0gdGhpcy5jb250YWluZXIuZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLmNvbH1gKS5maXJzdCgpO1xuICAgICAgICAgICAgdGFyZ2V0ID0gY29sdW1uLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5pdGVtfWApLmZpcnN0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2l0ZW0tc2VsZWN0ZWQnLCB7XG4gICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgICAgIGl0ZW06IHRhcmdldFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb1RvKGRhdGEsIHBhdGgpIHtcbiAgICAgICAgcGF0aCA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5zcGxpdCgnLycpLm1hcChiaXQgPT4gYml0LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuY2hpbGRyZW4oKS5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZGF0YS5jYWxsKHRoaXMsIG51bGwsIChkYXRhKSA9PiB0aGlzLnNlbGVjdFBhdGgocGF0aCwgZGF0YSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQYXRoKHBhdGgsIGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0UGF0aChwYXRoLCBkYXRhLCBjb2x1bW4pIHtcbiAgICAgICAgY29sdW1uID0gY29sdW1uIHx8IChwYXRoLmxlbmd0aCA/IHRoaXMuY3JlYXRlQ29sdW1uKGRhdGEpIDogdGhpcy5jb250YWluZXIuZmluZChgPiAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50ID0gcGF0aFswXSB8fCAnJztcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmZpbmQoKGl0ZW0pID0+IGl0ZW1bdGhpcy5jb25maWcuaXRlbUtleV0gPT09IGN1cnJlbnQpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLml0ZW1TZWxlY3RlZCh7XG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICBpdGVtOiBjb2x1bW4uZmluZChgW2RhdGEtZmpzLWl0ZW09XCIke2N1cnJlbnR9XCJdYCkuZmlyc3QoKVxuICAgICAgICB9KTtcblxuICAgICAgICBwYXRoLnNoaWZ0KCk7XG5cbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoICYmIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFBhdGgocGF0aCwgY2hpbGRyZW5bdGhpcy5jb25maWcuY2hpbGRLZXldLCBuZXdDb2x1bW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZExhc3RBY3RpdmUoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuY29udGFpbmVyLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmV9YCk7XG4gICAgICAgIGlmICghYWN0aXZlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtID0gYWN0aXZlLmxhc3QoKTtcbiAgICAgICAgY29uc3QgY29sdW1uID0gaXRlbS5jbG9zZXN0KGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApO1xuXG4gICAgICAgIHJldHVybiB7IGl0ZW0sIGNvbHVtbiB9O1xuICAgIH1cblxuICAgIGNyZWF0ZUxpc3QoZGF0YSkge1xuICAgICAgICBjb25zdCBsaXN0ID0gJCgnPHVsIC8+Jyk7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZGF0YS5tYXAoKGl0ZW0pID0+IHRoaXMuY3JlYXRlSXRlbShpdGVtKSk7XG5cbiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gaXRlbXMucmVkdWNlKChmcmFnbWVudCwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY3VycmVudFswXSB8fCBjdXJyZW50KTtcblxuICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50O1xuICAgICAgICB9LCBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpO1xuXG4gICAgICAgIGxpc3QuYXBwZW5kKGZyYWdtZW50cykuYWRkQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmxpc3QpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGNyZWF0ZUl0ZW0oaXRlbSkge1xuICAgICAgICBjb25zdCBsaXN0SXRlbSA9ICQoJzxsaSAvPicpO1xuICAgICAgICBjb25zdCBsaXN0SXRlbUNsYXNzZXMgPSBbdGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW1dO1xuICAgICAgICBjb25zdCBsaW5rID0gJCgnPGEgLz4nKTtcbiAgICAgICAgY29uc3QgY3JlYXRlSXRlbUNvbnRlbnQgPSB0aGlzLmNvbmZpZy5jcmVhdGVJdGVtQ29udGVudCB8fCB0aGlzLmNyZWF0ZUl0ZW1Db250ZW50O1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGNyZWF0ZUl0ZW1Db250ZW50LmNhbGwodGhpcywgaXRlbSk7XG4gICAgICAgIGxpbmsuYXBwZW5kKGZyYWdtZW50KVxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCAnJylcbiAgICAgICAgICAgIC5hdHRyKCd0YWJpbmRleCcsIC0xKTtcblxuICAgICAgICBpZiAoaXRlbS51cmwpIHtcbiAgICAgICAgICAgIGxpbmsuYXR0cignaHJlZicsIGl0ZW0udXJsKTtcbiAgICAgICAgICAgIGxpc3RJdGVtQ2xhc3Nlcy5wdXNoKGl0ZW0uY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtW3RoaXMuY29uZmlnLmNoaWxkS2V5XSkge1xuICAgICAgICAgICAgbGlzdEl0ZW1DbGFzc2VzLnB1c2godGhpcy5jb25maWcuY2xhc3NOYW1lW3RoaXMuY29uZmlnLmNoaWxkS2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICBsaXN0SXRlbUNsYXNzZXMucHVzaChgZmpzLWl0ZW0tJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgIGxpc3RJdGVtLmFkZENsYXNzKGxpc3RJdGVtQ2xhc3Nlcy5qb2luKCcgJykpO1xuICAgICAgICBsaXN0SXRlbS5hcHBlbmQobGluaylcbiAgICAgICAgICAgIC5hdHRyKCdkYXRhLWZqcy1pdGVtJywgaXRlbVt0aGlzLmNvbmZpZy5pdGVtS2V5XSk7XG5cbiAgICAgICAgbGlzdEl0ZW1bMF0uX2l0ZW0gPSBpdGVtO1xuXG4gICAgICAgIHJldHVybiBsaXN0SXRlbTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYXRoQmFyKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLnBhdGhCYXIpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICAgICAgY29uc3QgYWN0aXZlSXRlbXMgPSB0aGlzLmNvbnRhaW5lci5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlfWApO1xuICAgICAgICBsZXQgaXRlbUtleXMgPSAnJztcbiAgICAgICAgdGhpcy5wYXRoQmFyLmNoaWxkcmVuKCkuZW1wdHkoKTtcbiAgICAgICAgYWN0aXZlSXRlbXMuZWFjaCgoaW5kZXgsIGFjdGl2ZUl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhY3RpdmVJdGVtLl9pdGVtO1xuICAgICAgICAgICAgY29uc3QgaXNMYXN0ID0gKGluZGV4ICsgMSkgPT09IGFjdGl2ZUl0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIGl0ZW1LZXlzICs9IGAvJHtpdGVtW3RoaXMuY29uZmlnLml0ZW1LZXldfWA7XG4gICAgICAgICAgICB0aGlzLnBhdGhCYXIuYXBwZW5kKGBcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJyZWFkY3J1bWItbm9kZSBicmVhZGNydW1iLW5vZGUtJHtpdGVtLnR5cGV9XCIgJHtpdGVtLnR5cGUgPT09ICdkaXInID8gYGRhdGEtYnJlYWRjcnVtYi1ub2RlPVwiJHtpdGVtS2V5c31cImAgOiAnJ30+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZncgJHt0aGlzLmdldEljb24oaXRlbS50eXBlKX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnJlYWRjcnVtYi1ub2RlLW5hbWVcIj4keyQoJzxkaXYgLz4nKS5odG1sKGl0ZW1bdGhpcy5jb25maWcubGFiZWxLZXldKS5odG1sKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAkeyFpc0xhc3QgPyAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPicgOiAnJ31cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SWNvbih0eXBlKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncm9vdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYS1zaXRlbWFwJztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmEtZmlsZS1vJztcbiAgICAgICAgICAgIGNhc2UgJ2Rpcic6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmEtZm9sZGVyJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmluZGVyO1xuIl0sIm5hbWVzIjpbIiQiLCJFdmVudEVtaXR0ZXIiLCJERUZBVUxUUyIsImxhYmVsS2V5IiwidmFsdWVLZXkiLCJjaGlsZEtleSIsImljb25LZXkiLCJpdGVtS2V5IiwicGF0aEJhciIsImNsYXNzTmFtZSIsImNvbnRhaW5lciIsImNvbCIsImxpc3QiLCJpdGVtIiwiYWN0aXZlIiwiY2hpbGRyZW4iLCJ1cmwiLCJpdGVtUHJlcGVuZCIsIml0ZW1Db250ZW50IiwiaXRlbUFwcGVuZCIsIkZpbmRlciIsImRhdGEiLCJvcHRpb25zIiwiJGVtaXR0ZXIiLCJjb25maWciLCJleHRlbmQiLCJvbiIsImNsaWNrRXZlbnQiLCJiaW5kIiwia2V5ZG93bkV2ZW50IiwiaXRlbVNlbGVjdGVkIiwiYWRkQ29sdW1uIiwibmF2aWdhdGUiLCJnb1RvIiwiYWRkQ2xhc3MiLCJhdHRyIiwiY3JlYXRlQ29sdW1uIiwiY3JlYXRlUGF0aEJhciIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJsb2NhdGlvbiIsImN1cnJlbnRUYXJnZXQiLCJkZWZhdWx0UGF0aCIsInBhcmVudCIsImNhbGxiYWNrIiwiY2FsbCIsIkFycmF5IiwiaXNBcnJheSIsImZyb20iLCJjcmVhdGVMaXN0IiwiZGl2IiwiYXBwZW5kIiwiZW1pdCIsIkVycm9yIiwic2libGluZ3MiLCJyZW1vdmUiLCJpbnNlcnRBZnRlciIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImNvbHVtbiIsImNsb3Nlc3QiLCJsZW5ndGgiLCJjb2RlcyIsImtleUNvZGUiLCJkaXJlY3Rpb24iLCJ2YWx1ZSIsImVsZW1lbnQiLCJfaXRlbSIsImZpbmQiLCJyZW1vdmVDbGFzcyIsIm5leHRBbGwiLCJmb2N1cyIsIndpbmRvdyIsInNjcm9sbFRvIiwicGFnZVhPZmZzZXQiLCJwYWdlWU9mZnNldCIsInVwZGF0ZVBhdGhCYXIiLCJuZXdDb2x1bW4iLCJmaW5kTGFzdEFjdGl2ZSIsInByZXYiLCJuZXh0IiwiZmlyc3QiLCJwYXRoIiwic3BsaXQiLCJtYXAiLCJiaXQiLCJ0cmltIiwiZmlsdGVyIiwiQm9vbGVhbiIsInNlbGVjdFBhdGgiLCJjdXJyZW50Iiwic2hpZnQiLCJsYXN0IiwiaXRlbXMiLCJjcmVhdGVJdGVtIiwiZnJhZ21lbnRzIiwicmVkdWNlIiwiZnJhZ21lbnQiLCJhcHBlbmRDaGlsZCIsImRvY3VtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImxpc3RJdGVtIiwibGlzdEl0ZW1DbGFzc2VzIiwibGluayIsImNyZWF0ZUl0ZW1Db250ZW50IiwicHVzaCIsInR5cGUiLCJqb2luIiwiYWN0aXZlSXRlbXMiLCJpdGVtS2V5cyIsImVtcHR5IiwiZWFjaCIsImluZGV4IiwiYWN0aXZlSXRlbSIsImlzTGFzdCIsImdldEljb24iLCJodG1sIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/finderjs.js\n");
/***/ }),
/***/ "./app/utils/formatbytes.js":
/*!**********************************!*\
!*** ./app/utils/formatbytes.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatBytes)\n/* harmony export */ });\nvar sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\nfunction formatBytes(bytes, decimals) {\n if (bytes === 0) return '0 Byte';\n var k = 1000;\n var value = Math.floor(Math.log(bytes) / Math.log(k));\n var decimal = decimals + 1 || 3;\n return (bytes / Math.pow(k, value)).toPrecision(decimal) + ' ' + sizes[value];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvZm9ybWF0Ynl0ZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQU1BLEtBQUssR0FBRyxDQUFDLE9BQUQsRUFBVSxJQUFWLEVBQWdCLElBQWhCLEVBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLElBQWxDLEVBQXdDLElBQXhDLEVBQThDLElBQTlDLEVBQW9ELElBQXBELENBQWQ7QUFFZSxTQUFTQyxXQUFULENBQXFCQyxLQUFyQixFQUE0QkMsUUFBNUIsRUFBc0M7QUFDakQsTUFBSUQsS0FBSyxLQUFLLENBQWQsRUFBaUIsT0FBTyxRQUFQO0FBRWpCLE1BQUlFLENBQUMsR0FBRyxJQUFSO0FBQ0EsTUFBSUMsS0FBSyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0QsSUFBSSxDQUFDRSxHQUFMLENBQVNOLEtBQVQsSUFBa0JJLElBQUksQ0FBQ0UsR0FBTCxDQUFTSixDQUFULENBQTdCLENBQVo7QUFDQSxNQUFJSyxPQUFPLEdBQUdOLFFBQVEsR0FBRyxDQUFYLElBQWdCLENBQTlCO0FBRUEsU0FBTyxDQUFDRCxLQUFLLEdBQUdJLElBQUksQ0FBQ0ksR0FBTCxDQUFTTixDQUFULEVBQVlDLEtBQVosQ0FBVCxFQUE2Qk0sV0FBN0IsQ0FBeUNGLE9BQXpDLElBQW9ELEdBQXBELEdBQTBEVCxLQUFLLENBQUNLLEtBQUQsQ0FBdEU7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvZm9ybWF0Ynl0ZXMuanM/YWFkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoYnl0ZXMsIGRlY2ltYWxzKSB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQnl0ZSc7XG5cbiAgICBsZXQgayA9IDEwMDA7XG4gICAgbGV0IHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgbGV0IGRlY2ltYWwgPSBkZWNpbWFscyArIDEgfHwgMztcblxuICAgIHJldHVybiAoYnl0ZXMgLyBNYXRoLnBvdyhrLCB2YWx1ZSkpLnRvUHJlY2lzaW9uKGRlY2ltYWwpICsgJyAnICsgc2l6ZXNbdmFsdWVdO1xufVxuIl0sIm5hbWVzIjpbInNpemVzIiwiZm9ybWF0Qnl0ZXMiLCJieXRlcyIsImRlY2ltYWxzIiwiayIsInZhbHVlIiwiTWF0aCIsImZsb29yIiwibG9nIiwiZGVjaW1hbCIsInBvdyIsInRvUHJlY2lzaW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/formatbytes.js\n");
/***/ }),
/***/ "./app/utils/gpm.js":
/*!**************************!*\
!*** ./app/utils/gpm.js ***!
\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GPM),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar GPM = /*#__PURE__*/function (_EventEmitter) {\n _inherits(GPM, _EventEmitter);\n\n var _super = _createSuper(GPM);\n\n function GPM() {\n var _this;\n\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n\n _classCallCheck(this, GPM);\n\n _this = _super.call(this);\n _this.payload = {};\n _this.raw = {};\n _this.action = action;\n return _this;\n }\n\n _createClass(GPM, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n this.emit('payload', payload);\n return this;\n }\n }, {\n key: \"setAction\",\n value: function setAction() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n this.action = action;\n this.emit('action', action);\n return this;\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function () {\n var _this2 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {\n return true;\n };\n var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce);\n\n if (flush) {\n data.append('flush', true);\n }\n\n this.emit('fetching', this);\n fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/update.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getUpdates\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n }).then(function (response) {\n _this2.raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(function (response) {\n return _this2.response(response);\n }).then(function (response) {\n return callback(response, _this2.raw);\n }).then(function (response) {\n return _this2.emit('fetched', _this2.payload, _this2.raw, _this2);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n })\n }, {\n key: \"response\",\n value: function response(_response) {\n this.payload = _response;\n return _response;\n }\n }]);\n\n return GPM;\n}((events__WEBPACK_IMPORTED_MODULE_2___default()));\n\n\nvar Instance = new GPM();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvZ3BtLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOztJQUVxQks7Ozs7O0FBQ2pCLGlCQUFtQztBQUFBOztBQUFBLFFBQXZCQyxNQUF1Qix1RUFBZCxZQUFjOztBQUFBOztBQUMvQjtBQUNBLFVBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0EsVUFBS0MsR0FBTCxHQUFXLEVBQVg7QUFDQSxVQUFLRixNQUFMLEdBQWNBLE1BQWQ7QUFKK0I7QUFLbEM7Ozs7V0FFRCxzQkFBeUI7QUFBQSxVQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFDckIsV0FBS0EsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsV0FBS0UsSUFBTCxDQUFVLFNBQVYsRUFBcUJGLE9BQXJCO0FBRUEsYUFBTyxJQUFQO0FBQ0g7OztXQUVELHFCQUFpQztBQUFBLFVBQXZCRCxNQUF1Qix1RUFBZCxZQUFjO0FBQzdCLFdBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFdBQUtHLElBQUwsQ0FBVSxRQUFWLEVBQW9CSCxNQUFwQjtBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7Ozs7O01BRUQsWUFBNEM7QUFBQTs7QUFBQSxVQUF0Q0ksUUFBc0MsdUVBQTNCO0FBQUEsZUFBTSxJQUFOO0FBQUEsT0FBMkI7QUFBQSxVQUFmQyxLQUFlLHVFQUFQLEtBQU87QUFDeEMsVUFBSUMsSUFBSSxHQUFHLElBQUlDLFFBQUosRUFBWDtBQUNBRCxNQUFBQSxJQUFJLENBQUNFLE1BQUwsQ0FBWSxhQUFaLEVBQTJCWCwyREFBM0I7O0FBRUEsVUFBSVEsS0FBSixFQUFXO0FBQ1BDLFFBQUFBLElBQUksQ0FBQ0UsTUFBTCxDQUFZLE9BQVosRUFBcUIsSUFBckI7QUFDSDs7QUFFRCxXQUFLTCxJQUFMLENBQVUsVUFBVixFQUFzQixJQUF0QjtBQUVBTyxNQUFBQSxLQUFLLFdBQUliLGlFQUFKLDhCQUFnREEseURBQWhELGlCQUE4RTtBQUMvRWdCLFFBQUFBLFdBQVcsRUFBRSxhQURrRTtBQUUvRUMsUUFBQUEsTUFBTSxFQUFFLE1BRnVFO0FBRy9FQyxRQUFBQSxJQUFJLEVBQUVUO0FBSHlFLE9BQTlFLENBQUwsQ0FJR1UsSUFKSCxDQUlRLFVBQUNDLFFBQUQsRUFBYztBQUFFLGNBQUksQ0FBQ2YsR0FBTCxHQUFXZSxRQUFYO0FBQXFCLGVBQU9BLFFBQVA7QUFBa0IsT0FKL0QsRUFLS0QsSUFMTCxDQUtVckIsa0RBTFYsRUFNS3FCLElBTkwsQ0FNVXRCLGdEQU5WLEVBT0tzQixJQVBMLENBT1UsVUFBQ0MsUUFBRDtBQUFBLGVBQWMsTUFBSSxDQUFDQSxRQUFMLENBQWNBLFFBQWQsQ0FBZDtBQUFBLE9BUFYsRUFRS0QsSUFSTCxDQVFVLFVBQUNDLFFBQUQ7QUFBQSxlQUFjYixRQUFRLENBQUNhLFFBQUQsRUFBVyxNQUFJLENBQUNmLEdBQWhCLENBQXRCO0FBQUEsT0FSVixFQVNLYyxJQVRMLENBU1UsVUFBQ0MsUUFBRDtBQUFBLGVBQWMsTUFBSSxDQUFDZCxJQUFMLENBQVUsU0FBVixFQUFxQixNQUFJLENBQUNGLE9BQTFCLEVBQW1DLE1BQUksQ0FBQ0MsR0FBeEMsRUFBNkMsTUFBN0MsQ0FBZDtBQUFBLE9BVFYsV0FVV04sd0RBVlg7QUFXSDs7O1dBRUQsa0JBQVNxQixTQUFULEVBQW1CO0FBQ2YsV0FBS2hCLE9BQUwsR0FBZWdCLFNBQWY7QUFFQSxhQUFPQSxTQUFQO0FBQ0g7Ozs7RUFqRDRCbkI7OztBQW9EMUIsSUFBSW9CLFFBQVEsR0FBRyxJQUFJbkIsR0FBSixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9ncG0uanM/NzliNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZUpTT04sIHBhcnNlU3RhdHVzLCB1c2VyRmVlZGJhY2tFcnJvciB9IGZyb20gJy4vcmVzcG9uc2UnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHUE0gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGFjdGlvbiA9ICdnZXRVcGRhdGVzJykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnBheWxvYWQgPSB7fTtcbiAgICAgICAgdGhpcy5yYXcgPSB7fTtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XG4gICAgfVxuXG4gICAgc2V0UGF5bG9hZChwYXlsb2FkID0ge30pIHtcbiAgICAgICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICAgICAgdGhpcy5lbWl0KCdwYXlsb2FkJywgcGF5bG9hZCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc2V0QWN0aW9uKGFjdGlvbiA9ICdnZXRVcGRhdGVzJykge1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5lbWl0KCdhY3Rpb24nLCBhY3Rpb24pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZldGNoKGNhbGxiYWNrID0gKCkgPT4gdHJ1ZSwgZmx1c2ggPSBmYWxzZSkge1xuICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBkYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuXG4gICAgICAgIGlmIChmbHVzaCkge1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoJ2ZsdXNoJywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtaXQoJ2ZldGNoaW5nJywgdGhpcyk7XG5cbiAgICAgICAgZmV0Y2goYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS91cGRhdGUuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldFVwZGF0ZXNgLCB7XG4gICAgICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogZGF0YVxuICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4geyB0aGlzLnJhdyA9IHJlc3BvbnNlOyByZXR1cm4gcmVzcG9uc2U7IH0pXG4gICAgICAgICAgICAudGhlbihwYXJzZVN0YXR1cylcbiAgICAgICAgICAgIC50aGVuKHBhcnNlSlNPTilcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IGNhbGxiYWNrKHJlc3BvbnNlLCB0aGlzLnJhdykpXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHRoaXMuZW1pdCgnZmV0Y2hlZCcsIHRoaXMucGF5bG9hZCwgdGhpcy5yYXcsIHRoaXMpKVxuICAgICAgICAgICAgLmNhdGNoKHVzZXJGZWVkYmFja0Vycm9yKTtcbiAgICB9XG5cbiAgICByZXNwb25zZShyZXNwb25zZSkge1xuICAgICAgICB0aGlzLnBheWxvYWQgPSByZXNwb25zZTtcblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEdQTSgpO1xuIl0sIm5hbWVzIjpbInBhcnNlSlNPTiIsInBhcnNlU3RhdHVzIiwidXNlckZlZWRiYWNrRXJyb3IiLCJjb25maWciLCJFdmVudEVtaXR0ZXIiLCJHUE0iLCJhY3Rpb24iLCJwYXlsb2FkIiwicmF3IiwiZW1pdCIsImNhbGxiYWNrIiwiZmx1c2giLCJkYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJhZG1pbl9ub25jZSIsImZldGNoIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJwYXJhbV9zZXAiLCJjcmVkZW50aWFscyIsIm1ldGhvZCIsImJvZHkiLCJ0aGVuIiwicmVzcG9uc2UiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/gpm.js\n");
/***/ }),
/***/ "./app/utils/jquery-utils.js":
/*!***********************************!*\
!*** ./app/utils/jquery-utils.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! speakingurl */ \"./node_modules/speakingurl/index.js\");\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(speakingurl__WEBPACK_IMPORTED_MODULE_1__);\nvar _this = undefined;\n\n\n // jQuery no parents filter\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().expr[\":\"].noparents) = jquery__WEBPACK_IMPORTED_MODULE_0___default().expr.createPseudo(function (text) {\n return function (element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).parents(text).length < 1;\n };\n}); // Slugify\n// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.slugify) = function (source, options) {\n return _this.each(function (element) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var source = jquery__WEBPACK_IMPORTED_MODULE_0___default()(source);\n target.on('keyup change', function () {\n target.data('locked', target.val() !== '' && target.val() !== undefined);\n });\n source.on('keyup change', function () {\n if (target.data('locked') === true) {\n return true;\n }\n\n var isInput = target.is('input') || target.is('textarea');\n target[isInput ? 'val' : 'text'](jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(source.val(), options));\n });\n });\n}; // Static method.\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify) = function (sourceString, options) {\n options = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, (jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify.options), options);\n options.lang = options.lang || jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').prop('lang');\n\n if (typeof options.preSlug === 'function') {\n sourceString = options.preSlug(sourceString);\n }\n\n sourceString = options.slugFunc(sourceString, options);\n\n if (typeof options.postSlug === 'function') {\n sourceString = options.postSlug(sourceString);\n }\n\n return sourceString;\n}; // Default plugin options\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify.options) = {\n preSlug: null,\n postSlug: null,\n slugFunc: function slugFunc(input, opts) {\n return speakingurl__WEBPACK_IMPORTED_MODULE_1___default()(input, opts);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Y2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGdldFNsdWcgZnJvbSAnc3BlYWtpbmd1cmwnO1xuXG4vLyBqUXVlcnkgbm8gcGFyZW50cyBmaWx0ZXJcbiQuZXhwclsnOiddWydub3BhcmVudHMnXSA9ICQuZXhwci5jcmVhdGVQc2V1ZG8oKHRleHQpID0+IChlbGVtZW50KSA9PiAkKGVsZW1lbnQpLnBhcmVudHModGV4dCkubGVuZ3RoIDwgMSk7XG5cbi8vIFNsdWdpZnlcbi8vIENvbW1vbkpTIGFuZCBFUzYgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vbWFkZmxvdy9qcXVlcnktc2x1Z2lmeVxuJC5mbi5zbHVnaWZ5ID0gKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiB0aGlzLmVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbGV0IHRhcmdldCA9ICQoZWxlbWVudCk7XG4gICAgICAgIGxldCBzb3VyY2UgPSAkKHNvdXJjZSk7XG5cbiAgICAgICAgdGFyZ2V0Lm9uKCdrZXl1cCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICB0YXJnZXQuZGF0YSgnbG9ja2VkJywgdGFyZ2V0LnZhbCgpICE9PSAnJyAmJiB0YXJnZXQudmFsKCkgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNvdXJjZS5vbigna2V5dXAgY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRhcmdldC5kYXRhKCdsb2NrZWQnKSA9PT0gdHJ1ZSkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgICAgICAgICBsZXQgaXNJbnB1dCA9IHRhcmdldC5pcygnaW5wdXQnKSB8fCB0YXJnZXQuaXMoJ3RleHRhcmVhJyk7XG4gICAgICAgICAgICB0YXJnZXRbaXNJbnB1dCA/ICd2YWwnIDogJ3RleHQnXSgkLnNsdWdpZnkoc291cmNlLnZhbCgpLCBvcHRpb25zKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuLy8gU3RhdGljIG1ldGhvZC5cbiQuc2x1Z2lmeSA9IChzb3VyY2VTdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zID0gJC5leHRlbmQoe30sICQuc2x1Z2lmeS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICBvcHRpb25zLmxhbmcgPSBvcHRpb25zLmxhbmcgfHwgJCgnaHRtbCcpLnByb3AoJ2xhbmcnKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wcmVTbHVnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHNvdXJjZVN0cmluZyA9IG9wdGlvbnMucHJlU2x1Zyhzb3VyY2VTdHJpbmcpO1xuICAgIH1cblxuICAgIHNvdXJjZVN0cmluZyA9IG9wdGlvbnMuc2x1Z0Z1bmMoc291cmNlU3RyaW5nLCBvcHRpb25zKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wb3N0U2x1ZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzb3VyY2VTdHJpbmcgPSBvcHRpb25zLnBvc3RTbHVnKHNvdXJjZVN0cmluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZVN0cmluZztcbn07XG5cbi8vIERlZmF1bHQgcGx1Z2luIG9wdGlvbnNcbiQuc2x1Z2lmeS5vcHRpb25zID0ge1xuICAgIHByZVNsdWc6IG51bGwsXG4gICAgcG9zdFNsdWc6IG51bGwsXG4gICAgc2x1Z0Z1bmM6IChpbnB1dCwgb3B0cykgPT4gZ2V0U2x1ZyhpbnB1dCwgb3B0cylcbn07XG4iXSwibmFtZXMiOlsiJCIsImdldFNsdWciLCJleHByIiwiY3JlYXRlUHNldWRvIiwidGV4dCIsImVsZW1lbnQiLCJwYXJlbnRzIiwibGVuZ3RoIiwiZm4iLCJzbHVnaWZ5Iiwic291cmNlIiwib3B0aW9ucyIsImVhY2giLCJ0YXJnZXQiLCJvbiIsImRhdGEiLCJ2YWwiLCJ1bmRlZmluZWQiLCJpc0lucHV0IiwiaXMiLCJzb3VyY2VTdHJpbmciLCJleHRlbmQiLCJsYW5nIiwicHJvcCIsInByZVNsdWciLCJzbHVnRnVuYyIsInBvc3RTbHVnIiwiaW5wdXQiLCJvcHRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/jquery-utils.js\n");
/***/ }),
/***/ "./app/utils/keepalive.js":
/*!********************************!*\
!*** ./app/utils/keepalive.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\nvar MAX_SAFE_DELAY = 2147483647;\n\nvar KeepAlive = /*#__PURE__*/function () {\n function KeepAlive() {\n _classCallCheck(this, KeepAlive);\n\n this.active = false;\n }\n\n _createClass(KeepAlive, [{\n key: \"start\",\n value: function start() {\n var _this = this;\n\n var timeout = grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_timeout / 1.5 * 1000;\n this.timer = setInterval(function () {\n return _this.fetch();\n }, Math.min(timeout, MAX_SAFE_DELAY));\n this.active = true;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n clearInterval(this.timer);\n this.active = false;\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function () {\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_nonce);\n fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.param_sep, \"keepAlive\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_1__.userFeedbackError);\n })\n }]);\n\n return KeepAlive;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new KeepAlive());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMva2VlcGFsaXZlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBTUUsY0FBYyxHQUFHLFVBQXZCOztJQUVNQztBQUNGLHVCQUFjO0FBQUE7O0FBQ1YsU0FBS0MsTUFBTCxHQUFjLEtBQWQ7QUFDSDs7OztXQUVELGlCQUFRO0FBQUE7O0FBQ0osVUFBSUMsT0FBTyxHQUFHTCw2REFBQSxHQUF1QixHQUF2QixHQUE2QixJQUEzQztBQUNBLFdBQUtPLEtBQUwsR0FBYUMsV0FBVyxDQUFDO0FBQUEsZUFBTSxLQUFJLENBQUNDLEtBQUwsRUFBTjtBQUFBLE9BQUQsRUFBcUJDLElBQUksQ0FBQ0MsR0FBTCxDQUFTTixPQUFULEVBQWtCSCxjQUFsQixDQUFyQixDQUF4QjtBQUNBLFdBQUtFLE1BQUwsR0FBYyxJQUFkO0FBQ0g7OztXQUVELGdCQUFPO0FBQ0hRLE1BQUFBLGFBQWEsQ0FBQyxLQUFLTCxLQUFOLENBQWI7QUFDQSxXQUFLSCxNQUFMLEdBQWMsS0FBZDtBQUNIOzs7Ozs7Ozs7Ozs7O01BRUQsWUFBUTtBQUNKLFVBQUlTLElBQUksR0FBRyxJQUFJQyxRQUFKLEVBQVg7QUFDQUQsTUFBQUEsSUFBSSxDQUFDRSxNQUFMLENBQVksYUFBWixFQUEyQmYsMkRBQTNCO0FBRUFTLE1BQUFBLEtBQUssV0FBSVQsaUVBQUosa0JBQW9DQSx5REFBcEMsZ0JBQWlFO0FBQ2xFbUIsUUFBQUEsV0FBVyxFQUFFLGFBRHFEO0FBRWxFQyxRQUFBQSxNQUFNLEVBQUUsTUFGMEQ7QUFHbEVDLFFBQUFBLElBQUksRUFBRVI7QUFINEQsT0FBakUsQ0FBTCxVQUlTWix3REFKVDtBQUtIOzs7Ozs7QUFHTCxpRUFBZSxJQUFJRSxTQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2tlZXBhbGl2ZS5qcz9jNWNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB7IHVzZXJGZWVkYmFja0Vycm9yIH0gZnJvbSAnLi9yZXNwb25zZSc7XG5cbmNvbnN0IE1BWF9TQUZFX0RFTEFZID0gMjE0NzQ4MzY0NztcblxuY2xhc3MgS2VlcEFsaXZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBzdGFydCgpIHtcbiAgICAgICAgbGV0IHRpbWVvdXQgPSBjb25maWcuYWRtaW5fdGltZW91dCAvIDEuNSAqIDEwMDA7XG4gICAgICAgIHRoaXMudGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLmZldGNoKCksIE1hdGgubWluKHRpbWVvdXQsIE1BWF9TQUZFX0RFTEFZKSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzdG9wKCkge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGZldGNoKCkge1xuICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBkYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuXG4gICAgICAgIGZldGNoKGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1rZWVwQWxpdmVgLCB7XG4gICAgICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogZGF0YVxuICAgICAgICB9KS5jYXRjaCh1c2VyRmVlZGJhY2tFcnJvcik7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgS2VlcEFsaXZlKCk7XG4iXSwibmFtZXMiOlsiY29uZmlnIiwidXNlckZlZWRiYWNrRXJyb3IiLCJNQVhfU0FGRV9ERUxBWSIsIktlZXBBbGl2ZSIsImFjdGl2ZSIsInRpbWVvdXQiLCJhZG1pbl90aW1lb3V0IiwidGltZXIiLCJzZXRJbnRlcnZhbCIsImZldGNoIiwiTWF0aCIsIm1pbiIsImNsZWFySW50ZXJ2YWwiLCJkYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJhZG1pbl9ub25jZSIsImJhc2VfdXJsX3JlbGF0aXZlIiwicGFyYW1fc2VwIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/keepalive.js\n");
/***/ }),
/***/ "./app/utils/offline.js":
/*!******************************!*\
!*** ./app/utils/offline.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_offline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/offline */ \"./app/utils/offline.js\");\n\n\nvar offlineElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#offline-status');\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('offline', function () {\n offlineElement.slideDown();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('online', function () {\n offlineElement.slideUp();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n if (!_utils_offline__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n offlineElement.slideDown();\n }\n}); // assume online if can't check\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof __webpack_require__.g.navigator.onLine !== 'undefined' ? __webpack_require__.g.navigator.onLine : true);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvb2ZmbGluZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUVBLElBQU1FLGNBQWMsR0FBR0YsNkNBQUMsQ0FBQyxpQkFBRCxDQUF4QjtBQUVBQSw2Q0FBQyxDQUFDRyxNQUFELENBQUQsQ0FBVUMsRUFBVixDQUFhLFNBQWIsRUFBd0IsWUFBTTtBQUMxQkYsRUFBQUEsY0FBYyxDQUFDRyxTQUFmO0FBQ0gsQ0FGRDtBQUlBTCw2Q0FBQyxDQUFDRyxNQUFELENBQUQsQ0FBVUMsRUFBVixDQUFhLFFBQWIsRUFBdUIsWUFBTTtBQUN6QkYsRUFBQUEsY0FBYyxDQUFDSSxPQUFmO0FBQ0gsQ0FGRDtBQUlBTiw2Q0FBQyxDQUFDTyxRQUFELENBQUQsQ0FBWUMsS0FBWixDQUFrQixZQUFNO0FBQ3BCLE1BQUksQ0FBQ1Asc0RBQUwsRUFBZTtBQUNYQyxJQUFBQSxjQUFjLENBQUNHLFNBQWY7QUFDSDtBQUNKLENBSkQsR0FNQTs7QUFDQSxpRUFBZSxPQUFPSSxxQkFBTSxDQUFDQyxTQUFQLENBQWlCQyxNQUF4QixLQUFtQyxXQUFuQyxHQUFpREYscUJBQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsTUFBbEUsR0FBMkUsSUFBMUYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL29mZmxpbmUuanM/ODc0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGlzT25saW5lIGZyb20gJy4uL3V0aWxzL29mZmxpbmUnO1xuXG5jb25zdCBvZmZsaW5lRWxlbWVudCA9ICQoJyNvZmZsaW5lLXN0YXR1cycpO1xuXG4kKHdpbmRvdykub24oJ29mZmxpbmUnLCAoKSA9PiB7XG4gICAgb2ZmbGluZUVsZW1lbnQuc2xpZGVEb3duKCk7XG59KTtcblxuJCh3aW5kb3cpLm9uKCdvbmxpbmUnLCAoKSA9PiB7XG4gICAgb2ZmbGluZUVsZW1lbnQuc2xpZGVVcCgpO1xufSk7XG5cbiQoZG9jdW1lbnQpLnJlYWR5KCgpID0+IHtcbiAgICBpZiAoIWlzT25saW5lKSB7XG4gICAgICAgIG9mZmxpbmVFbGVtZW50LnNsaWRlRG93bigpO1xuICAgIH1cbn0pO1xuXG4vLyBhc3N1bWUgb25saW5lIGlmIGNhbid0IGNoZWNrXG5leHBvcnQgZGVmYXVsdCB0eXBlb2YgZ2xvYmFsLm5hdmlnYXRvci5vbkxpbmUgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsLm5hdmlnYXRvci5vbkxpbmUgOiB0cnVlO1xuIl0sIm5hbWVzIjpbIiQiLCJpc09ubGluZSIsIm9mZmxpbmVFbGVtZW50Iiwid2luZG93Iiwib24iLCJzbGlkZURvd24iLCJzbGlkZVVwIiwiZG9jdW1lbnQiLCJyZWFkeSIsImdsb2JhbCIsIm5hdmlnYXRvciIsIm9uTGluZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/offline.js\n");
/***/ }),
/***/ "./app/utils/packages.js":
/*!*******************************!*\
!*** ./app/utils/packages.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(es6_promise__WEBPACK_IMPORTED_MODULE_4__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n\nvar Sorter = /*#__PURE__*/function () {\n function Sorter() {\n _classCallCheck(this, Sorter);\n }\n\n _createClass(Sorter, [{\n key: \"getElements\",\n value: function getElements(elements, container) {\n this.elements = elements || jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-plugin], [data-gpm-theme]');\n this.container = container || jquery__WEBPACK_IMPORTED_MODULE_0___default()('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');\n return this.elements;\n }\n }, {\n key: \"byCommon\",\n value: function byCommon() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var elements = this.getElements().sort(function (a, b) {\n var A = jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).data(data).toString().toLowerCase();\n var B = jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).data(data).toString().toLowerCase();\n return Sorter.sort(A, B, direction);\n });\n return elements.appendTo(this.container);\n }\n }, {\n key: \"byName\",\n value: function byName() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-name';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byAuthor\",\n value: function byAuthor() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-author';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byOfficial\",\n value: function byOfficial() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-official';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byReleaseDate\",\n value: function byReleaseDate() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-release-date';\n var elements = this.getElements().sort(function (a, b) {\n var A = new Date(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).data(data)).getTime();\n var B = new Date(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).data(data)).getTime();\n return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');\n });\n elements.appendTo(this.container);\n }\n }, {\n key: \"byUpdatable\",\n value: function byUpdatable() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-updatable';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byEnabled\",\n value: function byEnabled() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-enabled';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byTesting\",\n value: function byTesting() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-testing';\n return this.byCommon(direction, data);\n }\n }], [{\n key: \"sort\",\n value: function sort(A, B) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'asc';\n\n if (A > B) {\n return direction === 'asc' ? 1 : -1;\n }\n\n if (A < B) {\n return direction === 'asc' ? -1 : 1;\n }\n\n return 0;\n }\n }]);\n\n return Sorter;\n}();\n\nvar Packages = /*#__PURE__*/function () {\n function Packages() {\n _classCallCheck(this, Packages);\n\n this.Sort = new Sorter();\n }\n\n _createClass(Packages, [{\n key: \"addDependenciesToList\",\n value: function addDependenciesToList(dependencies) {\n var slug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n dependencies.forEach(function (dependency) {\n Packages.addDependencyToList('plugin', dependency.name || dependency, slug);\n });\n }\n }, {\n key: \"removePackage\",\n value: function removePackage(type, slug) {\n var _this = this;\n\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n\n if (response.dependencies && response.dependencies.length > 0) {\n _this.addDependenciesToList(response.dependencies);\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-dependencies').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-done').removeClass('hidden');\n } // The package was removed. When the modal closes, move to the packages list\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closing', '[data-remodal-id=\"remove-package\"]', function () {\n Packages.getBackToList(type);\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"reinstallPackage\",\n value: function reinstallPackage(type, slug, package_name, current_version) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar button').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar .spinning-wheel').removeClass('hidden');\n var url = Packages.getReinstallPackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n slug: slug,\n type: type,\n package_name: package_name,\n current_version: current_version\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-done').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-error').removeClass('hidden');\n }\n\n window.location.reload();\n });\n }\n }, {\n key: \"removeDependency\",\n value: function removeDependency(type, slug, button) {\n var _this2 = this;\n\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n button.removeClass('button');\n button.replaceWith(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span>Removed successfully</span>'));\n\n if (response.dependencies && response.dependencies.length > 0) {\n _this2.addDependenciesToList(response.dependencies, slug);\n }\n }\n });\n }\n }, {\n key: \"getPackagesDependencies\",\n value: function getPackagesDependencies(type, slugs, finishedLoadingCallback) {\n var url = Packages.getGetPackagesDependenciesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, function (response) {\n finishedLoadingCallback();\n\n if (response.status === 'success') {\n if (response.dependencies) {\n var hasDependencies = false;\n\n for (var dependency in response.dependencies) {\n if (response.dependencies.hasOwnProperty(dependency)) {\n if (dependency === 'grav') {\n continue;\n }\n\n hasDependencies = true;\n var dependencyName = dependency;\n var action = response.dependencies[dependency];\n Packages.addNeededDependencyToList(action, dependencyName);\n }\n }\n\n if (hasDependencies) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"installDependenciesOfPackages\",\n value: function installDependenciesOfPackages(type, slugs, callbackSuccess, callbackError) {\n var url = Packages.getInstallDependenciesOfPackagesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, callbackSuccess);\n }\n }, {\n key: \"installPackages\",\n value: function installPackages(type, slugs, callbackSuccess) {\n var url = Packages.getInstallPackageUrl(type);\n es6_promise__WEBPACK_IMPORTED_MODULE_4__.Promise.all(slugs.map(function (slug) {\n return new es6_promise__WEBPACK_IMPORTED_MODULE_4__.Promise(function (resolve, reject) {\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(url, {\n method: 'post',\n body: {\n \"package\": slug,\n type: type\n }\n }, function (response) {\n resolve(response);\n });\n });\n })).then(callbackSuccess);\n }\n }, {\n key: \"handleGettingPackageDependencies\",\n value: function handleGettingPackageDependencies(type, event) {\n var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'update';\n var slugs = Packages.getSlugsFromEvent(event);\n\n if (!slugs) {\n alert('No slug set');\n return;\n } // Cleanup\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container li').remove();\n slugs.forEach(function (slug) {\n if (action === 'update') {\n var current_version = '';\n var available_version = '';\n var _name = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name = resources.themes[slug].name;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"<li>\".concat(_name ? _name : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v<strong>\").concat(current_version, \"</strong> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v<strong>\").concat(available_version, \"</strong></li>\"));\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"<li>\".concat(name ? name : slug, \"</li>\"));\n }\n });\n event.preventDefault();\n event.stopPropagation(); // fix mismatching types when sharing install modal between plugins/themes\n\n var query = '[data-packages-modal] [data-theme-action], [data-packages-modal] [data-plugin-action]';\n var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('themeAction') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('pluginAction');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).removeAttr('data-theme-action').removeAttr('data-plugin-action').attr(\"data-\".concat(type, \"-action\"), data); // Restore original state\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').removeClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').addClass('hidden');\n this.getPackagesDependencies(type, slugs, function () {\n var slugs_string = slugs.join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-dependencies-and-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').addClass('hidden');\n });\n }\n }, {\n key: \"handleInstallingDependenciesAndPackage\",\n value: function handleInstallingDependenciesAndPackage(type, event) {\n var _this3 = this;\n\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').removeClass('hidden');\n this.installDependenciesOfPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n\n _this3.installPackages(type, slugs, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n\n if (response.status === 'error') {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal]').data('remodal')];\n remodal.close();\n return;\n }\n\n setTimeout(function () {\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, 1000);\n });\n });\n }\n }, {\n key: \"handleInstallingPackage\",\n value: function handleInstallingPackage(type, event) {\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n this.installPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n var errors = Array.from(response).filter(function (r) {\n return r.status === 'error';\n });\n\n if (errors && errors.length) {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal].remodal-is-opened').data('remodal')];\n remodal.close();\n return;\n }\n\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n });\n }\n }, {\n key: \"handleRemovingPackage\",\n value: function handleRemovingPackage(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n event.preventDefault();\n event.stopPropagation();\n this.removePackage(type, slug);\n }\n }, {\n key: \"handleReinstallPackage\",\n value: function handleReinstallPackage(type, event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var slug = target.attr('data-package-slug');\n var package_name = target.attr('data-package-name');\n var current_version = target.attr('data-package-current-version');\n event.preventDefault();\n event.stopPropagation();\n this.reinstallPackage(type, slug, package_name, current_version);\n }\n }, {\n key: \"handleRemovingDependency\",\n value: function handleRemovingDependency(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-dependency-slug');\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n event.preventDefault();\n event.stopPropagation();\n this.removeDependency(type, slug, button);\n }\n }], [{\n key: \"getBackToList\",\n value: function getBackToList(type) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, {\n key: \"addDependencyToList\",\n value: function addDependencyToList(type, dependency) {\n var slug = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (['admin', 'form', 'login', 'email', 'grav'].indexOf(dependency) !== -1) {\n return;\n }\n\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.package-dependencies-container');\n var text = \"\".concat(dependency, \" <a href=\\\"#\\\" class=\\\"button\\\" data-dependency-slug=\\\"\").concat(dependency, \"\\\" data-\").concat(type, \"-action=\\\"remove-dependency-package\\\">Remove</a>\");\n\n if (slug) {\n text += \" (was needed by \".concat(slug, \")\");\n }\n\n container.append(\"<li>\".concat(text, \"</li>\"));\n }\n }, {\n key: \"getTaskUrl\",\n value: function getTaskUrl(type, task) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative);\n url += \"/\".concat(type, \"s.json\");\n url += \"/task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(task);\n return url;\n }\n }, {\n key: \"getRemovePackageUrl\",\n value: function getRemovePackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'removePackage'));\n }\n }, {\n key: \"getReinstallPackageUrl\",\n value: function getReinstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'reinstallPackage'));\n }\n }, {\n key: \"getGetPackagesDependenciesUrl\",\n value: function getGetPackagesDependenciesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'getPackagesDependencies'));\n }\n }, {\n key: \"getInstallDependenciesOfPackagesUrl\",\n value: function getInstallDependenciesOfPackagesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installDependenciesOfPackages'));\n }\n }, {\n key: \"getInstallPackageUrl\",\n value: function getInstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installPackage'));\n }\n }, {\n key: \"addNeededDependencyToList\",\n value: function addNeededDependencyToList(action, slug) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action).removeClass('hidden');\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action + ' ul');\n\n if (action !== 'install') {\n var current_version = '';\n var available_version = '';\n var _name2 = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name2 = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name2 = resources.themes[slug].name;\n }\n\n list.append(\"<li>\".concat(_name2 ? _name2 : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v<strong>\").concat(current_version, \"</strong> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v<strong>\").concat(available_version, \"</strong></li>\"));\n } else {\n list.append(\"<li>\".concat(name ? name : slug, \"</li>\"));\n }\n }\n }, {\n key: \"getSlugsFromEvent\",\n value: function getSlugsFromEvent(event) {\n var slugs = '';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is('[data-packages-slugs]')) {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n } else {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parent('[data-packages-slugs]').attr('data-packages-slugs');\n }\n\n if (typeof slugs === 'undefined') {\n return null;\n }\n\n slugs = slugs.split(',');\n return typeof slugs === 'string' ? [slugs] : slugs;\n }\n }]);\n\n return Packages;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new Packages());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVAsS0FBaUIsV0FBckIsRUFBa0M7QUFDOUIsZUFBTyxJQUFQO0FBQ0g7O0FBRURBLE1BQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDb0UsS0FBTixDQUFZLEdBQVosQ0FBUjtBQUNBLGFBQU8sT0FBT3BFLEtBQVAsS0FBaUIsUUFBakIsR0FBNEIsQ0FBQ0EsS0FBRCxDQUE1QixHQUFzQ0EsS0FBN0M7QUFDSDs7Ozs7O0FBOEpMLGlFQUFlLElBQUk5QixRQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3BhY2thZ2VzLmpzP2VhZWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuaW1wb3J0IHsgUHJvbWlzZSB9IGZyb20gJ2VzNi1wcm9taXNlJztcblxuY2xhc3MgU29ydGVyIHtcbiAgICBnZXRFbGVtZW50cyhlbGVtZW50cywgY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBlbGVtZW50cyB8fCAkKCdbZGF0YS1ncG0tcGx1Z2luXSwgW2RhdGEtZ3BtLXRoZW1lXScpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lciB8fCAkKCcuZ3BtLXBsdWdpbnMgPiB0YWJsZSA+IHRib2R5LCAuZ3BtLXRoZW1lcyA+IC50aGVtZXMuY2FyZC1yb3cnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudHM7XG4gICAgfVxuXG4gICAgc3RhdGljIHNvcnQoQSwgQiwgZGlyZWN0aW9uID0gJ2FzYycpIHtcbiAgICAgICAgaWYgKEEgPiBCKSB7IHJldHVybiAoZGlyZWN0aW9uID09PSAnYXNjJykgPyAxIDogLTE7IH1cbiAgICAgICAgaWYgKEEgPCBCKSB7IHJldHVybiAoZGlyZWN0aW9uID09PSAnYXNjJykgPyAtMSA6IDE7IH1cblxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBieUNvbW1vbihkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICcnKSB7XG4gICAgICAgIGxldCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHMoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBsZXQgQSA9ICQoYSkuZGF0YShkYXRhKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBsZXQgQiA9ICQoYikuZGF0YShkYXRhKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBTb3J0ZXIuc29ydChBLCBCLCBkaXJlY3Rpb24pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZWxlbWVudHMuYXBwZW5kVG8odGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGJ5TmFtZShkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tbmFtZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG5cbiAgICBieUF1dGhvcihkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tYXV0aG9yJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5T2ZmaWNpYWwoZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtLW9mZmljaWFsJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5UmVsZWFzZURhdGUoZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtLXJlbGVhc2UtZGF0ZScpIHtcbiAgICAgICAgbGV0IGVsZW1lbnRzID0gdGhpcy5nZXRFbGVtZW50cygpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBBID0gbmV3IERhdGUoJChhKS5kYXRhKGRhdGEpKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBsZXQgQiA9IG5ldyBEYXRlKCQoYikuZGF0YShkYXRhKSkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gU29ydGVyLnNvcnQoQSwgQiwgZGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWxlbWVudHMuYXBwZW5kVG8odGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGJ5VXBkYXRhYmxlKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbS11cGRhdGFibGUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ5Q29tbW9uKGRpcmVjdGlvbiwgZGF0YSk7XG4gICAgfVxuXG4gICAgYnlFbmFibGVkKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbS1lbmFibGVkJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5VGVzdGluZyhkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tdGVzdGluZycpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG59XG5cbmNsYXNzIFBhY2thZ2VzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5Tb3J0ID0gbmV3IFNvcnRlcigpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRCYWNrVG9MaXN0KHR5cGUpIHtcbiAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9LyR7dHlwZX1zYDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkRGVwZW5kZW5jeVRvTGlzdCh0eXBlLCBkZXBlbmRlbmN5LCBzbHVnID0gJycpIHtcbiAgICAgICAgaWYgKFsnYWRtaW4nLCAnZm9ybScsICdsb2dpbicsICdlbWFpbCcsICdncmF2J10uaW5kZXhPZihkZXBlbmRlbmN5KSAhPT0gLTEpIHsgcmV0dXJuOyB9XG4gICAgICAgIGxldCBjb250YWluZXIgPSAkKCcucGFja2FnZS1kZXBlbmRlbmNpZXMtY29udGFpbmVyJyk7XG4gICAgICAgIGxldCB0ZXh0ID0gYCR7ZGVwZW5kZW5jeX0gPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvblwiIGRhdGEtZGVwZW5kZW5jeS1zbHVnPVwiJHtkZXBlbmRlbmN5fVwiIGRhdGEtJHt0eXBlfS1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCI+UmVtb3ZlPC9hPmA7XG5cbiAgICAgICAgaWYgKHNsdWcpIHtcbiAgICAgICAgICAgIHRleHQgKz0gYCAod2FzIG5lZWRlZCBieSAke3NsdWd9KWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuYXBwZW5kKGA8bGk+JHt0ZXh0fTwvbGk+YCk7XG4gICAgfVxuXG4gICAgYWRkRGVwZW5kZW5jaWVzVG9MaXN0KGRlcGVuZGVuY2llcywgc2x1ZyA9ICcnKSB7XG4gICAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgICBQYWNrYWdlcy5hZGREZXBlbmRlbmN5VG9MaXN0KCdwbHVnaW4nLCBkZXBlbmRlbmN5Lm5hbWUgfHwgZGVwZW5kZW5jeSwgc2x1Zyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYXNrVXJsKHR5cGUsIHRhc2spIHtcbiAgICAgICAgbGV0IHVybCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX1gO1xuICAgICAgICB1cmwgKz0gYC8ke3R5cGV9cy5qc29uYDtcbiAgICAgICAgdXJsICs9IGAvdGFzayR7Y29uZmlnLnBhcmFtX3NlcH0ke3Rhc2t9YDtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVtb3ZlUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZW1vdmVQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVpbnN0YWxsUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZWluc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0R2V0UGFja2FnZXNEZXBlbmRlbmNpZXNVcmwodHlwZSkge1xuICAgICAgICByZXR1cm4gYCR7UGFja2FnZXMuZ2V0VGFza1VybCh0eXBlLCAnZ2V0UGFja2FnZXNEZXBlbmRlbmNpZXMnKX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRJbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlc1VybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdpbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlcycpfWA7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEluc3RhbGxQYWNrYWdlVXJsKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGAke1BhY2thZ2VzLmdldFRhc2tVcmwodHlwZSwgJ2luc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICByZW1vdmVQYWNrYWdlKHR5cGUsIHNsdWcpIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMgJiYgcmVzcG9uc2UuZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGREZXBlbmRlbmNpZXNUb0xpc3QocmVzcG9uc2UuZGVwZW5kZW5jaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnJlbW92ZS1wYWNrYWdlLWRlcGVuZGVuY2llcycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZG9uZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgcGFja2FnZSB3YXMgcmVtb3ZlZC4gV2hlbiB0aGUgbW9kYWwgY2xvc2VzLCBtb3ZlIHRvIHRoZSBwYWNrYWdlcyBsaXN0XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2Nsb3NpbmcnLCAnW2RhdGEtcmVtb2RhbC1pZD1cInJlbW92ZS1wYWNrYWdlXCJdJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBQYWNrYWdlcy5nZXRCYWNrVG9MaXN0KHR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlaW5zdGFsbFBhY2thZ2UodHlwZSwgc2x1ZywgcGFja2FnZV9uYW1lLCBjdXJyZW50X3ZlcnNpb24pIHtcbiAgICAgICAgJCgnLmJ1dHRvbi1iYXIgYnV0dG9uJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCcuYnV0dG9uLWJhciAuc3Bpbm5pbmctd2hlZWwnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlaW5zdGFsbFBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHNsdWc6IHNsdWcsXG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICBwYWNrYWdlX25hbWU6IHBhY2thZ2VfbmFtZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb246IGN1cnJlbnRfdmVyc2lvblxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1jb25maXJtJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1kb25lJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRGVwZW5kZW5jeSh0eXBlLCBzbHVnLCBidXR0b24pIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICBidXR0b24ucmVtb3ZlQ2xhc3MoJ2J1dHRvbicpO1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXBsYWNlV2l0aCgkKCc8c3Bhbj5SZW1vdmVkIHN1Y2Nlc3NmdWxseTwvc3Bhbj4nKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGVwZW5kZW5jaWVzICYmIHJlc3BvbnNlLmRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzVG9MaXN0KHJlc3BvbnNlLmRlcGVuZGVuY2llcywgc2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIHNsdWcpIHtcbiAgICAgICAgJCgnLmluc3RhbGwtZGVwZW5kZW5jaWVzLXBhY2thZ2UtY29udGFpbmVyIC50eXBlLScgKyBhY3Rpb24pLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgbGV0IGxpc3QgPSAkKCcuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXIgLnR5cGUtJyArIGFjdGlvbiArICcgdWwnKTtcblxuICAgICAgICBpZiAoYWN0aW9uICE9PSAnaW5zdGFsbCcpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgIGxldCBhdmFpbGFibGVfdmVyc2lvbiA9ICcnO1xuICAgICAgICAgICAgbGV0IG5hbWUgPSAnJztcblxuICAgICAgICAgICAgbGV0IHJlc291cmNlcyA9IGdwbS5wYXlsb2FkLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVfdmVyc2lvbiA9IHJlc291cmNlcy5wbHVnaW5zW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgIG5hbWUgPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZXMudGhlbWVzW3NsdWddKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLnZlcnNpb247XG4gICAgICAgICAgICAgICAgbmFtZSA9IHJlc291cmNlcy50aGVtZXNbc2x1Z10ubmFtZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGlzdC5hcHBlbmQoYDxsaT4ke25hbWUgPyBuYW1lIDogc2x1Z30sICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GUk9NfSB2PHN0cm9uZz4ke2N1cnJlbnRfdmVyc2lvbn08L3N0cm9uZz4gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlRPfSB2PHN0cm9uZz4ke2F2YWlsYWJsZV92ZXJzaW9ufTwvc3Ryb25nPjwvbGk+YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0LmFwcGVuZChgPGxpPiR7bmFtZSA/IG5hbWUgOiBzbHVnfTwvbGk+YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYWNrYWdlc0RlcGVuZGVuY2llcyh0eXBlLCBzbHVncywgZmluaXNoZWRMb2FkaW5nQ2FsbGJhY2spIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldEdldFBhY2thZ2VzRGVwZW5kZW5jaWVzVXJsKHR5cGUpO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICBwYWNrYWdlczogc2x1Z3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgIGZpbmlzaGVkTG9hZGluZ0NhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBkZXBlbmRlbmN5IGluIHJlc3BvbnNlLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSAnZ3JhdicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RlcGVuZGVuY2llcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gcmVzcG9uc2UuZGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZXMuYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIGRlcGVuZGVuY3lOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNEZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXModHlwZSwgc2x1Z3MsIGNhbGxiYWNrU3VjY2VzcywgY2FsbGJhY2tFcnJvcikge1xuICAgICAgICBsZXQgdXJsID0gUGFja2FnZXMuZ2V0SW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXNVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2VzOiBzbHVnc1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjYWxsYmFja1N1Y2Nlc3MpO1xuICAgIH1cblxuICAgIGluc3RhbGxQYWNrYWdlcyh0eXBlLCBzbHVncywgY2FsbGJhY2tTdWNjZXNzKSB7XG4gICAgICAgIGxldCB1cmwgPSBQYWNrYWdlcy5nZXRJbnN0YWxsUGFja2FnZVVybCh0eXBlKTtcblxuICAgICAgICBQcm9taXNlLmFsbChzbHVncy5tYXAoKHNsdWcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpLnRoZW4oY2FsbGJhY2tTdWNjZXNzKTtcblxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRTbHVnc0Zyb21FdmVudChldmVudCkge1xuICAgICAgICBsZXQgc2x1Z3MgPSAnJztcbiAgICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5pcygnW2RhdGEtcGFja2FnZXMtc2x1Z3NdJykpIHtcbiAgICAgICAgICAgIHNsdWdzID0gJChldmVudC50YXJnZXQpLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNsdWdzID0gJChldmVudC50YXJnZXQpLnBhcmVudCgnW2RhdGEtcGFja2FnZXMtc2x1Z3NdJykuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBzbHVncyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z3MgPSBzbHVncy5zcGxpdCgnLCcpO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHNsdWdzID09PSAnc3RyaW5nJyA/IFtzbHVnc10gOiBzbHVncztcbiAgICB9XG5cbiAgICBoYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcyh0eXBlLCBldmVudCwgYWN0aW9uID0gJ3VwZGF0ZScpIHtcbiAgICAgICAgbGV0IHNsdWdzID0gUGFja2FnZXMuZ2V0U2x1Z3NGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgICAgIGlmICghc2x1Z3MpIHtcbiAgICAgICAgICAgIGFsZXJ0KCdObyBzbHVnIHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2xlYW51cFxuICAgICAgICAkKCcucGFja2FnZXMtbmFtZXMtbGlzdCcpLmh0bWwoJycpO1xuICAgICAgICAkKCcuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXIgbGknKS5yZW1vdmUoKTtcblxuICAgICAgICBzbHVncy5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgYXZhaWxhYmxlX3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9ICcnO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlc291cmNlcyA9IGdwbS5wYXlsb2FkLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc291cmNlcy5wbHVnaW5zW3NsdWddKSB7XG4gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZV92ZXJzaW9uID0gcmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10uYXZhaWxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gcmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10ubmFtZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlcy50aGVtZXNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF92ZXJzaW9uID0gcmVzb3VyY2VzLnRoZW1lc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gcmVzb3VyY2VzLnRoZW1lc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoJy5wYWNrYWdlcy1uYW1lcy1saXN0JykuYXBwZW5kKGA8bGk+JHtuYW1lID8gbmFtZSA6IHNsdWd9LCAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRlJPTX0gdjxzdHJvbmc+JHtjdXJyZW50X3ZlcnNpb259PC9zdHJvbmc+ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5UT30gdjxzdHJvbmc+JHthdmFpbGFibGVfdmVyc2lvbn08L3N0cm9uZz48L2xpPmApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucGFja2FnZXMtbmFtZXMtbGlzdCcpLmFwcGVuZChgPGxpPiR7bmFtZSA/IG5hbWUgOiBzbHVnfTwvbGk+YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIC8vIGZpeCBtaXNtYXRjaGluZyB0eXBlcyB3aGVuIHNoYXJpbmcgaW5zdGFsbCBtb2RhbCBiZXR3ZWVuIHBsdWdpbnMvdGhlbWVzXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSBbZGF0YS10aGVtZS1hY3Rpb25dLCBbZGF0YS1wYWNrYWdlcy1tb2RhbF0gW2RhdGEtcGx1Z2luLWFjdGlvbl0nO1xuICAgICAgICBjb25zdCBkYXRhID0gJChxdWVyeSkuZGF0YSgndGhlbWVBY3Rpb24nKSB8fCAkKHF1ZXJ5KS5kYXRhKCdwbHVnaW5BY3Rpb24nKTtcbiAgICAgICAgJChxdWVyeSkucmVtb3ZlQXR0cignZGF0YS10aGVtZS1hY3Rpb24nKS5yZW1vdmVBdHRyKCdkYXRhLXBsdWdpbi1hY3Rpb24nKS5hdHRyKGBkYXRhLSR7dHlwZX0tYWN0aW9uYCwgZGF0YSk7XG5cbiAgICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdGF0ZVxuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmxvYWRpbmcnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLWRlcGVuZGVuY2llcycpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGF0aW9uLWNvbXBsZXRlJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1lcnJvcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICB0aGlzLmdldFBhY2thZ2VzRGVwZW5kZW5jaWVzKHR5cGUsIHNsdWdzLCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgc2x1Z3Nfc3RyaW5nID0gc2x1Z3Muam9pbigpO1xuICAgICAgICAgICAgJChgW2RhdGEtcGFja2FnZXMtbW9kYWxdIFtkYXRhLSR7dHlwZX0tYWN0aW9uPVwiaW5zdGFsbC1kZXBlbmRlbmNpZXMtYW5kLXBhY2thZ2VcIl1gKS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJywgc2x1Z3Nfc3RyaW5nKTtcbiAgICAgICAgICAgICQoYFtkYXRhLXBhY2thZ2VzLW1vZGFsXSBbZGF0YS0ke3R5cGV9LWFjdGlvbj1cImluc3RhbGwtcGFja2FnZVwiXWApLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnLCBzbHVnc19zdHJpbmcpO1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5sb2FkaW5nJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVJbnN0YWxsaW5nRGVwZW5kZW5jaWVzQW5kUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgc2x1Z3MgPSBQYWNrYWdlcy5nZXRTbHVnc0Zyb21FdmVudChldmVudCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLWRlcGVuZGVuY2llcycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICB0aGlzLmluc3RhbGxEZXBlbmRlbmNpZXNPZlBhY2thZ2VzKHR5cGUsIHNsdWdzLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1kZXBlbmRlbmNpZXMnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctcGFja2FnZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2VzKHR5cGUsIHNsdWdzLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsYXRpb24tY29tcGxldGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZW1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFskKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0nKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2x1Z3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXMvJHtzbHVnc1swXX1gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9LyR7dHlwZX1zYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5zdGFsbGluZ1BhY2thZ2UodHlwZSwgZXZlbnQpIHtcbiAgICAgICAgbGV0IHNsdWdzID0gUGFja2FnZXMuZ2V0U2x1Z3NGcm9tRXZlbnQoZXZlbnQpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1wYWNrYWdlJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2VzKHR5cGUsIHNsdWdzLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1wYWNrYWdlJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsYXRpb24tY29tcGxldGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IEFycmF5LmZyb20ocmVzcG9uc2UpLmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09ICdlcnJvcicpO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdLnJlbW9kYWwtaXMtb3BlbmVkJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzbHVncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXMvJHtzbHVnc1swXX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXNgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVSZW1vdmluZ1BhY2thZ2UodHlwZSwgZXZlbnQpIHtcbiAgICAgICAgbGV0IHNsdWcgPSAkKGV2ZW50LnRhcmdldCkuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLnJlbW92ZVBhY2thZ2UodHlwZSwgc2x1Zyk7XG4gICAgfVxuXG4gICAgaGFuZGxlUmVpbnN0YWxsUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICBsZXQgc2x1ZyA9IHRhcmdldC5hdHRyKCdkYXRhLXBhY2thZ2Utc2x1ZycpO1xuICAgICAgICBsZXQgcGFja2FnZV9uYW1lID0gdGFyZ2V0LmF0dHIoJ2RhdGEtcGFja2FnZS1uYW1lJyk7XG4gICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSB0YXJnZXQuYXR0cignZGF0YS1wYWNrYWdlLWN1cnJlbnQtdmVyc2lvbicpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmVpbnN0YWxsUGFja2FnZSh0eXBlLCBzbHVnLCBwYWNrYWdlX25hbWUsIGN1cnJlbnRfdmVyc2lvbik7XG4gICAgfVxuXG4gICAgaGFuZGxlUmVtb3ZpbmdEZXBlbmRlbmN5KHR5cGUsIGV2ZW50KSB7XG4gICAgICAgIGxldCBzbHVnID0gJChldmVudC50YXJnZXQpLmF0dHIoJ2RhdGEtZGVwZW5kZW5jeS1zbHVnJyk7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlRGVwZW5kZW5jeSh0eXBlLCBzbHVnLCBidXR0b24pO1xuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgUGFja2FnZXMoKTtcbiJdLCJuYW1lcyI6WyIkIiwiY29uZmlnIiwidHJhbnNsYXRpb25zIiwicmVxdWVzdCIsIkluc3RhbmNlIiwiZ3BtIiwiUHJvbWlzZSIsIlNvcnRlciIsImVsZW1lbnRzIiwiY29udGFpbmVyIiwiZGlyZWN0aW9uIiwiZGF0YSIsImdldEVsZW1lbnRzIiwic29ydCIsImEiLCJiIiwiQSIsInRvU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJCIiwiYXBwZW5kVG8iLCJieUNvbW1vbiIsIkRhdGUiLCJnZXRUaW1lIiwiUGFja2FnZXMiLCJTb3J0IiwiZGVwZW5kZW5jaWVzIiwic2x1ZyIsImZvckVhY2giLCJkZXBlbmRlbmN5IiwiYWRkRGVwZW5kZW5jeVRvTGlzdCIsIm5hbWUiLCJ0eXBlIiwidXJsIiwiZ2V0UmVtb3ZlUGFja2FnZVVybCIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsInN0YXR1cyIsImFkZENsYXNzIiwibGVuZ3RoIiwiYWRkRGVwZW5kZW5jaWVzVG9MaXN0IiwicmVtb3ZlQ2xhc3MiLCJkb2N1bWVudCIsIm9uIiwiZ2V0QmFja1RvTGlzdCIsInBhY2thZ2VfbmFtZSIsImN1cnJlbnRfdmVyc2lvbiIsImdldFJlaW5zdGFsbFBhY2thZ2VVcmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInJlbG9hZCIsImJ1dHRvbiIsInJlcGxhY2VXaXRoIiwic2x1Z3MiLCJmaW5pc2hlZExvYWRpbmdDYWxsYmFjayIsImdldEdldFBhY2thZ2VzRGVwZW5kZW5jaWVzVXJsIiwicGFja2FnZXMiLCJoYXNEZXBlbmRlbmNpZXMiLCJoYXNPd25Qcm9wZXJ0eSIsImRlcGVuZGVuY3lOYW1lIiwiYWN0aW9uIiwiYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdCIsImNhbGxiYWNrU3VjY2VzcyIsImNhbGxiYWNrRXJyb3IiLCJnZXRJbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlc1VybCIsImdldEluc3RhbGxQYWNrYWdlVXJsIiwiYWxsIiwibWFwIiwicmVzb2x2ZSIsInJlamVjdCIsInRoZW4iLCJldmVudCIsImdldFNsdWdzRnJvbUV2ZW50IiwiYWxlcnQiLCJodG1sIiwicmVtb3ZlIiwiYXZhaWxhYmxlX3ZlcnNpb24iLCJyZXNvdXJjZXMiLCJwYXlsb2FkIiwicGx1Z2lucyIsImF2YWlsYWJsZSIsInZlcnNpb24iLCJ0aGVtZXMiLCJhcHBlbmQiLCJQTFVHSU5fQURNSU4iLCJGUk9NIiwiVE8iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInF1ZXJ5IiwicmVtb3ZlQXR0ciIsImF0dHIiLCJnZXRQYWNrYWdlc0RlcGVuZGVuY2llcyIsInNsdWdzX3N0cmluZyIsImpvaW4iLCJpbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlcyIsImluc3RhbGxQYWNrYWdlcyIsInJlbW9kYWwiLCJsb29rdXAiLCJjbG9zZSIsInNldFRpbWVvdXQiLCJnbG9iYWwiLCJocmVmIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJlcnJvcnMiLCJBcnJheSIsImZyb20iLCJmaWx0ZXIiLCJyIiwidGFyZ2V0IiwicmVtb3ZlUGFja2FnZSIsInJlaW5zdGFsbFBhY2thZ2UiLCJyZW1vdmVEZXBlbmRlbmN5IiwiaW5kZXhPZiIsInRleHQiLCJ0YXNrIiwicGFyYW1fc2VwIiwiZ2V0VGFza1VybCIsImxpc3QiLCJpcyIsInBhcmVudCIsInNwbGl0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/packages.js\n");
/***/ }),
/***/ "./app/utils/remodal.js":
/*!******************************!*\
!*** ./app/utils/remodal.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* Remodal from https://github.com/vodkabears/Remodal\n * With Stackable option from https://github.com/antstorm/Remodal patch\n */\n\n!function (root, factory) {\n return factory(root, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n}(undefined, function (global, $) {\n 'use strict';\n /**\n * Name of the plugin\n * @private\n * @const\n * @type {String}\n */\n\n var PLUGIN_NAME = 'remodal';\n /**\n * Namespace for CSS and events\n * @private\n * @const\n * @type {String}\n */\n\n var NAMESPACE = window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME;\n /**\n * Animationstart event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n\n var ANIMATIONSTART_EVENTS = $.map(['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n /**\n * Animationend event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n\n var ANIMATIONEND_EVENTS = $.map(['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n /**\n * Default settings\n * @private\n * @const\n * @type {Object}\n */\n\n var DEFAULTS = $.extend({\n hashTracking: true,\n closeOnConfirm: true,\n closeOnCancel: true,\n closeOnEscape: true,\n closeOnOutsideClick: true,\n modifier: '',\n stack: false,\n appendTo: null\n }, window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.DEFAULTS);\n /**\n * States of the Remodal\n * @private\n * @const\n * @enum {String}\n */\n\n var STATES = {\n CLOSING: 'closing',\n CLOSED: 'closed',\n OPENING: 'opening',\n OPENED: 'opened'\n };\n /**\n * Reasons of the state change.\n * @private\n * @const\n * @enum {String}\n */\n\n var STATE_CHANGE_REASONS = {\n CONFIRMATION: 'confirmation',\n CANCELLATION: 'cancellation'\n };\n /**\n * Is animation supported?\n * @private\n * @const\n * @type {Boolean}\n */\n\n var IS_ANIMATION = function () {\n var style = document.createElement('div').style;\n return style.animationName !== undefined || style.WebkitAnimationName !== undefined || style.MozAnimationName !== undefined || style.msAnimationName !== undefined || style.OAnimationName !== undefined;\n }();\n /**\n * Is iOS?\n * @private\n * @const\n * @type {Boolean}\n */\n\n\n var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform);\n /**\n * Current modal\n * @private\n * @type {Remodal}\n */\n\n var openModals = [];\n /**\n * Scrollbar position\n * @private\n * @type {Number}\n */\n\n var scrollTop;\n /**\n * Returns an animation duration\n * @private\n * @param {jQuery} $elem\n * @returns {Number}\n */\n\n function getAnimationDuration($elem) {\n if (IS_ANIMATION && $elem.css('animation-name') === 'none' && $elem.css('-webkit-animation-name') === 'none' && $elem.css('-moz-animation-name') === 'none' && $elem.css('-o-animation-name') === 'none' && $elem.css('-ms-animation-name') === 'none') {\n return 0;\n }\n\n var duration = $elem.css('animation-duration') || $elem.css('-webkit-animation-duration') || $elem.css('-moz-animation-duration') || $elem.css('-o-animation-duration') || $elem.css('-ms-animation-duration') || '0s';\n var delay = $elem.css('animation-delay') || $elem.css('-webkit-animation-delay') || $elem.css('-moz-animation-delay') || $elem.css('-o-animation-delay') || $elem.css('-ms-animation-delay') || '0s';\n var iterationCount = $elem.css('animation-iteration-count') || $elem.css('-webkit-animation-iteration-count') || $elem.css('-moz-animation-iteration-count') || $elem.css('-o-animation-iteration-count') || $elem.css('-ms-animation-iteration-count') || '1';\n var max;\n var len;\n var num;\n var i;\n duration = duration.split(', ');\n delay = delay.split(', ');\n iterationCount = iterationCount.split(', '); // The 'duration' size is the same as the 'delay' size\n\n for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) {\n num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]);\n\n if (num > max) {\n max = num;\n }\n }\n\n return max;\n }\n /**\n * Returns a scrollbar width\n * @private\n * @returns {Number}\n */\n\n\n function getScrollbarWidth() {\n if ($(document).height() <= $(window).height()) {\n return 0;\n }\n\n var outer = document.createElement('div');\n var inner = document.createElement('div');\n var widthNoScroll;\n var widthWithScroll;\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n document.body.appendChild(outer);\n widthNoScroll = outer.offsetWidth; // Force scrollbars\n\n outer.style.overflow = 'scroll'; // Add inner div\n\n inner.style.width = '100%';\n outer.appendChild(inner);\n widthWithScroll = inner.offsetWidth; // Remove divs\n\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n }\n /**\n * Locks the screen\n * @private\n */\n\n\n function lockScreen() {\n if (IS_IOS) {\n return;\n }\n\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n\n if (!$html.hasClass(lockedClass)) {\n $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method\n\n paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.addClass(lockedClass);\n }\n }\n /**\n * Unlocks the screen\n * @private\n */\n\n\n function unlockScreen() {\n if (IS_IOS) {\n return;\n }\n\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n\n if ($html.hasClass(lockedClass)) {\n $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method\n\n paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.removeClass(lockedClass);\n }\n }\n /**\n * Sets a state for an instance\n * @private\n * @param {Remodal} instance\n * @param {STATES} state\n * @param {Boolean} isSilent If true, Remodal does not trigger events\n * @param {String} Reason of a state change.\n */\n\n\n function setState(instance, state, isSilent, reason) {\n var newState = namespacify('is', state);\n var allStates = [namespacify('is', STATES.CLOSING), namespacify('is', STATES.OPENING), namespacify('is', STATES.CLOSED), namespacify('is', STATES.OPENED)].join(' ');\n instance.$bg.removeClass(allStates).addClass(newState);\n instance.$overlay.removeClass(allStates).addClass(newState);\n instance.$wrapper.removeClass(allStates).addClass(newState);\n instance.$modal.removeClass(allStates).addClass(newState);\n instance.state = state;\n !isSilent && instance.$modal.trigger({\n type: state,\n reason: reason\n }, [{\n reason: reason\n }]);\n }\n /**\n * Synchronizes with the animation\n * @param {Function} doBeforeAnimation\n * @param {Function} doAfterAnimation\n * @param {Remodal} instance\n */\n\n\n function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) {\n var runningAnimationsCount = 0;\n\n var handleAnimationStart = function handleAnimationStart(e) {\n if (e.target !== this) {\n return;\n }\n\n runningAnimationsCount++;\n };\n\n var handleAnimationEnd = function handleAnimationEnd(e) {\n if (e.target !== this) {\n return;\n }\n\n if (--runningAnimationsCount === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n };\n\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].on(ANIMATIONSTART_EVENTS, handleAnimationStart).on(ANIMATIONEND_EVENTS, handleAnimationEnd);\n });\n doBeforeAnimation(); // If the animation is not supported by a browser or its duration is 0\n\n if (getAnimationDuration(instance.$bg) === 0 && getAnimationDuration(instance.$overlay) === 0 && getAnimationDuration(instance.$wrapper) === 0 && getAnimationDuration(instance.$modal) === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n }\n /**\n * Closes immediately\n * @private\n * @param {Remodal} instance\n */\n\n\n function halt(instance) {\n if (instance.state === STATES.CLOSED) {\n return;\n }\n\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n removeModal(instance);\n instance.$bg.removeClass(instance.settings.modifier);\n instance.$overlay.removeClass(instance.settings.modifier).hide();\n instance.$wrapper.hide();\n\n if (openModals.length === 0) {\n unlockScreen();\n }\n\n setState(instance, STATES.CLOSED, true);\n }\n /**\n * Parses a string with options\n * @private\n * @param str\n * @returns {Object}\n */\n\n\n function parseOptions(str) {\n var obj = {};\n var arr;\n var len;\n var val;\n var i; // Remove spaces before and after delimiters\n\n str = str.replace(/\\s*:\\s*/g, ':').replace(/\\s*,\\s*/g, ','); // Parse a string\n\n arr = str.split(',');\n\n for (i = 0, len = arr.length; i < len; i++) {\n arr[i] = arr[i].split(':');\n val = arr[i][1]; // Convert a string value if it is like a boolean\n\n if (typeof val === 'string' || val instanceof String) {\n val = val === 'true' || (val === 'false' ? false : val);\n } // Convert a string value if it is like a number\n\n\n if (typeof val === 'string' || val instanceof String) {\n val = !isNaN(val) ? +val : val;\n }\n\n obj[arr[i][0]] = val;\n }\n\n return obj;\n }\n /**\n * Generates a string separated by dashes and prefixed with NAMESPACE\n * @private\n * @param {...String}\n * @returns {String}\n */\n\n\n function namespacify() {\n var result = NAMESPACE;\n\n for (var i = 0; i < arguments.length; ++i) {\n result += '-' + arguments[i];\n }\n\n return result;\n }\n /**\n * Handles the hashchange event\n * @private\n * @listens hashchange\n */\n\n\n function handleHashChangeEvent() {\n var id = location.hash.replace('#', '');\n var instance;\n var $elem;\n var current = currentModal();\n\n if (!id) {\n // Check if we have currently opened modal and animation was completed\n if (current && current.state === STATES.OPENED && current.settings.hashTracking) {\n current.close();\n }\n } else {\n if (!current || current.id !== id) {\n // Catch syntax error if your hash is bad\n try {\n $elem = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n } catch (err) {}\n\n if ($elem && $elem.length) {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n\n if (instance && instance.settings.hashTracking) {\n instance.open();\n }\n }\n }\n }\n }\n\n function currentModal() {\n return openModals[openModals.length - 1];\n }\n\n function removeModal(remodal) {\n var index = openModals.indexOf(remodal);\n\n if (index >= 0) {\n openModals.slice(index, 1);\n }\n }\n /**\n * Remodal constructor\n * @constructor\n * @param {jQuery} $modal\n * @param {Object} options\n */\n\n\n function Remodal($modal, options) {\n var $body = $(document.body);\n var $appendTo = $body;\n var remodal = this;\n remodal.id = $modal.attr('data-' + PLUGIN_NAME + '-id');\n remodal.settings = $.extend({}, DEFAULTS, options);\n remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1;\n remodal.state = STATES.CLOSED; // remodal.$overlay = $('.' + namespacify('overlay'));\n\n if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) {\n $appendTo = $(remodal.settings.appendTo);\n }\n\n if (!remodal.$overlay) {\n remodal.$overlay = $('<div>').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();\n $appendTo.append(remodal.$overlay);\n }\n\n remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));\n remodal.$modal = $modal.addClass(NAMESPACE + ' ' + namespacify('is-initialized') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).attr('tabindex', '-1');\n remodal.$wrapper = $('<div>').addClass(namespacify('wrapper') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).hide().append(remodal.$modal);\n $appendTo.append(remodal.$wrapper); // Add the event listener for the close button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"close\"]', function (e) {\n e.preventDefault();\n remodal.close();\n }); // Add the event listener for the cancel button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"cancel\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);\n\n if (remodal.settings.closeOnCancel) {\n remodal.close(STATE_CHANGE_REASONS.CANCELLATION);\n }\n }); // Add the event listener for the confirm button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"confirm\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);\n\n if (remodal.settings.closeOnConfirm) {\n remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);\n }\n }); // Add the event listener for the overlay\n\n remodal.$wrapper.on('click.' + NAMESPACE, function (e) {\n var $target = $(e.target);\n var isWrapper = $target.hasClass(namespacify('wrapper'));\n var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length;\n\n if (!isWrapper && isWithin) {\n return;\n }\n\n if (remodal.settings.closeOnOutsideClick) {\n remodal.close();\n }\n });\n }\n /**\n * Opens a modal window\n * @public\n */\n\n\n Remodal.prototype.open = function () {\n var remodal = this;\n var current;\n var modalCount; // Check if the animation was completed\n\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {\n return;\n } // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');\n\n\n if (remodal.id && remodal.settings.hashTracking) {\n scrollTop = $(window).scrollTop();\n location.hash = remodal.id;\n }\n\n if (!remodal.settings.stack) {\n current = currentModal();\n\n if (current && current !== remodal) {\n halt(current);\n }\n }\n\n modalCount = openModals.push(remodal);\n remodal.$overlay.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n remodal.$wrapper.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n lockScreen();\n remodal.$bg.addClass(remodal.settings.modifier);\n remodal.$overlay.addClass(remodal.settings.modifier).show();\n remodal.$wrapper.show().scrollTop(0);\n remodal.$modal.focus();\n syncWithAnimation(function () {\n setState(remodal, STATES.OPENING);\n }, function () {\n setState(remodal, STATES.OPENED);\n }, remodal);\n };\n /**\n * Closes a modal window\n * @public\n * @param {String} reason\n */\n\n\n Remodal.prototype.close = function (reason) {\n var remodal = this;\n var current; // Check if the animation was completed\n\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {\n return;\n }\n\n removeModal(remodal);\n\n if (remodal.settings.hashTracking && remodal.id === location.hash.substr(1)) {\n current = currentModal();\n\n if (current) {\n location.hash = current.id;\n } else {\n location.hash = '';\n $(window).scrollTop(scrollTop);\n }\n }\n\n syncWithAnimation(function () {\n setState(remodal, STATES.CLOSING, false, reason);\n }, function () {\n remodal.$bg.removeClass(remodal.settings.modifier);\n remodal.$overlay.removeClass(remodal.settings.modifier).hide();\n remodal.$wrapper.hide();\n\n if (openModals.length === 0) {\n unlockScreen();\n }\n\n setState(remodal, STATES.CLOSED, false, reason);\n }, remodal);\n };\n /**\n * Returns a current state of a modal\n * @public\n * @returns {STATES}\n */\n\n\n Remodal.prototype.getState = function () {\n return this.state;\n };\n /**\n * Destroys a modal\n * @public\n */\n\n\n Remodal.prototype.destroy = function () {\n var lookup = $[PLUGIN_NAME].lookup;\n var instanceCount;\n halt(this);\n this.$wrapper.remove();\n delete lookup[this.index];\n instanceCount = $.grep(lookup, function (instance) {\n return !!instance;\n }).length;\n\n if (instanceCount === 0) {\n this.$overlay.remove();\n this.$bg.removeClass(namespacify('is', STATES.CLOSING) + ' ' + namespacify('is', STATES.OPENING) + ' ' + namespacify('is', STATES.CLOSED) + ' ' + namespacify('is', STATES.OPENED));\n }\n };\n /**\n * Special plugin object for instances\n * @public\n * @type {Object}\n */\n\n\n $[PLUGIN_NAME] = {\n lookup: []\n };\n /**\n * Plugin constructor\n * @constructor\n * @param {Object} options\n * @returns {JQuery}\n */\n\n $.fn[PLUGIN_NAME] = function (opts) {\n var instance;\n var $elem;\n this.each(function (index, elem) {\n $elem = $(elem);\n\n if ($elem.data(PLUGIN_NAME) == null) {\n instance = new Remodal($elem, opts);\n $elem.data(PLUGIN_NAME, instance.index);\n\n if (instance.settings.hashTracking && instance.id === location.hash.substr(1)) {\n instance.open();\n }\n } else {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n }\n });\n return instance;\n };\n\n $(document).ready(function () {\n // data-remodal-target opens a modal window with the special Id\n $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function (e) {\n e.preventDefault();\n var elem = e.currentTarget;\n var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');\n var $target = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();\n }); // Auto initialization of modal windows\n // They should have the 'remodal' class attribute\n // Also you can write the `data-remodal-options` attribute to pass params into the modal\n\n $(document).find('.' + NAMESPACE).each(function (i, container) {\n var $container = $(container);\n var options = $container.data(PLUGIN_NAME + '-options');\n\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || options instanceof String) {\n options = parseOptions(options);\n }\n\n $container[PLUGIN_NAME](options);\n }); // Handles the keydown event\n\n $(document).on('keydown.' + NAMESPACE, function (e) {\n var current = currentModal();\n\n if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {\n current.close();\n }\n }); // Handles the hashchange event\n\n $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VixDQUF3QjBJLE9BQXhCO0FBQ0gsS0FYRCxFQWhCeUIsQ0E2QnpCOztBQUNBOUksSUFBQUEsQ0FBQyxDQUFDaUMsUUFBRCxDQUFELENBQVkrRSxFQUFaLENBQWUsYUFBYTNHLFNBQTVCLEVBQXVDLFVBQVNvRyxDQUFULEVBQVk7QUFDL0MsVUFBSTBCLE9BQU8sR0FBR0MsWUFBWSxFQUExQjs7QUFFQSxVQUFJRCxPQUFPLElBQUlBLE9BQU8sQ0FBQ2hCLFFBQVIsQ0FBaUJqRyxhQUE1QixJQUE2Q2lILE9BQU8sQ0FBQzFDLEtBQVIsS0FBa0JsRSxNQUFNLENBQUNJLE1BQXRFLElBQWdGOEUsQ0FBQyxDQUFDb0UsT0FBRixLQUFjLEVBQWxHLEVBQXNHO0FBQ2xHMUMsUUFBQUEsT0FBTyxDQUFDRSxLQUFSO0FBQ0g7QUFDSixLQU5ELEVBOUJ5QixDQXNDekI7O0FBQ0FySSxJQUFBQSxDQUFDLENBQUNNLE1BQUQsQ0FBRCxDQUFVMEcsRUFBVixDQUFhLGdCQUFnQjNHLFNBQTdCLEVBQXdDMEgscUJBQXhDO0FBQ0gsR0F4Q0Q7QUF5Q0gsQ0E3eUJBLENBQUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3JlbW9kYWwuanM/M2M5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBSZW1vZGFsIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvZGthYmVhcnMvUmVtb2RhbFxuICogV2l0aCBTdGFja2FibGUgb3B0aW9uIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FudHN0b3JtL1JlbW9kYWwgcGF0Y2hcbiAqL1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4hKGZ1bmN0aW9uKHJvb3QsIGZhY3RvcnkpIHtcbiAgICByZXR1cm4gZmFjdG9yeShyb290LCAkKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKGdsb2JhbCwgJCkge1xuXG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgcGx1Z2luXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBQTFVHSU5fTkFNRSA9ICdyZW1vZGFsJztcblxuICAgIC8qKlxuICAgICAqIE5hbWVzcGFjZSBmb3IgQ1NTIGFuZCBldmVudHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICovXG4gICAgdmFyIE5BTUVTUEFDRSA9IHdpbmRvdy5SRU1PREFMX0dMT0JBTFMgJiYgd2luZG93LlJFTU9EQUxfR0xPQkFMUy5OQU1FU1BBQ0UgfHwgUExVR0lOX05BTUU7XG5cbiAgICAvKipcbiAgICAgKiBBbmltYXRpb25zdGFydCBldmVudCB3aXRoIHZlbmRvciBwcmVmaXhlc1xuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgKi9cbiAgICB2YXIgQU5JTUFUSU9OU1RBUlRfRVZFTlRTID0gJC5tYXAoXG4gICAgICAgIFsnYW5pbWF0aW9uc3RhcnQnLCAnd2Via2l0QW5pbWF0aW9uU3RhcnQnLCAnTVNBbmltYXRpb25TdGFydCcsICdvQW5pbWF0aW9uU3RhcnQnXSxcblxuICAgICAgICBmdW5jdGlvbihldmVudE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE5hbWUgKyAnLicgKyBOQU1FU1BBQ0U7XG4gICAgICAgIH1cblxuICAgICkuam9pbignICcpO1xuXG4gICAgLyoqXG4gICAgICogQW5pbWF0aW9uZW5kIGV2ZW50IHdpdGggdmVuZG9yIHByZWZpeGVzXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBBTklNQVRJT05FTkRfRVZFTlRTID0gJC5tYXAoXG4gICAgICAgIFsnYW5pbWF0aW9uZW5kJywgJ3dlYmtpdEFuaW1hdGlvbkVuZCcsICdNU0FuaW1hdGlvbkVuZCcsICdvQW5pbWF0aW9uRW5kJ10sXG5cbiAgICAgICAgZnVuY3Rpb24oZXZlbnROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lICsgJy4nICsgTkFNRVNQQUNFO1xuICAgICAgICB9XG5cbiAgICApLmpvaW4oJyAnKTtcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgc2V0dGluZ3NcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgdmFyIERFRkFVTFRTID0gJC5leHRlbmQoe1xuICAgICAgICBoYXNoVHJhY2tpbmc6IHRydWUsXG4gICAgICAgIGNsb3NlT25Db25maXJtOiB0cnVlLFxuICAgICAgICBjbG9zZU9uQ2FuY2VsOiB0cnVlLFxuICAgICAgICBjbG9zZU9uRXNjYXBlOiB0cnVlLFxuICAgICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICBtb2RpZmllcjogJycsXG4gICAgICAgIHN0YWNrOiBmYWxzZSxcbiAgICAgICAgYXBwZW5kVG86IG51bGxcbiAgICB9LCB3aW5kb3cuUkVNT0RBTF9HTE9CQUxTICYmIHdpbmRvdy5SRU1PREFMX0dMT0JBTFMuREVGQVVMVFMpO1xuXG4gICAgLyoqXG4gICAgICogU3RhdGVzIG9mIHRoZSBSZW1vZGFsXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAZW51bSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBTVEFURVMgPSB7XG4gICAgICAgIENMT1NJTkc6ICdjbG9zaW5nJyxcbiAgICAgICAgQ0xPU0VEOiAnY2xvc2VkJyxcbiAgICAgICAgT1BFTklORzogJ29wZW5pbmcnLFxuICAgICAgICBPUEVORUQ6ICdvcGVuZWQnXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlYXNvbnMgb2YgdGhlIHN0YXRlIGNoYW5nZS5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEBlbnVtIHtTdHJpbmd9XG4gICAgICovXG4gICAgdmFyIFNUQVRFX0NIQU5HRV9SRUFTT05TID0ge1xuICAgICAgICBDT05GSVJNQVRJT046ICdjb25maXJtYXRpb24nLFxuICAgICAgICBDQU5DRUxMQVRJT046ICdjYW5jZWxsYXRpb24nXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIElzIGFuaW1hdGlvbiBzdXBwb3J0ZWQ/XG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICB2YXIgSVNfQU5JTUFUSU9OID0gKGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZTtcblxuICAgICAgICByZXR1cm4gc3R5bGUuYW5pbWF0aW9uTmFtZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBzdHlsZS5XZWJraXRBbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHN0eWxlLk1vekFuaW1hdGlvbk5hbWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgc3R5bGUubXNBbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHN0eWxlLk9BbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQ7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIElzIGlPUz9cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqL1xuICAgIHZhciBJU19JT1MgPSAvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO1xuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBtb2RhbFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge1JlbW9kYWx9XG4gICAgICovXG4gICAgdmFyIG9wZW5Nb2RhbHMgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFNjcm9sbGJhciBwb3NpdGlvblxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge051bWJlcn1cbiAgICAgKi9cbiAgICB2YXIgc2Nyb2xsVG9wO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fSAkZWxlbVxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oJGVsZW0pIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgSVNfQU5JTUFUSU9OICYmXG4gICAgICAgICAgICAkZWxlbS5jc3MoJ2FuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctby1hbmltYXRpb24tbmFtZScpID09PSAnbm9uZScgJiZcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGR1cmF0aW9uID0gJGVsZW0uY3NzKCdhbmltYXRpb24tZHVyYXRpb24nKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uJykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW8tYW5pbWF0aW9uLWR1cmF0aW9uJykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAnMHMnO1xuXG4gICAgICAgIHZhciBkZWxheSA9ICRlbGVtLmNzcygnYW5pbWF0aW9uLWRlbGF5JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1kZWxheScpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1vLWFuaW1hdGlvbi1kZWxheScpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tcy1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJzBzJztcblxuICAgICAgICB2YXIgaXRlcmF0aW9uQ291bnQgPSAkZWxlbS5jc3MoJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJzEnO1xuXG4gICAgICAgIHZhciBtYXg7XG4gICAgICAgIHZhciBsZW47XG4gICAgICAgIHZhciBudW07XG4gICAgICAgIHZhciBpO1xuXG4gICAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24uc3BsaXQoJywgJyk7XG4gICAgICAgIGRlbGF5ID0gZGVsYXkuc3BsaXQoJywgJyk7XG4gICAgICAgIGl0ZXJhdGlvbkNvdW50ID0gaXRlcmF0aW9uQ291bnQuc3BsaXQoJywgJyk7XG5cbiAgICAgICAgLy8gVGhlICdkdXJhdGlvbicgc2l6ZSBpcyB0aGUgc2FtZSBhcyB0aGUgJ2RlbGF5JyBzaXplXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IGR1cmF0aW9uLmxlbmd0aCwgbWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIG51bSA9IHBhcnNlRmxvYXQoZHVyYXRpb25baV0pICogcGFyc2VJbnQoaXRlcmF0aW9uQ291bnRbaV0sIDEwKSArIHBhcnNlRmxvYXQoZGVsYXlbaV0pO1xuXG4gICAgICAgICAgICBpZiAobnVtID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gbnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgc2Nyb2xsYmFyIHdpZHRoXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFNjcm9sbGJhcldpZHRoKCkge1xuICAgICAgICBpZiAoJChkb2N1bWVudCkuaGVpZ2h0KCkgPD0gJCh3aW5kb3cpLmhlaWdodCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvdXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB2YXIgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdmFyIHdpZHRoTm9TY3JvbGw7XG4gICAgICAgIHZhciB3aWR0aFdpdGhTY3JvbGw7XG5cbiAgICAgICAgb3V0ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICBvdXRlci5zdHlsZS53aWR0aCA9ICcxMDBweCc7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXIpO1xuXG4gICAgICAgIHdpZHRoTm9TY3JvbGwgPSBvdXRlci5vZmZzZXRXaWR0aDtcblxuICAgICAgICAvLyBGb3JjZSBzY3JvbGxiYXJzXG4gICAgICAgIG91dGVyLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG5cbiAgICAgICAgLy8gQWRkIGlubmVyIGRpdlxuICAgICAgICBpbm5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgb3V0ZXIuYXBwZW5kQ2hpbGQoaW5uZXIpO1xuXG4gICAgICAgIHdpZHRoV2l0aFNjcm9sbCA9IGlubmVyLm9mZnNldFdpZHRoO1xuXG4gICAgICAgIC8vIFJlbW92ZSBkaXZzXG4gICAgICAgIG91dGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob3V0ZXIpO1xuXG4gICAgICAgIHJldHVybiB3aWR0aE5vU2Nyb2xsIC0gd2lkdGhXaXRoU2Nyb2xsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvY2tzIHRoZSBzY3JlZW5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxvY2tTY3JlZW4oKSB7XG4gICAgICAgIGlmIChJU19JT1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciAkaHRtbCA9ICQoJ2h0bWwnKTtcbiAgICAgICAgdmFyIGxvY2tlZENsYXNzID0gbmFtZXNwYWNpZnkoJ2lzLWxvY2tlZCcpO1xuICAgICAgICB2YXIgcGFkZGluZ1JpZ2h0O1xuICAgICAgICB2YXIgJGJvZHk7XG5cbiAgICAgICAgaWYgKCEkaHRtbC5oYXNDbGFzcyhsb2NrZWRDbGFzcykpIHtcbiAgICAgICAgICAgICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcblxuICAgICAgICAgICAgLy8gWmVwdG8gZG9lcyBub3Qgc3VwcG9ydCAnLT0nLCAnKz0nIGluIHRoZSBgY3NzYCBtZXRob2RcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KCRib2R5LmNzcygncGFkZGluZy1yaWdodCcpLCAxMCkgKyBnZXRTY3JvbGxiYXJXaWR0aCgpO1xuXG4gICAgICAgICAgICAkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBwYWRkaW5nUmlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICRodG1sLmFkZENsYXNzKGxvY2tlZENsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVubG9ja3MgdGhlIHNjcmVlblxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW5sb2NrU2NyZWVuKCkge1xuICAgICAgICBpZiAoSVNfSU9TKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgJGh0bWwgPSAkKCdodG1sJyk7XG4gICAgICAgIHZhciBsb2NrZWRDbGFzcyA9IG5hbWVzcGFjaWZ5KCdpcy1sb2NrZWQnKTtcbiAgICAgICAgdmFyIHBhZGRpbmdSaWdodDtcbiAgICAgICAgdmFyICRib2R5O1xuXG4gICAgICAgIGlmICgkaHRtbC5oYXNDbGFzcyhsb2NrZWRDbGFzcykpIHtcbiAgICAgICAgICAgICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcblxuICAgICAgICAgICAgLy8gWmVwdG8gZG9lcyBub3Qgc3VwcG9ydCAnLT0nLCAnKz0nIGluIHRoZSBgY3NzYCBtZXRob2RcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KCRib2R5LmNzcygncGFkZGluZy1yaWdodCcpLCAxMCkgLSBnZXRTY3JvbGxiYXJXaWR0aCgpO1xuXG4gICAgICAgICAgICAkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBwYWRkaW5nUmlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICRodG1sLnJlbW92ZUNsYXNzKGxvY2tlZENsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBzdGF0ZSBmb3IgYW4gaW5zdGFuY2VcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7UmVtb2RhbH0gaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge1NUQVRFU30gc3RhdGVcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzU2lsZW50IElmIHRydWUsIFJlbW9kYWwgZG9lcyBub3QgdHJpZ2dlciBldmVudHNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUmVhc29uIG9mIGEgc3RhdGUgY2hhbmdlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldFN0YXRlKGluc3RhbmNlLCBzdGF0ZSwgaXNTaWxlbnQsIHJlYXNvbikge1xuXG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IG5hbWVzcGFjaWZ5KCdpcycsIHN0YXRlKTtcbiAgICAgICAgdmFyIGFsbFN0YXRlcyA9IFtuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0lORyksXG4gICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTklORyksXG4gICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSxcbiAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5PUEVORUQpXS5qb2luKCcgJyk7XG5cbiAgICAgICAgaW5zdGFuY2UuJGJnXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoYWxsU3RhdGVzKVxuICAgICAgICAgICAgLmFkZENsYXNzKG5ld1N0YXRlKTtcblxuICAgICAgICBpbnN0YW5jZS4kb3ZlcmxheVxuICAgICAgICAgICAgLnJlbW92ZUNsYXNzKGFsbFN0YXRlcylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhuZXdTdGF0ZSk7XG5cbiAgICAgICAgaW5zdGFuY2UuJHdyYXBwZXJcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhhbGxTdGF0ZXMpXG4gICAgICAgICAgICAuYWRkQ2xhc3MobmV3U3RhdGUpO1xuXG4gICAgICAgIGluc3RhbmNlLiRtb2RhbFxuICAgICAgICAgICAgLnJlbW92ZUNsYXNzKGFsbFN0YXRlcylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhuZXdTdGF0ZSk7XG5cbiAgICAgICAgaW5zdGFuY2Uuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgIWlzU2lsZW50ICYmIGluc3RhbmNlLiRtb2RhbC50cmlnZ2VyKHtcbiAgICAgICAgICAgIHR5cGU6IHN0YXRlLFxuICAgICAgICAgICAgcmVhc29uOiByZWFzb25cbiAgICAgICAgfSwgW3sgcmVhc29uOiByZWFzb24gfV0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN5bmNocm9uaXplcyB3aXRoIHRoZSBhbmltYXRpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBkb0JlZm9yZUFuaW1hdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGRvQWZ0ZXJBbmltYXRpb25cbiAgICAgKiBAcGFyYW0ge1JlbW9kYWx9IGluc3RhbmNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3luY1dpdGhBbmltYXRpb24oZG9CZWZvcmVBbmltYXRpb24sIGRvQWZ0ZXJBbmltYXRpb24sIGluc3RhbmNlKSB7XG4gICAgICAgIHZhciBydW5uaW5nQW5pbWF0aW9uc0NvdW50ID0gMDtcblxuICAgICAgICB2YXIgaGFuZGxlQW5pbWF0aW9uU3RhcnQgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS50YXJnZXQgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJ1bm5pbmdBbmltYXRpb25zQ291bnQrKztcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaGFuZGxlQW5pbWF0aW9uRW5kID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoLS1ydW5uaW5nQW5pbWF0aW9uc0NvdW50ID09PSAwKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgZXZlbnQgbGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdLm9mZihBTklNQVRJT05TVEFSVF9FVkVOVFMgKyAnICcgKyBBTklNQVRJT05FTkRfRVZFTlRTKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGRvQWZ0ZXJBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAkLmVhY2goWyckYmcnLCAnJG92ZXJsYXknLCAnJHdyYXBwZXInLCAnJG1vZGFsJ10sIGZ1bmN0aW9uKGluZGV4LCBlbGVtTmFtZSkge1xuICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdXG4gICAgICAgICAgICAgICAgLm9uKEFOSU1BVElPTlNUQVJUX0VWRU5UUywgaGFuZGxlQW5pbWF0aW9uU3RhcnQpXG4gICAgICAgICAgICAgICAgLm9uKEFOSU1BVElPTkVORF9FVkVOVFMsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRvQmVmb3JlQW5pbWF0aW9uKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGEgYnJvd3NlciBvciBpdHMgZHVyYXRpb24gaXMgMFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBnZXRBbmltYXRpb25EdXJhdGlvbihpbnN0YW5jZS4kYmcpID09PSAwICYmXG4gICAgICAgICAgICBnZXRBbmltYXRpb25EdXJhdGlvbihpbnN0YW5jZS4kb3ZlcmxheSkgPT09IDAgJiZcbiAgICAgICAgICAgIGdldEFuaW1hdGlvbkR1cmF0aW9uKGluc3RhbmNlLiR3cmFwcGVyKSA9PT0gMCAmJlxuICAgICAgICAgICAgZ2V0QW5pbWF0aW9uRHVyYXRpb24oaW5zdGFuY2UuJG1vZGFsKSA9PT0gMFxuICAgICAgICApIHtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xuICAgICAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVtlbGVtTmFtZV0ub2ZmKEFOSU1BVElPTlNUQVJUX0VWRU5UUyArICcgJyArIEFOSU1BVElPTkVORF9FVkVOVFMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRvQWZ0ZXJBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBpbW1lZGlhdGVseVxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtSZW1vZGFsfSBpbnN0YW5jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhbHQoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlLnN0YXRlID09PSBTVEFURVMuQ0xPU0VEKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAkLmVhY2goWyckYmcnLCAnJG92ZXJsYXknLCAnJHdyYXBwZXInLCAnJG1vZGFsJ10sIGZ1bmN0aW9uKGluZGV4LCBlbGVtTmFtZSkge1xuICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdLm9mZihBTklNQVRJT05TVEFSVF9FVkVOVFMgKyAnICcgKyBBTklNQVRJT05FTkRfRVZFTlRTKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVtb3ZlTW9kYWwoaW5zdGFuY2UpO1xuICAgICAgICBpbnN0YW5jZS4kYmcucmVtb3ZlQ2xhc3MoaW5zdGFuY2Uuc2V0dGluZ3MubW9kaWZpZXIpO1xuICAgICAgICBpbnN0YW5jZS4kb3ZlcmxheS5yZW1vdmVDbGFzcyhpbnN0YW5jZS5zZXR0aW5ncy5tb2RpZmllcikuaGlkZSgpO1xuICAgICAgICBpbnN0YW5jZS4kd3JhcHBlci5oaWRlKCk7XG5cbiAgICAgICAgaWYgKG9wZW5Nb2RhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB1bmxvY2tTY3JlZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKGluc3RhbmNlLCBTVEFURVMuQ0xPU0VELCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSBzdHJpbmcgd2l0aCBvcHRpb25zXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gc3RyXG4gICAgICogQHJldHVybnMge09iamVjdH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYXJzZU9wdGlvbnMoc3RyKSB7XG4gICAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgICAgdmFyIGFycjtcbiAgICAgICAgdmFyIGxlbjtcbiAgICAgICAgdmFyIHZhbDtcbiAgICAgICAgdmFyIGk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHNwYWNlcyBiZWZvcmUgYW5kIGFmdGVyIGRlbGltaXRlcnNcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccyo6XFxzKi9nLCAnOicpLnJlcGxhY2UoL1xccyosXFxzKi9nLCAnLCcpO1xuXG4gICAgICAgIC8vIFBhcnNlIGEgc3RyaW5nXG4gICAgICAgIGFyciA9IHN0ci5zcGxpdCgnLCcpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBhcnIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGFycltpXSA9IGFycltpXS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgdmFsID0gYXJyW2ldWzFdO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHZhbHVlIGlmIGl0IGlzIGxpa2UgYSBib29sZWFuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gdmFsID09PSAndHJ1ZScgfHwgKHZhbCA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdmFsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ29udmVydCBhIHN0cmluZyB2YWx1ZSBpZiBpdCBpcyBsaWtlIGEgbnVtYmVyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gIWlzTmFOKHZhbCkgPyArdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvYmpbYXJyW2ldWzBdXSA9IHZhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgc3RyaW5nIHNlcGFyYXRlZCBieSBkYXNoZXMgYW5kIHByZWZpeGVkIHdpdGggTkFNRVNQQUNFXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gey4uLlN0cmluZ31cbiAgICAgKiBAcmV0dXJucyB7U3RyaW5nfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5hbWVzcGFjaWZ5KCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gTkFNRVNQQUNFO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJy0nICsgYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHRoZSBoYXNoY2hhbmdlIGV2ZW50XG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbGlzdGVucyBoYXNoY2hhbmdlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlSGFzaENoYW5nZUV2ZW50KCkge1xuICAgICAgICB2YXIgaWQgPSBsb2NhdGlvbi5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgICAgIHZhciBpbnN0YW5jZTtcbiAgICAgICAgdmFyICRlbGVtO1xuXG4gICAgICAgIHZhciBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG5cbiAgICAgICAgaWYgKCFpZCkge1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGN1cnJlbnRseSBvcGVuZWQgbW9kYWwgYW5kIGFuaW1hdGlvbiB3YXMgY29tcGxldGVkXG4gICAgICAgICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50LnN0YXRlID09PSBTVEFURVMuT1BFTkVEICYmIGN1cnJlbnQuc2V0dGluZ3MuaGFzaFRyYWNraW5nKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudC5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBpZiAoIWN1cnJlbnQgfHwgY3VycmVudC5pZCAhPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAvLyBDYXRjaCBzeW50YXggZXJyb3IgaWYgeW91ciBoYXNoIGlzIGJhZFxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICRlbGVtID0gJChcbiAgICAgICAgICAgICAgICAgICAgICAgICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWlkPVwiJyArIGlkICsgJ1wiXSdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJGVsZW0gJiYgJGVsZW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gJFtQTFVHSU5fTkFNRV0ubG9va3VwWyRlbGVtLmRhdGEoUExVR0lOX05BTUUpXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UgJiYgaW5zdGFuY2Uuc2V0dGluZ3MuaGFzaFRyYWNraW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbnRNb2RhbCgpIHtcbiAgICAgICAgcmV0dXJuIG9wZW5Nb2RhbHNbb3Blbk1vZGFscy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVNb2RhbChyZW1vZGFsKSB7XG4gICAgICAgIHZhciBpbmRleCA9IG9wZW5Nb2RhbHMuaW5kZXhPZihyZW1vZGFsKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgb3Blbk1vZGFscy5zbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vZGFsIGNvbnN0cnVjdG9yXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtqUXVlcnl9ICRtb2RhbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAgICovXG4gICAgZnVuY3Rpb24gUmVtb2RhbCgkbW9kYWwsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgdmFyICRhcHBlbmRUbyA9ICRib2R5O1xuICAgICAgICB2YXIgcmVtb2RhbCA9IHRoaXM7XG5cbiAgICAgICAgcmVtb2RhbC5pZCA9ICRtb2RhbC5hdHRyKCdkYXRhLScgKyBQTFVHSU5fTkFNRSArICctaWQnKTtcbiAgICAgICAgcmVtb2RhbC5zZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCBERUZBVUxUUywgb3B0aW9ucyk7XG4gICAgICAgIHJlbW9kYWwuaW5kZXggPSAkW1BMVUdJTl9OQU1FXS5sb29rdXAucHVzaChyZW1vZGFsKSAtIDE7XG4gICAgICAgIHJlbW9kYWwuc3RhdGUgPSBTVEFURVMuQ0xPU0VEO1xuXG4gICAgICAgIC8vIHJlbW9kYWwuJG92ZXJsYXkgPSAkKCcuJyArIG5hbWVzcGFjaWZ5KCdvdmVybGF5JykpO1xuXG4gICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmFwcGVuZFRvICE9PSBudWxsICYmIHJlbW9kYWwuc2V0dGluZ3MuYXBwZW5kVG8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAkYXBwZW5kVG8gPSAkKHJlbW9kYWwuc2V0dGluZ3MuYXBwZW5kVG8pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZW1vZGFsLiRvdmVybGF5KSB7XG4gICAgICAgICAgICByZW1vZGFsLiRvdmVybGF5ID0gJCgnPGRpdj4nKS5hZGRDbGFzcyhuYW1lc3BhY2lmeSgnb3ZlcmxheScpICsgJyAnICsgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NFRCkpLmhpZGUoKTtcbiAgICAgICAgICAgICRhcHBlbmRUby5hcHBlbmQocmVtb2RhbC4kb3ZlcmxheSk7XG4gICAgICAgIH1cblxuICAgICAgICByZW1vZGFsLiRiZyA9ICQoJy4nICsgbmFtZXNwYWNpZnkoJ2JnJykpLmFkZENsYXNzKG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpKTtcblxuICAgICAgICByZW1vZGFsLiRtb2RhbCA9ICRtb2RhbFxuICAgICAgICAgICAgLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIE5BTUVTUEFDRSArICcgJyArXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzLWluaXRpYWxpemVkJykgKyAnICcgK1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuc2V0dGluZ3MubW9kaWZpZXIgKyAnICcgK1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpKVxuICAgICAgICAgICAgLmF0dHIoJ3RhYmluZGV4JywgJy0xJyk7XG5cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlciA9ICQoJzxkaXY+JylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnd3JhcHBlcicpICsgJyAnICtcbiAgICAgICAgICAgICAgICByZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSlcbiAgICAgICAgICAgIC5oaWRlKClcbiAgICAgICAgICAgIC5hcHBlbmQocmVtb2RhbC4kbW9kYWwpO1xuICAgICAgICAkYXBwZW5kVG8uYXBwZW5kKHJlbW9kYWwuJHdyYXBwZXIpO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBjbG9zZSBidXR0b25cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctYWN0aW9uPVwiY2xvc2VcIl0nLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHJlbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBldmVudCBsaXN0ZW5lciBmb3IgdGhlIGNhbmNlbCBidXR0b25cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctYWN0aW9uPVwiY2FuY2VsXCJdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZW1vZGFsLiRtb2RhbC50cmlnZ2VyKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNBTkNFTExBVElPTik7XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25DYW5jZWwpIHtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNBTkNFTExBVElPTik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBjb25maXJtIGJ1dHRvblxuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLm9uKCdjbGljay4nICsgTkFNRVNQQUNFLCAnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy1hY3Rpb249XCJjb25maXJtXCJdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZW1vZGFsLiRtb2RhbC50cmlnZ2VyKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNPTkZJUk1BVElPTik7XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25Db25maXJtKSB7XG4gICAgICAgICAgICAgICAgcmVtb2RhbC5jbG9zZShTVEFURV9DSEFOR0VfUkVBU09OUy5DT05GSVJNQVRJT04pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgb3ZlcmxheVxuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLm9uKCdjbGljay4nICsgTkFNRVNQQUNFLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICB2YXIgJHRhcmdldCA9ICQoZS50YXJnZXQpO1xuICAgICAgICAgICAgdmFyIGlzV3JhcHBlciA9ICR0YXJnZXQuaGFzQ2xhc3MobmFtZXNwYWNpZnkoJ3dyYXBwZXInKSk7XG4gICAgICAgICAgICB2YXIgaXNXaXRoaW4gPSAkdGFyZ2V0LmNsb3Nlc3QoJy4nICsgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLk9QRU5FRCkpLmxlbmd0aDtcblxuICAgICAgICAgICAgaWYgKCFpc1dyYXBwZXIgJiYgaXNXaXRoaW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25PdXRzaWRlQ2xpY2spIHtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIGEgbW9kYWwgd2luZG93XG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIFJlbW9kYWwucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJlbW9kYWwgPSB0aGlzO1xuICAgICAgICB2YXIgY3VycmVudDtcbiAgICAgICAgdmFyIG1vZGFsQ291bnQ7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFuaW1hdGlvbiB3YXMgY29tcGxldGVkXG4gICAgICAgIGlmIChyZW1vZGFsLnN0YXRlID09PSBTVEFURVMuT1BFTklORyB8fCByZW1vZGFsLnN0YXRlID09PSBTVEFURVMuQ0xPU0lORykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWQgPSByZW1vZGFsLiRtb2RhbC5hdHRyKCdkYXRhLScgKyBQTFVHSU5fTkFNRSArICctaWQnKTtcblxuICAgICAgICBpZiAocmVtb2RhbC5pZCAmJiByZW1vZGFsLnNldHRpbmdzLmhhc2hUcmFja2luZykge1xuICAgICAgICAgICAgc2Nyb2xsVG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xuICAgICAgICAgICAgbG9jYXRpb24uaGFzaCA9IHJlbW9kYWwuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW9kYWwuc2V0dGluZ3Muc3RhY2spIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50TW9kYWwoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IHJlbW9kYWwpIHtcbiAgICAgICAgICAgICAgICBoYWx0KGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbW9kYWxDb3VudCA9IG9wZW5Nb2RhbHMucHVzaChyZW1vZGFsKTtcbiAgICAgICAgcmVtb2RhbC4kb3ZlcmxheS5jc3MoJ3otaW5kZXgnLCBmdW5jdGlvbihfLCB2YWx1ZSkgeyByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKSArIG1vZGFsQ291bnQ7IH0pO1xuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLmNzcygnei1pbmRleCcsIGZ1bmN0aW9uKF8sIHZhbHVlKSB7IHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApICsgbW9kYWxDb3VudDsgfSk7XG5cbiAgICAgICAgbG9ja1NjcmVlbigpO1xuICAgICAgICByZW1vZGFsLiRiZy5hZGRDbGFzcyhyZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyKTtcbiAgICAgICAgcmVtb2RhbC4kb3ZlcmxheS5hZGRDbGFzcyhyZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyKS5zaG93KCk7XG4gICAgICAgIHJlbW9kYWwuJHdyYXBwZXIuc2hvdygpLnNjcm9sbFRvcCgwKTtcbiAgICAgICAgcmVtb2RhbC4kbW9kYWwuZm9jdXMoKTtcblxuICAgICAgICBzeW5jV2l0aEFuaW1hdGlvbihcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5PUEVOSU5HKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5PUEVORUQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVtb2RhbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBhIG1vZGFsIHdpbmRvd1xuICAgICAqIEBwdWJsaWNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcmVhc29uXG4gICAgICovXG4gICAgUmVtb2RhbC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbihyZWFzb24pIHtcbiAgICAgICAgdmFyIHJlbW9kYWwgPSB0aGlzO1xuICAgICAgICB2YXIgY3VycmVudDtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgYW5pbWF0aW9uIHdhcyBjb21wbGV0ZWRcbiAgICAgICAgaWYgKHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5PUEVOSU5HIHx8IHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5DTE9TSU5HIHx8IHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5DTE9TRUQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbW92ZU1vZGFsKHJlbW9kYWwpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlbW9kYWwuc2V0dGluZ3MuaGFzaFRyYWNraW5nICYmXG4gICAgICAgICAgICByZW1vZGFsLmlkID09PSBsb2NhdGlvbi5oYXNoLnN1YnN0cigxKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50TW9kYWwoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24uaGFzaCA9IGN1cnJlbnQuaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhhc2ggPSAnJztcbiAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsVG9wKHNjcm9sbFRvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzeW5jV2l0aEFuaW1hdGlvbihcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5DTE9TSU5HLCBmYWxzZSwgcmVhc29uKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJGJnLnJlbW92ZUNsYXNzKHJlbW9kYWwuc2V0dGluZ3MubW9kaWZpZXIpO1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJG92ZXJsYXkucmVtb3ZlQ2xhc3MocmVtb2RhbC5zZXR0aW5ncy5tb2RpZmllcikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJHdyYXBwZXIuaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wZW5Nb2RhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHVubG9ja1NjcmVlbigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5DTE9TRUQsIGZhbHNlLCByZWFzb24pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVtb2RhbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjdXJyZW50IHN0YXRlIG9mIGEgbW9kYWxcbiAgICAgKiBAcHVibGljXG4gICAgICogQHJldHVybnMge1NUQVRFU31cbiAgICAgKi9cbiAgICBSZW1vZGFsLnByb3RvdHlwZS5nZXRTdGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGVzdHJveXMgYSBtb2RhbFxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBSZW1vZGFsLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBsb29rdXAgPSAkW1BMVUdJTl9OQU1FXS5sb29rdXA7XG4gICAgICAgIHZhciBpbnN0YW5jZUNvdW50O1xuXG4gICAgICAgIGhhbHQodGhpcyk7XG4gICAgICAgIHRoaXMuJHdyYXBwZXIucmVtb3ZlKCk7XG5cbiAgICAgICAgZGVsZXRlIGxvb2t1cFt0aGlzLmluZGV4XTtcbiAgICAgICAgaW5zdGFuY2VDb3VudCA9ICQuZ3JlcChsb29rdXAsIGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gISFpbnN0YW5jZTtcbiAgICAgICAgfSkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZUNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLiRvdmVybGF5LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy4kYmcucmVtb3ZlQ2xhc3MoXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NJTkcpICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTklORykgKyAnICcgK1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTkVEKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBwbHVnaW4gb2JqZWN0IGZvciBpbnN0YW5jZXNcbiAgICAgKiBAcHVibGljXG4gICAgICogQHR5cGUge09iamVjdH1cbiAgICAgKi9cbiAgICAkW1BMVUdJTl9OQU1FXSA9IHtcbiAgICAgICAgbG9va3VwOiBbXVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQbHVnaW4gY29uc3RydWN0b3JcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgICAqIEByZXR1cm5zIHtKUXVlcnl9XG4gICAgICovXG4gICAgJC5mbltQTFVHSU5fTkFNRV0gPSBmdW5jdGlvbihvcHRzKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZTtcbiAgICAgICAgdmFyICRlbGVtO1xuXG4gICAgICAgIHRoaXMuZWFjaChmdW5jdGlvbihpbmRleCwgZWxlbSkge1xuICAgICAgICAgICAgJGVsZW0gPSAkKGVsZW0pO1xuXG4gICAgICAgICAgICBpZiAoJGVsZW0uZGF0YShQTFVHSU5fTkFNRSkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IFJlbW9kYWwoJGVsZW0sIG9wdHMpO1xuICAgICAgICAgICAgICAgICRlbGVtLmRhdGEoUExVR0lOX05BTUUsIGluc3RhbmNlLmluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0dGluZ3MuaGFzaFRyYWNraW5nICYmXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmlkID09PSBsb2NhdGlvbi5oYXNoLnN1YnN0cigxKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9ICRbUExVR0lOX05BTUVdLmxvb2t1cFskZWxlbS5kYXRhKFBMVUdJTl9OQU1FKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgLy8gZGF0YS1yZW1vZGFsLXRhcmdldCBvcGVucyBhIG1vZGFsIHdpbmRvdyB3aXRoIHRoZSBzcGVjaWFsIElkXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLXRhcmdldF0nLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHZhciBlbGVtID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgdmFyIGlkID0gZWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy10YXJnZXQnKTtcbiAgICAgICAgICAgIHZhciAkdGFyZ2V0ID0gJCgnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy1pZD1cIicgKyBpZCArICdcIl0nKTtcblxuICAgICAgICAgICAgJFtQTFVHSU5fTkFNRV0ubG9va3VwWyR0YXJnZXQuZGF0YShQTFVHSU5fTkFNRSldLm9wZW4oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQXV0byBpbml0aWFsaXphdGlvbiBvZiBtb2RhbCB3aW5kb3dzXG4gICAgICAgIC8vIFRoZXkgc2hvdWxkIGhhdmUgdGhlICdyZW1vZGFsJyBjbGFzcyBhdHRyaWJ1dGVcbiAgICAgICAgLy8gQWxzbyB5b3UgY2FuIHdyaXRlIHRoZSBgZGF0YS1yZW1vZGFsLW9wdGlvbnNgIGF0dHJpYnV0ZSB0byBwYXNzIHBhcmFtcyBpbnRvIHRoZSBtb2RhbFxuICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuJyArIE5BTUVTUEFDRSkuZWFjaChmdW5jdGlvbihpLCBjb250YWluZXIpIHtcbiAgICAgICAgICAgIHZhciAkY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSAkY29udGFpbmVyLmRhdGEoUExVR0lOX05BTUUgKyAnLW9wdGlvbnMnKTtcblxuICAgICAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgb3B0aW9ucyBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBwYXJzZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICRjb250YWluZXJbUExVR0lOX05BTUVdKG9wdGlvbnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIYW5kbGVzIHRoZSBrZXlkb3duIGV2ZW50XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLicgKyBOQU1FU1BBQ0UsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQuc2V0dGluZ3MuY2xvc2VPbkVzY2FwZSAmJiBjdXJyZW50LnN0YXRlID09PSBTVEFURVMuT1BFTkVEICYmIGUua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhhbmRsZXMgdGhlIGhhc2hjaGFuZ2UgZXZlbnRcbiAgICAgICAgJCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlLicgKyBOQU1FU1BBQ0UsIGhhbmRsZUhhc2hDaGFuZ2VFdmVudCk7XG4gICAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwicm9vdCIsImZhY3RvcnkiLCJnbG9iYWwiLCJQTFVHSU5fTkFNRSIsIk5BTUVTUEFDRSIsIndpbmRvdyIsIlJFTU9EQUxfR0xPQkFMUyIsIkFOSU1BVElPTlNUQVJUX0VWRU5UUyIsIm1hcCIsImV2ZW50TmFtZSIsImpvaW4iLCJBTklNQVRJT05FTkRfRVZFTlRTIiwiREVGQVVMVFMiLCJleHRlbmQiLCJoYXNoVHJhY2tpbmciLCJjbG9zZU9uQ29uZmlybSIsImNsb3NlT25DYW5jZWwiLCJjbG9zZU9uRXNjYXBlIiwiY2xvc2VPbk91dHNpZGVDbGljayIsIm1vZGlmaWVyIiwic3RhY2siLCJhcHBlbmRUbyIsIlNUQVRFUyIsIkNMT1NJTkciLCJDTE9TRUQiLCJPUEVOSU5HIiwiT1BFTkVEIiwiU1RBVEVfQ0hBTkdFX1JFQVNPTlMiLCJDT05GSVJNQVRJT04iLCJDQU5DRUxMQVRJT04iLCJJU19BTklNQVRJT04iLCJzdHlsZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImFuaW1hdGlvbk5hbWUiLCJ1bmRlZmluZWQiLCJXZWJraXRBbmltYXRpb25OYW1lIiwiTW96QW5pbWF0aW9uTmFtZSIsIm1zQW5pbWF0aW9uTmFtZSIsIk9BbmltYXRpb25OYW1lIiwiSVNfSU9TIiwidGVzdCIsIm5hdmlnYXRvciIsInBsYXRmb3JtIiwib3Blbk1vZGFscyIsInNjcm9sbFRvcCIsImdldEFuaW1hdGlvbkR1cmF0aW9uIiwiJGVsZW0iLCJjc3MiLCJkdXJhdGlvbiIsImRlbGF5IiwiaXRlcmF0aW9uQ291bnQiLCJtYXgiLCJsZW4iLCJudW0iLCJpIiwic3BsaXQiLCJsZW5ndGgiLCJOdW1iZXIiLCJORUdBVElWRV9JTkZJTklUWSIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsImdldFNjcm9sbGJhcldpZHRoIiwiaGVpZ2h0Iiwib3V0ZXIiLCJpbm5lciIsIndpZHRoTm9TY3JvbGwiLCJ3aWR0aFdpdGhTY3JvbGwiLCJ2aXNpYmlsaXR5Iiwid2lkdGgiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJvZmZzZXRXaWR0aCIsIm92ZXJmbG93IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwibG9ja1NjcmVlbiIsIiRodG1sIiwibG9ja2VkQ2xhc3MiLCJuYW1lc3BhY2lmeSIsInBhZGRpbmdSaWdodCIsIiRib2R5IiwiaGFzQ2xhc3MiLCJhZGRDbGFzcyIsInVubG9ja1NjcmVlbiIsInJlbW92ZUNsYXNzIiwic2V0U3RhdGUiLCJpbnN0YW5jZSIsInN0YXRlIiwiaXNTaWxlbnQiLCJyZWFzb24iLCJuZXdTdGF0ZSIsImFsbFN0YXRlcyIsIiRiZyIsIiRvdmVybGF5IiwiJHdyYXBwZXIiLCIkbW9kYWwiLCJ0cmlnZ2VyIiwidHlwZSIsInN5bmNXaXRoQW5pbWF0aW9uIiwiZG9CZWZvcmVBbmltYXRpb24iLCJkb0FmdGVyQW5pbWF0aW9uIiwicnVubmluZ0FuaW1hdGlvbnNDb3VudCIsImhhbmRsZUFuaW1hdGlvblN0YXJ0IiwiZSIsInRhcmdldCIsImhhbmRsZUFuaW1hdGlvbkVuZCIsImVhY2giLCJpbmRleCIsImVsZW1OYW1lIiwib2ZmIiwib24iLCJoYWx0IiwicmVtb3ZlTW9kYWwiLCJzZXR0aW5ncyIsImhpZGUiLCJwYXJzZU9wdGlvbnMiLCJzdHIiLCJvYmoiLCJhcnIiLCJ2YWwiLCJyZXBsYWNlIiwiU3RyaW5nIiwiaXNOYU4iLCJyZXN1bHQiLCJhcmd1bWVudHMiLCJoYW5kbGVIYXNoQ2hhbmdlRXZlbnQiLCJpZCIsImxvY2F0aW9uIiwiaGFzaCIsImN1cnJlbnQiLCJjdXJyZW50TW9kYWwiLCJjbG9zZSIsImVyciIsImxvb2t1cCIsImRhdGEiLCJvcGVuIiwicmVtb2RhbCIsImluZGV4T2YiLCJzbGljZSIsIlJlbW9kYWwiLCJvcHRpb25zIiwiJGFwcGVuZFRvIiwiYXR0ciIsInB1c2giLCJhcHBlbmQiLCJwcmV2ZW50RGVmYXVsdCIsIiR0YXJnZXQiLCJpc1dyYXBwZXIiLCJpc1dpdGhpbiIsImNsb3Nlc3QiLCJwcm90b3R5cGUiLCJtb2RhbENvdW50IiwiXyIsInZhbHVlIiwic2hvdyIsImZvY3VzIiwic3Vic3RyIiwiZ2V0U3RhdGUiLCJkZXN0cm95IiwiaW5zdGFuY2VDb3VudCIsInJlbW92ZSIsImdyZXAiLCJmbiIsIm9wdHMiLCJlbGVtIiwicmVhZHkiLCJjdXJyZW50VGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwiZmluZCIsImNvbnRhaW5lciIsIiRjb250YWluZXIiLCJrZXlDb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/remodal.js\n");
/***/ }),
/***/ "./app/utils/request.js":
/*!******************************!*\
!*** ./app/utils/request.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar raw;\n\nvar request = function request(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {\n return true;\n };\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.method && options.method === 'post') {\n var data = new FormData();\n options.body = Object.assign({\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce\n }, options.body || {});\n Object.keys(options.body).map(function (key) {\n return data.append(key, options.body[key]);\n });\n options.body = data;\n }\n\n options = Object.assign({\n credentials: 'same-origin',\n headers: {\n 'Accept': 'application/json'\n }\n }, options);\n return fetch(url, options).then(function (response) {\n raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(_response__WEBPACK_IMPORTED_MODULE_0__.userFeedback).then(function (response) {\n return callback(response, raw);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (request);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvcmVxdWVzdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUVBLElBQUlLLEdBQUo7O0FBQ0EsSUFBSUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBU0MsR0FBVCxFQUFtRDtBQUFBLE1BQXJDQyxPQUFxQyx1RUFBM0IsRUFBMkI7QUFBQSxNQUF2QkMsUUFBdUIsdUVBQVo7QUFBQSxXQUFNLElBQU47QUFBQSxHQUFZOztBQUM3RCxNQUFJLE9BQU9ELE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDL0JDLElBQUFBLFFBQVEsR0FBR0QsT0FBWDtBQUNBQSxJQUFBQSxPQUFPLEdBQUcsRUFBVjtBQUNIOztBQUVELE1BQUlBLE9BQU8sQ0FBQ0UsTUFBUixJQUFrQkYsT0FBTyxDQUFDRSxNQUFSLEtBQW1CLE1BQXpDLEVBQWlEO0FBQzdDLFFBQUlDLElBQUksR0FBRyxJQUFJQyxRQUFKLEVBQVg7QUFFQUosSUFBQUEsT0FBTyxDQUFDSyxJQUFSLEdBQWVDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQUUscUJBQWVYLDJEQUFrQlk7QUFBbkMsS0FBZCxFQUFxRFIsT0FBTyxDQUFDSyxJQUFSLElBQWdCLEVBQXJFLENBQWY7QUFDQUMsSUFBQUEsTUFBTSxDQUFDRyxJQUFQLENBQVlULE9BQU8sQ0FBQ0ssSUFBcEIsRUFBMEJLLEdBQTFCLENBQThCLFVBQUNDLEdBQUQ7QUFBQSxhQUFTUixJQUFJLENBQUNTLE1BQUwsQ0FBWUQsR0FBWixFQUFpQlgsT0FBTyxDQUFDSyxJQUFSLENBQWFNLEdBQWIsQ0FBakIsQ0FBVDtBQUFBLEtBQTlCO0FBQ0FYLElBQUFBLE9BQU8sQ0FBQ0ssSUFBUixHQUFlRixJQUFmO0FBQ0g7O0FBRURILEVBQUFBLE9BQU8sR0FBR00sTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDcEJNLElBQUFBLFdBQVcsRUFBRSxhQURPO0FBRXBCQyxJQUFBQSxPQUFPLEVBQUU7QUFDTCxnQkFBVTtBQURMO0FBRlcsR0FBZCxFQUtQZCxPQUxPLENBQVY7QUFPQSxTQUFPZSxLQUFLLENBQUNoQixHQUFELEVBQU1DLE9BQU4sQ0FBTCxDQUNGZ0IsSUFERSxDQUNHLFVBQUNDLFFBQUQsRUFBYztBQUNoQnBCLElBQUFBLEdBQUcsR0FBR29CLFFBQU47QUFDQSxXQUFPQSxRQUFQO0FBQ0gsR0FKRSxFQUtGRCxJQUxFLENBS0d4QixrREFMSCxFQU1Gd0IsSUFORSxDQU1HdkIsZ0RBTkgsRUFPRnVCLElBUEUsQ0FPR3RCLG1EQVBILEVBUUZzQixJQVJFLENBUUcsVUFBQ0MsUUFBRDtBQUFBLFdBQWNoQixRQUFRLENBQUNnQixRQUFELEVBQVdwQixHQUFYLENBQXRCO0FBQUEsR0FSSCxXQVNJRix3REFUSixDQUFQO0FBVUgsQ0EvQkQ7O0FBaUNBLGlFQUFlRyxPQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy9yZXF1ZXN0LmpzPzE3NmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VTdGF0dXMsIHBhcnNlSlNPTiwgdXNlckZlZWRiYWNrLCB1c2VyRmVlZGJhY2tFcnJvciB9IGZyb20gJy4vcmVzcG9uc2UnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5sZXQgcmF3O1xubGV0IHJlcXVlc3QgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMgPSB7fSwgY2FsbGJhY2sgPSAoKSA9PiB0cnVlKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1ldGhvZCAmJiBvcHRpb25zLm1ldGhvZCA9PT0gJ3Bvc3QnKSB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgb3B0aW9ucy5ib2R5ID0gT2JqZWN0LmFzc2lnbih7ICdhZG1pbi1ub25jZSc6IGNvbmZpZy5hZG1pbl9ub25jZSB9LCBvcHRpb25zLmJvZHkgfHwge30pO1xuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zLmJvZHkpLm1hcCgoa2V5KSA9PiBkYXRhLmFwcGVuZChrZXksIG9wdGlvbnMuYm9keVtrZXldKSk7XG4gICAgICAgIG9wdGlvbnMuYm9keSA9IGRhdGE7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmV0Y2godXJsLCBvcHRpb25zKVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJhdyA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihwYXJzZVN0YXR1cylcbiAgICAgICAgLnRoZW4ocGFyc2VKU09OKVxuICAgICAgICAudGhlbih1c2VyRmVlZGJhY2spXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gY2FsbGJhY2socmVzcG9uc2UsIHJhdykpXG4gICAgICAgIC5jYXRjaCh1c2VyRmVlZGJhY2tFcnJvcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xuIl0sIm5hbWVzIjpbInBhcnNlU3RhdHVzIiwicGFyc2VKU09OIiwidXNlckZlZWRiYWNrIiwidXNlckZlZWRiYWNrRXJyb3IiLCJjb25maWciLCJyYXciLCJyZXF1ZXN0IiwidXJsIiwib3B0aW9ucyIsImNhbGxiYWNrIiwibWV0aG9kIiwiZGF0YSIsIkZvcm1EYXRhIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsImFkbWluX25vbmNlIiwia2V5cyIsIm1hcCIsImtleSIsImFwcGVuZCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/request.js\n");
/***/ }),
/***/ "./app/utils/response.js":
/*!*******************************!*\
!*** ./app/utils/response.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"parseStatus\": () => (/* binding */ parseStatus),\n/* harmony export */ \"parseJSON\": () => (/* binding */ parseJSON),\n/* harmony export */ \"userFeedback\": () => (/* binding */ userFeedback),\n/* harmony export */ \"userFeedbackError\": () => (/* binding */ userFeedbackError)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toastr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _offline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offline */ \"./app/utils/offline.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mout/string/trim */ \"./node_modules/mout/string/trim.js\");\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(mout_string_trim__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar UNLOADING = false;\n\nvar error = function error(response) {\n var error = new Error(response.statusText || response || '');\n error.response = response;\n return error;\n};\n\nfunction parseStatus(response) {\n return response;\n /* Whoops can handle JSON responses so we don't need this for now.\n if (response.status >= 200 && response.status < 300) {\n return response;\n } else {\n throw error(response);\n }\n */\n}\nfunction parseJSON(response) {\n return response.text().then(function (text) {\n var parsed = text;\n\n try {\n parsed = JSON.parse(text);\n } catch (error) {\n var content = document.createElement('div');\n content.innerHTML = text;\n var the_error = new Error();\n the_error.stack = mout_string_trim__WEBPACK_IMPORTED_MODULE_4___default()(content.innerText);\n throw the_error;\n }\n\n return parsed;\n });\n}\nfunction userFeedback(response) {\n if (UNLOADING) {\n return true;\n }\n\n var status = response.status || (response.error ? 'error' : '');\n var message = response.message || (response.error ? response.error.message : null);\n var settings = response.toastr || null;\n var backup;\n\n switch (status) {\n case 'unauthenticated':\n document.location.href = grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_relative;\n throw error('Logged out');\n\n case 'unauthorized':\n status = 'error';\n message = message || 'Unauthorized.';\n break;\n\n case 'error':\n status = 'error';\n message = message || 'Unknown error.';\n break;\n\n case 'success':\n status = 'success';\n message = message || '';\n break;\n\n default:\n status = 'error';\n message = message || 'Invalid AJAX response.';\n break;\n }\n\n if (settings) {\n backup = Object.assign({}, _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options);\n Object.keys(settings).forEach(function (key) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options[key] = settings[key];\n });\n }\n\n if (message && (_offline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] || !_offline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && status !== 'error')) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"][status === 'success' ? 'success' : 'error'](message);\n }\n\n if (settings) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].options = backup;\n }\n\n return response;\n}\nfunction userFeedbackError(error) {\n if (UNLOADING) {\n return true;\n }\n\n var stack = error.stack ? \"<pre><code>\".concat(error.stack, \"</code></pre>\") : '';\n _toastr__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Fetch Failed: <br /> \".concat(error.message, \" \").concat(stack));\n console.error(\"\".concat(error.message, \" at \").concat(error.stack));\n}\njquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._ajax', function () {\n UNLOADING = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuL3RvYXN0cic7XG5pbXBvcnQgaXNPbmxpbmUgZnJvbSAnLi9vZmZsaW5lJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCB0cmltIGZyb20gJ21vdXQvc3RyaW5nL3RyaW0nO1xuXG5sZXQgVU5MT0FESU5HID0gZmFsc2U7XG5sZXQgZXJyb3IgPSBmdW5jdGlvbihyZXNwb25zZSkge1xuICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihyZXNwb25zZS5zdGF0dXNUZXh0IHx8IHJlc3BvbnNlIHx8ICcnKTtcbiAgICBlcnJvci5yZXNwb25zZSA9IHJlc3BvbnNlO1xuXG4gICAgcmV0dXJuIGVycm9yO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RhdHVzKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuXG4gICAgLyogV2hvb3BzIGNhbiBoYW5kbGUgSlNPTiByZXNwb25zZXMgc28gd2UgZG9uJ3QgbmVlZCB0aGlzIGZvciBub3cuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgKi9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSlNPTihyZXNwb25zZSkge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbigodGV4dCkgPT4ge1xuICAgICAgICBsZXQgcGFyc2VkID0gdGV4dDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgY29udGVudC5pbm5lckhUTUwgPSB0ZXh0O1xuXG4gICAgICAgICAgICBsZXQgdGhlX2Vycm9yID0gbmV3IEVycm9yKCk7XG4gICAgICAgICAgICB0aGVfZXJyb3Iuc3RhY2sgPSB0cmltKGNvbnRlbnQuaW5uZXJUZXh0KTtcblxuICAgICAgICAgICAgdGhyb3cgdGhlX2Vycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZXJGZWVkYmFjayhyZXNwb25zZSkge1xuICAgIGlmIChVTkxPQURJTkcpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIGxldCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgfHwgKHJlc3BvbnNlLmVycm9yID8gJ2Vycm9yJyA6ICcnKTtcbiAgICBsZXQgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2UgfHwgKHJlc3BvbnNlLmVycm9yID8gcmVzcG9uc2UuZXJyb3IubWVzc2FnZSA6IG51bGwpO1xuICAgIGxldCBzZXR0aW5ncyA9IHJlc3BvbnNlLnRvYXN0ciB8fCBudWxsO1xuICAgIGxldCBiYWNrdXA7XG5cbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICBjYXNlICd1bmF1dGhlbnRpY2F0ZWQnOlxuICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGNvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZTtcbiAgICAgICAgICAgIHRocm93IGVycm9yKCdMb2dnZWQgb3V0Jyk7XG4gICAgICAgIGNhc2UgJ3VuYXV0aG9yaXplZCc6XG4gICAgICAgICAgICBzdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1VuYXV0aG9yaXplZC4nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgIHN0YXR1cyA9ICdlcnJvcic7XG4gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvci4nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHN0YXR1cyA9ICdlcnJvcic7XG4gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnSW52YWxpZCBBSkFYIHJlc3BvbnNlLic7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoc2V0dGluZ3MpIHtcbiAgICAgICAgYmFja3VwID0gT2JqZWN0LmFzc2lnbih7fSwgdG9hc3RyLm9wdGlvbnMpO1xuICAgICAgICBPYmplY3Qua2V5cyhzZXR0aW5ncykuZm9yRWFjaCgoa2V5KSA9PiB7IHRvYXN0ci5vcHRpb25zW2tleV0gPSBzZXR0aW5nc1trZXldOyB9KTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSAmJiAoaXNPbmxpbmUgfHwgKCFpc09ubGluZSAmJiBzdGF0dXMgIT09ICdlcnJvcicpKSkge1xuICAgICAgICB0b2FzdHJbc3RhdHVzID09PSAnc3VjY2VzcycgPyAnc3VjY2VzcycgOiAnZXJyb3InXShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoc2V0dGluZ3MpIHtcbiAgICAgICAgdG9hc3RyLm9wdGlvbnMgPSBiYWNrdXA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlckZlZWRiYWNrRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoVU5MT0FESU5HKSB7IHJldHVybiB0cnVlOyB9XG4gICAgbGV0IHN0YWNrID0gZXJyb3Iuc3RhY2sgPyBgPHByZT48Y29kZT4ke2Vycm9yLnN0YWNrfTwvY29kZT48L3ByZT5gIDogJyc7XG4gICAgdG9hc3RyLmVycm9yKGBGZXRjaCBGYWlsZWQ6IDxiciAvPiAke2Vycm9yLm1lc3NhZ2V9ICR7c3RhY2t9YCk7XG4gICAgY29uc29sZS5lcnJvcihgJHtlcnJvci5tZXNzYWdlfSBhdCAke2Vycm9yLnN0YWNrfWApO1xufVxuXG4kKGdsb2JhbCkub24oJ2JlZm9yZXVubG9hZC5fYWpheCcsICgpID0+IHtcbiAgICBVTkxPQURJTkcgPSB0cnVlO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsInRvYXN0ciIsImlzT25saW5lIiwiY29uZmlnIiwidHJpbSIsIlVOTE9BRElORyIsImVycm9yIiwicmVzcG9uc2UiLCJFcnJvciIsInN0YXR1c1RleHQiLCJwYXJzZVN0YXR1cyIsInBhcnNlSlNPTiIsInRleHQiLCJ0aGVuIiwicGFyc2VkIiwiSlNPTiIsInBhcnNlIiwiY29udGVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsInRoZV9lcnJvciIsInN0YWNrIiwiaW5uZXJUZXh0IiwidXNlckZlZWRiYWNrIiwic3RhdHVzIiwibWVzc2FnZSIsInNldHRpbmdzIiwiYmFja3VwIiwibG9jYXRpb24iLCJocmVmIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJPYmplY3QiLCJhc3NpZ24iLCJvcHRpb25zIiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJ1c2VyRmVlZGJhY2tFcnJvciIsImNvbnNvbGUiLCJnbG9iYWwiLCJvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/response.js\n");
/***/ }),
/***/ "./app/utils/selectize-option-click.js":
/*!*********************************************!*\
!*** ./app/utils/selectize-option-click.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n\n\nselectize__WEBPACK_IMPORTED_MODULE_1___default().define('option_click', function (options) {\n var self = this;\n var setup = self.setup;\n\n this.setup = function () {\n setup.apply(self, arguments);\n var clicking = false; // Detect click on a .clickable\n\n self.$dropdown_content.on('mousedown click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n\n if (target.hasClass('clickable') || target.closest('.clickable').length) {\n if (e.type === 'mousedown') {\n clicking = true;\n self.isFocused = false; // awful hack to defuse the document mousedown listener\n } else {\n self.isFocused = true;\n setTimeout(function () {\n clicking = false; // wait until blur has been preempted\n });\n }\n } else {\n // cleanup in case user right-clicked or dragged off the element\n clicking = false;\n self.isFocused = true;\n }\n }); // Intercept default handlers\n\n self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function () {\n if (!clicking) {\n return self.onOptionSelect.apply(self, arguments);\n }\n });\n self.$control_input.off('blur').on('blur', function () {\n if (!clicking) {\n return self.onBlur.apply(self, arguments);\n }\n });\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvc2VsZWN0aXplLW9wdGlvbi1jbGljay5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFFQUMsdURBQUEsQ0FBaUIsY0FBakIsRUFBaUMsVUFBU0UsT0FBVCxFQUFrQjtBQUMvQyxNQUFNQyxJQUFJLEdBQUcsSUFBYjtBQUNBLE1BQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFuQjs7QUFDQSxPQUFLQSxLQUFMLEdBQWEsWUFBVztBQUNwQkEsSUFBQUEsS0FBSyxDQUFDQyxLQUFOLENBQVlGLElBQVosRUFBa0JHLFNBQWxCO0FBQ0EsUUFBSUMsUUFBUSxHQUFHLEtBQWYsQ0FGb0IsQ0FJcEI7O0FBQ0FKLElBQUFBLElBQUksQ0FBQ0ssaUJBQUwsQ0FBdUJDLEVBQXZCLENBQTBCLGlCQUExQixFQUE2QyxVQUFTQyxDQUFULEVBQVk7QUFDckQsVUFBTUMsTUFBTSxHQUFHWiw2Q0FBQyxDQUFDVyxDQUFDLENBQUNDLE1BQUgsQ0FBaEI7O0FBQ0EsVUFBSUEsTUFBTSxDQUFDQyxRQUFQLENBQWdCLFdBQWhCLEtBQWdDRCxNQUFNLENBQUNFLE9BQVAsQ0FBZSxZQUFmLEVBQTZCQyxNQUFqRSxFQUF5RTtBQUNyRSxZQUFJSixDQUFDLENBQUNLLElBQUYsS0FBVyxXQUFmLEVBQTRCO0FBQ3hCUixVQUFBQSxRQUFRLEdBQUcsSUFBWDtBQUNBSixVQUFBQSxJQUFJLENBQUNhLFNBQUwsR0FBaUIsS0FBakIsQ0FGd0IsQ0FFQTtBQUMzQixTQUhELE1BR087QUFDSGIsVUFBQUEsSUFBSSxDQUFDYSxTQUFMLEdBQWlCLElBQWpCO0FBQ0FDLFVBQUFBLFVBQVUsQ0FBQyxZQUFXO0FBQ2xCVixZQUFBQSxRQUFRLEdBQUcsS0FBWCxDQURrQixDQUNBO0FBQ3JCLFdBRlMsQ0FBVjtBQUdIO0FBQ0osT0FWRCxNQVVPO0FBQUU7QUFDTEEsUUFBQUEsUUFBUSxHQUFHLEtBQVg7QUFDQUosUUFBQUEsSUFBSSxDQUFDYSxTQUFMLEdBQWlCLElBQWpCO0FBQ0g7QUFDSixLQWhCRCxFQUxvQixDQXVCcEI7O0FBQ0FiLElBQUFBLElBQUksQ0FBQ2UsU0FBTCxDQUFlQyxHQUFmLENBQW1CLGlCQUFuQixFQUFzQyxtQkFBdEMsRUFBMkRWLEVBQTNELENBQThELGlCQUE5RCxFQUFpRixtQkFBakYsRUFBc0csWUFBVztBQUM3RyxVQUFJLENBQUNGLFFBQUwsRUFBZTtBQUNYLGVBQU9KLElBQUksQ0FBQ2lCLGNBQUwsQ0FBb0JmLEtBQXBCLENBQTBCRixJQUExQixFQUFnQ0csU0FBaEMsQ0FBUDtBQUNIO0FBQ0osS0FKRDtBQUtBSCxJQUFBQSxJQUFJLENBQUNrQixjQUFMLENBQW9CRixHQUFwQixDQUF3QixNQUF4QixFQUFnQ1YsRUFBaEMsQ0FBbUMsTUFBbkMsRUFBMkMsWUFBVztBQUNsRCxVQUFJLENBQUNGLFFBQUwsRUFBZTtBQUNYLGVBQU9KLElBQUksQ0FBQ21CLE1BQUwsQ0FBWWpCLEtBQVosQ0FBa0JGLElBQWxCLEVBQXdCRyxTQUF4QixDQUFQO0FBQ0g7QUFDSixLQUpEO0FBS0gsR0FsQ0Q7QUFtQ0gsQ0F0Q0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1vcHRpb24tY2xpY2suanM/NWI2OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFNlbGVjdGl6ZSBmcm9tICdzZWxlY3RpemUnO1xuXG5TZWxlY3RpemUuZGVmaW5lKCdvcHRpb25fY2xpY2snLCBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2V0dXAgPSBzZWxmLnNldHVwO1xuICAgIHRoaXMuc2V0dXAgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgc2V0dXAuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgICAgbGV0IGNsaWNraW5nID0gZmFsc2U7XG5cbiAgICAgICAgLy8gRGV0ZWN0IGNsaWNrIG9uIGEgLmNsaWNrYWJsZVxuICAgICAgICBzZWxmLiRkcm9wZG93bl9jb250ZW50Lm9uKCdtb3VzZWRvd24gY2xpY2snLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGUudGFyZ2V0KTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ2xhc3MoJ2NsaWNrYWJsZScpIHx8IHRhcmdldC5jbG9zZXN0KCcuY2xpY2thYmxlJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmlzRm9jdXNlZCA9IGZhbHNlOyAvLyBhd2Z1bCBoYWNrIHRvIGRlZnVzZSB0aGUgZG9jdW1lbnQgbW91c2Vkb3duIGxpc3RlbmVyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tpbmcgPSBmYWxzZTsgLy8gd2FpdCB1bnRpbCBibHVyIGhhcyBiZWVuIHByZWVtcHRlZFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBjbGVhbnVwIGluIGNhc2UgdXNlciByaWdodC1jbGlja2VkIG9yIGRyYWdnZWQgb2ZmIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgY2xpY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBzZWxmLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEludGVyY2VwdCBkZWZhdWx0IGhhbmRsZXJzXG4gICAgICAgIHNlbGYuJGRyb3Bkb3duLm9mZignbW91c2Vkb3duIGNsaWNrJywgJ1tkYXRhLXNlbGVjdGFibGVdJykub24oJ21vdXNlZG93biBjbGljaycsICdbZGF0YS1zZWxlY3RhYmxlXScsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKCFjbGlja2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm9uT3B0aW9uU2VsZWN0LmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzZWxmLiRjb250cm9sX2lucHV0Lm9mZignYmx1cicpLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoIWNsaWNraW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYub25CbHVyLmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiU2VsZWN0aXplIiwiZGVmaW5lIiwib3B0aW9ucyIsInNlbGYiLCJzZXR1cCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY2xpY2tpbmciLCIkZHJvcGRvd25fY29udGVudCIsIm9uIiwiZSIsInRhcmdldCIsImhhc0NsYXNzIiwiY2xvc2VzdCIsImxlbmd0aCIsInR5cGUiLCJpc0ZvY3VzZWQiLCJzZXRUaW1lb3V0IiwiJGRyb3Bkb3duIiwib2ZmIiwib25PcHRpb25TZWxlY3QiLCIkY29udHJvbF9pbnB1dCIsIm9uQmx1ciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/selectize-option-click.js\n");
/***/ }),
/***/ "./app/utils/selectize-required-fix.js":
/*!*********************************************!*\
!*** ./app/utils/selectize-required-fix.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * This is a plugin to override the `.refreshValidityState` method of\n * the Selectize library (https://selectize.github.io/selectize.js/).\n * The library is not maintained anymore (as of 2017-09-13) and contains\n * a bug which causes Microsoft Edge to not work with selectized [required]\n * form fields. This plugin should be removed if\n * https://github.com/selectize/selectize.js/pull/1320 is ever merged\n * and a new version of Selectize gets released.\n */\n\nselectize__WEBPACK_IMPORTED_MODULE_0___default().define('required-fix', function (options) {\n var _this = this;\n\n this.refreshValidityState = function () {\n if (!_this.isRequired) return false;\n var invalid = !_this.items.length;\n _this.isInvalid = invalid;\n\n if (invalid) {\n _this.$control_input.attr('required', '');\n\n _this.$input.removeAttr('required');\n } else {\n _this.$control_input.removeAttr('required');\n\n _this.$input.attr('required');\n }\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvc2VsZWN0aXplLXJlcXVpcmVkLWZpeC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBQSx1REFBQSxDQUFpQixjQUFqQixFQUFpQyxVQUFTRSxPQUFULEVBQWtCO0FBQUE7O0FBQy9DLE9BQUtDLG9CQUFMLEdBQTRCLFlBQU07QUFDOUIsUUFBSSxDQUFDLEtBQUksQ0FBQ0MsVUFBVixFQUFzQixPQUFPLEtBQVA7QUFFdEIsUUFBSUMsT0FBTyxHQUFHLENBQUMsS0FBSSxDQUFDQyxLQUFMLENBQVdDLE1BQTFCO0FBQ0EsU0FBSSxDQUFDQyxTQUFMLEdBQWlCSCxPQUFqQjs7QUFFQSxRQUFJQSxPQUFKLEVBQWE7QUFDVCxXQUFJLENBQUNJLGNBQUwsQ0FBb0JDLElBQXBCLENBQXlCLFVBQXpCLEVBQXFDLEVBQXJDOztBQUNBLFdBQUksQ0FBQ0MsTUFBTCxDQUFZQyxVQUFaLENBQXVCLFVBQXZCO0FBQ0gsS0FIRCxNQUdPO0FBQ0gsV0FBSSxDQUFDSCxjQUFMLENBQW9CRyxVQUFwQixDQUErQixVQUEvQjs7QUFDQSxXQUFJLENBQUNELE1BQUwsQ0FBWUQsSUFBWixDQUFpQixVQUFqQjtBQUNIO0FBQ0osR0FiRDtBQWNILENBZkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1yZXF1aXJlZC1maXguanM/OWQ5NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgaXMgYSBwbHVnaW4gdG8gb3ZlcnJpZGUgdGhlIGAucmVmcmVzaFZhbGlkaXR5U3RhdGVgIG1ldGhvZCBvZlxuICogdGhlIFNlbGVjdGl6ZSBsaWJyYXJ5IChodHRwczovL3NlbGVjdGl6ZS5naXRodWIuaW8vc2VsZWN0aXplLmpzLykuXG4gKiBUaGUgbGlicmFyeSBpcyBub3QgbWFpbnRhaW5lZCBhbnltb3JlIChhcyBvZiAyMDE3LTA5LTEzKSBhbmQgY29udGFpbnNcbiAqIGEgYnVnIHdoaWNoIGNhdXNlcyBNaWNyb3NvZnQgRWRnZSB0byBub3Qgd29yayB3aXRoIHNlbGVjdGl6ZWQgW3JlcXVpcmVkXVxuICogZm9ybSBmaWVsZHMuIFRoaXMgcGx1Z2luIHNob3VsZCBiZSByZW1vdmVkIGlmXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2VsZWN0aXplL3NlbGVjdGl6ZS5qcy9wdWxsLzEzMjAgaXMgZXZlciBtZXJnZWRcbiAqIGFuZCBhIG5ldyB2ZXJzaW9uIG9mIFNlbGVjdGl6ZSBnZXRzIHJlbGVhc2VkLlxuICovXG5cbmltcG9ydCBTZWxlY3RpemUgZnJvbSAnc2VsZWN0aXplJztcblxuU2VsZWN0aXplLmRlZmluZSgncmVxdWlyZWQtZml4JywgZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIHRoaXMucmVmcmVzaFZhbGlkaXR5U3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1JlcXVpcmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgbGV0IGludmFsaWQgPSAhdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuaXNJbnZhbGlkID0gaW52YWxpZDtcblxuICAgICAgICBpZiAoaW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy4kY29udHJvbF9pbnB1dC5hdHRyKCdyZXF1aXJlZCcsICcnKTtcbiAgICAgICAgICAgIHRoaXMuJGlucHV0LnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRjb250cm9sX2lucHV0LnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7XG4gICAgICAgICAgICB0aGlzLiRpbnB1dC5hdHRyKCdyZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfTtcbn0pO1xuIl0sIm5hbWVzIjpbIlNlbGVjdGl6ZSIsImRlZmluZSIsIm9wdGlvbnMiLCJyZWZyZXNoVmFsaWRpdHlTdGF0ZSIsImlzUmVxdWlyZWQiLCJpbnZhbGlkIiwiaXRlbXMiLCJsZW5ndGgiLCJpc0ludmFsaWQiLCIkY29udHJvbF9pbnB1dCIsImF0dHIiLCIkaW5wdXQiLCJyZW1vdmVBdHRyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/selectize-required-fix.js\n");
/***/ }),
/***/ "./app/utils/sidebar.js":
/*!******************************!*\
!*** ./app/utils/sidebar.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var es6_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! es6-map */ \"./node_modules/es6-map/index.js\");\n/* harmony import */ var es6_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(es6_map__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\nvar MOBILE_BREAKPOINT = 48 - 0.062;\nvar DESKTOP_BREAKPOINT = 75 + 0.063;\nvar EVENTS = 'touchstart._grav click._grav';\nvar TARGETS = '[data-sidebar-mobile-toggle], #overlay';\nvar MOBILE_QUERY = \"(max-width: \".concat(MOBILE_BREAKPOINT, \"em)\");\nvar DESKTOP_QUERY = \"(min-width: \".concat(DESKTOP_BREAKPOINT, \"em)\");\nvar map = new (es6_map__WEBPACK_IMPORTED_MODULE_1___default())();\n\nvar Sidebar = /*#__PURE__*/function () {\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n this.timeout = null;\n this.isOpen = false;\n this.body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.matchMedia = __webpack_require__.g.matchMedia(MOBILE_QUERY);\n this.enable();\n }\n\n _createClass(Sidebar, [{\n key: \"enable\",\n value: function enable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.matchMedia.addListener(this._getBound('checkMatch'));\n this.checkMatch(this.matchMedia);\n this.body.on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n\n if (sidebar.data('quickopen')) {\n sidebar.hover(this._getBound('quickOpenIn'), this._getBound('quickOpenOut'));\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.close();\n this.matchMedia.removeListener(this._getBound('checkMatch'));\n this.body.off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n\n if (sidebar.data('quickopen')) {\n sidebar.off('mouseenter mouseleave');\n }\n }\n }, {\n key: \"attach\",\n value: function attach() {\n this.body.on(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"detach\",\n value: function detach() {\n this.body.off(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"quickOpenIn\",\n value: function\n /* event */\n quickOpenIn() {\n var _this = this;\n\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var delay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar').data('quickopen-delay') || 500;\n\n if (this.body.hasClass('sidebar-mobile-open')) {\n return;\n }\n\n var shouldQuickOpen = isDesktop ? this.body.hasClass('sidebar-closed') : !this.body.hasClass('sidebar-open');\n\n if (!shouldQuickOpen && !this.body.hasClass('sidebar-quickopen')) {\n return this.quickOpenOut();\n }\n\n this.timeout = setTimeout(function () {\n _this.body.addClass('sidebar-open sidebar-quickopen');\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n }, delay);\n }\n }, {\n key: \"quickOpenOut\",\n value: function\n /* event */\n quickOpenOut() {\n clearTimeout(this.timeout);\n\n if (this.body.hasClass('sidebar-quickopen')) {\n this.body.removeClass('sidebar-open sidebar-quickopen');\n }\n\n return true;\n }\n }, {\n key: \"open\",\n value: function open(event) {\n var _this2 = this;\n\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (event) {\n event.preventDefault();\n }\n\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.addClass('sidebar-mobile-open');\n overlay.css('display', 'block');\n\n if (!quick) {\n sidebar.css('display', 'block').animate({\n opacity: 1\n }, 200, function () {\n _this2.isOpen = true;\n });\n } else {\n sidebar.css({\n display: 'block',\n opacity: 1\n });\n this.isOpen = true;\n }\n }\n }, {\n key: \"close\",\n value: function close(event) {\n var _this3 = this;\n\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (event) {\n event.preventDefault();\n }\n\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.removeClass('sidebar-mobile-open');\n overlay.css('display', 'none');\n\n if (!quick) {\n sidebar.animate({\n opacity: 0\n }, 200, function () {\n sidebar.css('display', 'none');\n _this3.isOpen = false;\n });\n } else {\n sidebar.css({\n opacity: 0,\n display: 'none'\n });\n this.isOpen = false;\n }\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (event) {\n event.preventDefault();\n }\n\n return this[this.isOpen ? 'close' : 'open'](event);\n }\n }, {\n key: \"toggleSidebarState\",\n value: function toggleSidebarState(event) {\n if (event) {\n event.preventDefault();\n }\n\n clearTimeout(this.timeout);\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var cookie = null;\n\n if (isDesktop) {\n this.body.removeClass('sidebar-open');\n }\n\n if (!isDesktop) {\n this.body.removeClass('sidebar-closed');\n this.body.removeClass('sidebar-mobile-open');\n }\n\n this.body.toggleClass(\"sidebar-\".concat(isDesktop ? 'closed' : 'open'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n\n if (isDesktop) {\n cookie = !this.body.hasClass('sidebar-closed');\n } else {\n cookie = this.body.hasClass('sidebar-open');\n }\n\n _utils_cookies__WEBPACK_IMPORTED_MODULE_2__[\"default\"].set('grav-admin-sidebar', cookie, {\n expires: Infinity\n });\n }\n }, {\n key: \"checkMatch\",\n value: function checkMatch(data) {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n this.isOpen = false;\n overlay.css('display', 'none');\n sidebar.css({\n display: data.matches ? 'none' : 'inherit',\n opacity: data.matches ? 0 : 1\n });\n\n if (data.matches) {\n this.body.removeClass('sidebar-open sidebar-closed');\n }\n\n this[data.matches ? 'attach' : 'detach']();\n }\n }, {\n key: \"_resetMap\",\n value: function _resetMap() {\n return map.clear();\n }\n }, {\n key: \"_getBound\",\n value: function _getBound(fn) {\n if (map.has(fn)) {\n return map.get(fn);\n }\n\n return map.set(fn, this[fn].bind(this)).get(fn);\n }\n }]);\n\n return Sidebar;\n}();\n\n\nvar Instance = new Sidebar();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFHLElBQUk5QyxPQUFKLEVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NpZGViYXIuanM/MzM1MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJztcbmltcG9ydCBDb29raWVzIGZyb20gJy4uL3V0aWxzL2Nvb2tpZXMnO1xuXG5jb25zdCBNT0JJTEVfQlJFQUtQT0lOVCA9IDQ4IC0gMC4wNjI7XG5jb25zdCBERVNLVE9QX0JSRUFLUE9JTlQgPSA3NSArIDAuMDYzO1xuY29uc3QgRVZFTlRTID0gJ3RvdWNoc3RhcnQuX2dyYXYgY2xpY2suX2dyYXYnO1xuY29uc3QgVEFSR0VUUyA9ICdbZGF0YS1zaWRlYmFyLW1vYmlsZS10b2dnbGVdLCAjb3ZlcmxheSc7XG5jb25zdCBNT0JJTEVfUVVFUlkgPSBgKG1heC13aWR0aDogJHtNT0JJTEVfQlJFQUtQT0lOVH1lbSlgO1xuY29uc3QgREVTS1RPUF9RVUVSWSA9IGAobWluLXdpZHRoOiAke0RFU0tUT1BfQlJFQUtQT0lOVH1lbSlgO1xuXG5sZXQgbWFwID0gbmV3IE1hcCgpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaWRlYmFyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ib2R5ID0gJCgnYm9keScpO1xuICAgICAgICB0aGlzLm1hdGNoTWVkaWEgPSBnbG9iYWwubWF0Y2hNZWRpYShNT0JJTEVfUVVFUlkpO1xuICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgY29uc3Qgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5tYXRjaE1lZGlhLmFkZExpc3RlbmVyKHRoaXMuX2dldEJvdW5kKCdjaGVja01hdGNoJykpO1xuICAgICAgICB0aGlzLmNoZWNrTWF0Y2godGhpcy5tYXRjaE1lZGlhKTtcbiAgICAgICAgdGhpcy5ib2R5Lm9uKEVWRU5UUywgJ1tkYXRhLXNpZGViYXItdG9nZ2xlXScsIHRoaXMuX2dldEJvdW5kKCd0b2dnbGVTaWRlYmFyU3RhdGUnKSk7XG5cbiAgICAgICAgaWYgKHNpZGViYXIuZGF0YSgncXVpY2tvcGVuJykpIHtcbiAgICAgICAgICAgIHNpZGViYXIuaG92ZXIodGhpcy5fZ2V0Qm91bmQoJ3F1aWNrT3BlbkluJyksIHRoaXMuX2dldEJvdW5kKCdxdWlja09wZW5PdXQnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICBjb25zdCBzaWRlYmFyID0gJCgnI2FkbWluLXNpZGViYXInKTtcblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMubWF0Y2hNZWRpYS5yZW1vdmVMaXN0ZW5lcih0aGlzLl9nZXRCb3VuZCgnY2hlY2tNYXRjaCcpKTtcbiAgICAgICAgdGhpcy5ib2R5Lm9mZihFVkVOVFMsICdbZGF0YS1zaWRlYmFyLXRvZ2dsZV0nLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlU2lkZWJhclN0YXRlJykpO1xuICAgICAgICBpZiAoc2lkZWJhci5kYXRhKCdxdWlja29wZW4nKSkge1xuICAgICAgICAgICAgc2lkZWJhci5vZmYoJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXR0YWNoKCkge1xuICAgICAgICB0aGlzLmJvZHkub24oRVZFTlRTLCBUQVJHRVRTLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlJykpO1xuICAgIH1cblxuICAgIGRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5ib2R5Lm9mZihFVkVOVFMsIFRBUkdFVFMsIHRoaXMuX2dldEJvdW5kKCd0b2dnbGUnKSk7XG4gICAgfVxuXG4gICAgcXVpY2tPcGVuSW4oLyogZXZlbnQgKi8pIHtcbiAgICAgICAgbGV0IGlzRGVza3RvcCA9IGdsb2JhbC5tYXRjaE1lZGlhKERFU0tUT1BfUVVFUlkpLm1hdGNoZXM7XG4gICAgICAgIGxldCBkZWxheSA9ICQoJyNhZG1pbi1zaWRlYmFyJykuZGF0YSgncXVpY2tvcGVuLWRlbGF5JykgfHwgNTAwO1xuICAgICAgICBpZiAodGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IHNob3VsZFF1aWNrT3BlbiA9IGlzRGVza3RvcCA/IHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1jbG9zZWQnKSA6ICF0aGlzLmJvZHkuaGFzQ2xhc3MoJ3NpZGViYXItb3BlbicpO1xuICAgICAgICBpZiAoIXNob3VsZFF1aWNrT3BlbiAmJiAhdGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLXF1aWNrb3BlbicpKSB7IHJldHVybiB0aGlzLnF1aWNrT3Blbk91dCgpOyB9XG5cbiAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJvZHkuYWRkQ2xhc3MoJ3NpZGViYXItb3BlbiBzaWRlYmFyLXF1aWNrb3BlbicpO1xuICAgICAgICAgICAgJChnbG9iYWwpLnRyaWdnZXIoJ3NpZGViYXJfc3RhdGUuX2dyYXYnLCBpc0Rlc2t0b3ApO1xuICAgICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgcXVpY2tPcGVuT3V0KC8qIGV2ZW50ICovKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICBpZiAodGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLXF1aWNrb3BlbicpKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItb3BlbiBzaWRlYmFyLXF1aWNrb3BlbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgb3BlbihldmVudCwgcXVpY2sgPSBmYWxzZSkge1xuICAgICAgICBpZiAoZXZlbnQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfVxuICAgICAgICBsZXQgb3ZlcmxheSA9ICQoJyNvdmVybGF5Jyk7XG4gICAgICAgIGxldCBzaWRlYmFyID0gJCgnI2FkbWluLXNpZGViYXInKTtcblxuICAgICAgICB0aGlzLmJvZHkuYWRkQ2xhc3MoJ3NpZGViYXItbW9iaWxlLW9wZW4nKTtcbiAgICAgICAgb3ZlcmxheS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgICBpZiAoIXF1aWNrKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNzcygnZGlzcGxheScsICdibG9jaycpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgICAgIH0sIDIwMCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2lkZWJhci5jc3MoeyBkaXNwbGF5OiAnYmxvY2snLCBvcGFjaXR5OiAxIH0pO1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoZXZlbnQsIHF1aWNrID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICAgICAgbGV0IG92ZXJsYXkgPSAkKCcjb3ZlcmxheScpO1xuICAgICAgICBsZXQgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJyk7XG4gICAgICAgIG92ZXJsYXkuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuICAgICAgICBpZiAoIXF1aWNrKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgIH0sIDIwMCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNpZGViYXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNzcyh7IG9wYWNpdHk6IDAsIGRpc3BsYXk6ICdub25lJyB9KTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICAgICAgcmV0dXJuIHRoaXNbdGhpcy5pc09wZW4gPyAnY2xvc2UnIDogJ29wZW4nXShldmVudCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2lkZWJhclN0YXRlKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICBsZXQgaXNEZXNrdG9wID0gZ2xvYmFsLm1hdGNoTWVkaWEoREVTS1RPUF9RVUVSWSkubWF0Y2hlcztcbiAgICAgICAgbGV0IGNvb2tpZSA9IG51bGw7XG5cbiAgICAgICAgaWYgKGlzRGVza3RvcCkge1xuICAgICAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW9wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNEZXNrdG9wKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItY2xvc2VkJyk7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItbW9iaWxlLW9wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYm9keS50b2dnbGVDbGFzcyhgc2lkZWJhci0ke2lzRGVza3RvcCA/ICdjbG9zZWQnIDogJ29wZW4nfWApO1xuICAgICAgICAkKGdsb2JhbCkudHJpZ2dlcignc2lkZWJhcl9zdGF0ZS5fZ3JhdicsIGlzRGVza3RvcCk7XG5cbiAgICAgICAgaWYgKGlzRGVza3RvcCkge1xuICAgICAgICAgICAgY29va2llID0gIXRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1jbG9zZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvb2tpZSA9IHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1vcGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBDb29raWVzLnNldCgnZ3Jhdi1hZG1pbi1zaWRlYmFyJywgY29va2llLCB7IGV4cGlyZXM6IEluZmluaXR5IH0pO1xuICAgIH1cblxuICAgIGNoZWNrTWF0Y2goZGF0YSkge1xuICAgICAgICBsZXQgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG4gICAgICAgIGxldCBvdmVybGF5ID0gJCgnI292ZXJsYXknKTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICBvdmVybGF5LmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIHNpZGViYXIuY3NzKHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGRhdGEubWF0Y2hlcyA/ICdub25lJyA6ICdpbmhlcml0JyxcbiAgICAgICAgICAgIG9wYWNpdHk6IGRhdGEubWF0Y2hlcyA/IDAgOiAxXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChkYXRhLm1hdGNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYm9keS5yZW1vdmVDbGFzcygnc2lkZWJhci1vcGVuIHNpZGViYXItY2xvc2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzW2RhdGEubWF0Y2hlcyA/ICdhdHRhY2gnIDogJ2RldGFjaCddKCk7XG4gICAgfVxuXG4gICAgX3Jlc2V0TWFwKCkge1xuICAgICAgICByZXR1cm4gbWFwLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgX2dldEJvdW5kKGZuKSB7XG4gICAgICAgIGlmIChtYXAuaGFzKGZuKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1hcC5nZXQoZm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcC5zZXQoZm4sIHRoaXNbZm5dLmJpbmQodGhpcykpLmdldChmbik7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IFNpZGViYXIoKTtcbiJdLCJuYW1lcyI6WyIkIiwiTWFwIiwiQ29va2llcyIsIk1PQklMRV9CUkVBS1BPSU5UIiwiREVTS1RPUF9CUkVBS1BPSU5UIiwiRVZFTlRTIiwiVEFSR0VUUyIsIk1PQklMRV9RVUVSWSIsIkRFU0tUT1BfUVVFUlkiLCJtYXAiLCJTaWRlYmFyIiwidGltZW91dCIsImlzT3BlbiIsImJvZHkiLCJtYXRjaE1lZGlhIiwiZ2xvYmFsIiwiZW5hYmxlIiwic2lkZWJhciIsImFkZExpc3RlbmVyIiwiX2dldEJvdW5kIiwiY2hlY2tNYXRjaCIsIm9uIiwiZGF0YSIsImhvdmVyIiwiY2xvc2UiLCJyZW1vdmVMaXN0ZW5lciIsIm9mZiIsImlzRGVza3RvcCIsIm1hdGNoZXMiLCJkZWxheSIsImhhc0NsYXNzIiwic2hvdWxkUXVpY2tPcGVuIiwicXVpY2tPcGVuT3V0Iiwic2V0VGltZW91dCIsImFkZENsYXNzIiwidHJpZ2dlciIsImNsZWFyVGltZW91dCIsInJlbW92ZUNsYXNzIiwiZXZlbnQiLCJxdWljayIsInByZXZlbnREZWZhdWx0Iiwib3ZlcmxheSIsImNzcyIsImFuaW1hdGUiLCJvcGFjaXR5IiwiZGlzcGxheSIsImNvb2tpZSIsInRvZ2dsZUNsYXNzIiwic2V0IiwiZXhwaXJlcyIsIkluZmluaXR5IiwiY2xlYXIiLCJmbiIsImhhcyIsImdldCIsImJpbmQiLCJJbnN0YW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/sidebar.js\n");
/***/ }),
/***/ "./app/utils/storage.js":
/*!******************************!*\
!*** ./app/utils/storage.js ***!
\******************************/
/***/ (() => {
eval("// localStorage\n(function () {\n function isSupported() {\n var item = 'localStoragePollyfill';\n\n try {\n localStorage.setItem(item, item);\n localStorage.removeItem(item);\n sessionStorage.setItem(item, item);\n sessionStorage.removeItem(item);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (!isSupported()) {\n try {\n Storage.prototype._data = {};\n\n Storage.prototype.setItem = function (id, val) {\n this._data[id] = String(val);\n return this._data[id];\n };\n\n Storage.prototype.getItem = function (id) {\n return this._data.hasOwnProperty(id) ? this._data[id] : undefined;\n };\n\n Storage.prototype.removeItem = function (id) {\n return delete this._data[id];\n };\n\n Storage.prototype.clear = function () {\n this._data = {};\n return this._data;\n };\n } catch (e) {\n console.error('localStorage pollyfill error: ', e);\n }\n }\n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3N0b3JhZ2UuanM/YjUzNiJdLCJuYW1lcyI6WyJpc1N1cHBvcnRlZCIsIml0ZW0iLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsInNlc3Npb25TdG9yYWdlIiwiZSIsIlN0b3JhZ2UiLCJwcm90b3R5cGUiLCJfZGF0YSIsImlkIiwidmFsIiwiU3RyaW5nIiwiZ2V0SXRlbSIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwiY2xlYXIiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0MsYUFBVztBQUNSLFdBQVNBLFdBQVQsR0FBdUI7QUFDbkIsUUFBSUMsSUFBSSxHQUFHLHVCQUFYOztBQUNBLFFBQUk7QUFDQUMsTUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCRixJQUFyQixFQUEyQkEsSUFBM0I7QUFDQUMsTUFBQUEsWUFBWSxDQUFDRSxVQUFiLENBQXdCSCxJQUF4QjtBQUNBSSxNQUFBQSxjQUFjLENBQUNGLE9BQWYsQ0FBdUJGLElBQXZCLEVBQTZCQSxJQUE3QjtBQUNBSSxNQUFBQSxjQUFjLENBQUNELFVBQWYsQ0FBMEJILElBQTFCO0FBQ0EsYUFBTyxJQUFQO0FBQ0gsS0FORCxDQU1FLE9BQU9LLENBQVAsRUFBVTtBQUNSLGFBQU8sS0FBUDtBQUNIO0FBQ0o7O0FBRUQsTUFBSSxDQUFDTixXQUFXLEVBQWhCLEVBQW9CO0FBQ2hCLFFBQUk7QUFDQU8sTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCQyxLQUFsQixHQUEwQixFQUExQjs7QUFFQUYsTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCTCxPQUFsQixHQUE0QixVQUFTTyxFQUFULEVBQWFDLEdBQWIsRUFBa0I7QUFDMUMsYUFBS0YsS0FBTCxDQUFXQyxFQUFYLElBQWlCRSxNQUFNLENBQUNELEdBQUQsQ0FBdkI7QUFDQSxlQUFPLEtBQUtGLEtBQUwsQ0FBV0MsRUFBWCxDQUFQO0FBQ0gsT0FIRDs7QUFLQUgsTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCSyxPQUFsQixHQUE0QixVQUFTSCxFQUFULEVBQWE7QUFDckMsZUFBTyxLQUFLRCxLQUFMLENBQVdLLGNBQVgsQ0FBMEJKLEVBQTFCLElBQWdDLEtBQUtELEtBQUwsQ0FBV0MsRUFBWCxDQUFoQyxHQUFpREssU0FBeEQ7QUFDSCxPQUZEOztBQUlBUixNQUFBQSxPQUFPLENBQUNDLFNBQVIsQ0FBa0JKLFVBQWxCLEdBQStCLFVBQVNNLEVBQVQsRUFBYTtBQUN4QyxlQUFPLE9BQU8sS0FBS0QsS0FBTCxDQUFXQyxFQUFYLENBQWQ7QUFDSCxPQUZEOztBQUlBSCxNQUFBQSxPQUFPLENBQUNDLFNBQVIsQ0FBa0JRLEtBQWxCLEdBQTBCLFlBQVc7QUFDakMsYUFBS1AsS0FBTCxHQUFhLEVBQWI7QUFDQSxlQUFPLEtBQUtBLEtBQVo7QUFDSCxPQUhEO0FBSUgsS0FwQkQsQ0FvQkUsT0FBT0gsQ0FBUCxFQUFVO0FBQ1JXLE1BQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLGdDQUFkLEVBQWdEWixDQUFoRDtBQUNIO0FBQ0o7QUFDSixDQXZDQSxHQUFEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbG9jYWxTdG9yYWdlXG4oZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gaXNTdXBwb3J0ZWQoKSB7XG4gICAgICAgIHZhciBpdGVtID0gJ2xvY2FsU3RvcmFnZVBvbGx5ZmlsbCc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc1N1cHBvcnRlZCgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5fZGF0YSA9IHt9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5zZXRJdGVtID0gZnVuY3Rpb24oaWQsIHZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFbaWRdID0gU3RyaW5nKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuZ2V0SXRlbSA9IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuaGFzT3duUHJvcGVydHkoaWQpID8gdGhpcy5fZGF0YVtpZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5yZW1vdmVJdGVtID0gZnVuY3Rpb24oaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhID0ge307XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdsb2NhbFN0b3JhZ2UgcG9sbHlmaWxsIGVycm9yOiAnLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn0oKSk7XG4iXSwiZmlsZSI6Ii4vYXBwL3V0aWxzL3N0b3JhZ2UuanMuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/storage.js\n");
/***/ }),
/***/ "./app/utils/tabs-memory.js":
/*!**********************************!*\
!*** ./app/utils/tabs-memory.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n\n\n\nvar Data = JSON.parse(_utils_cookies__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get('grav-tabs-state') || '{}');\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('touchstart click', '[data-tabid]', function (event) {\n event && event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n Data[target.data('tabkey')] = target.data('scope');\n _utils_cookies__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set('grav-tabs-state', JSON.stringify(Data), {\n expires: Infinity\n });\n var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(target.data('tabid'), \"\\\"]\"));\n target.siblings('[data-tabid]').removeClass('active');\n target.addClass('active');\n panel.siblings('[id]').removeClass('active');\n panel.addClass('active');\n _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__.Instance.editors.each(function (index, editor) {\n var codemirror = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).data('codemirror');\n\n if (!codemirror) {\n return;\n }\n\n if (codemirror.display.lastWrapWidth === 0) {\n codemirror.refresh();\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvdGFicy1tZW1vcnkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQSxJQUFJSSxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXTCwwREFBQSxDQUFZLGlCQUFaLEtBQWtDLElBQTdDLENBQVg7QUFFQUQsNkNBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVVEsRUFBVixDQUFhLGtCQUFiLEVBQWlDLGNBQWpDLEVBQWlELFVBQUNDLEtBQUQsRUFBVztBQUN4REEsRUFBQUEsS0FBSyxJQUFJQSxLQUFLLENBQUNDLGVBQU4sRUFBVDtBQUNBLE1BQUlDLE1BQU0sR0FBR1gsNkNBQUMsQ0FBQ1MsS0FBSyxDQUFDRyxhQUFQLENBQWQ7QUFFQVIsRUFBQUEsSUFBSSxDQUFDTyxNQUFNLENBQUNFLElBQVAsQ0FBWSxRQUFaLENBQUQsQ0FBSixHQUE4QkYsTUFBTSxDQUFDRSxJQUFQLENBQVksT0FBWixDQUE5QjtBQUNBWixFQUFBQSwwREFBQSxDQUFZLGlCQUFaLEVBQStCSSxJQUFJLENBQUNVLFNBQUwsQ0FBZVgsSUFBZixDQUEvQixFQUFxRDtBQUFFWSxJQUFBQSxPQUFPLEVBQUVDO0FBQVgsR0FBckQ7QUFFQSxNQUFNQyxLQUFLLEdBQUdsQiw2Q0FBQyxpQkFBU1csTUFBTSxDQUFDRSxJQUFQLENBQVksT0FBWixDQUFULFNBQWY7QUFFQUYsRUFBQUEsTUFBTSxDQUFDUSxRQUFQLENBQWdCLGNBQWhCLEVBQWdDQyxXQUFoQyxDQUE0QyxRQUE1QztBQUNBVCxFQUFBQSxNQUFNLENBQUNVLFFBQVAsQ0FBZ0IsUUFBaEI7QUFFQUgsRUFBQUEsS0FBSyxDQUFDQyxRQUFOLENBQWUsTUFBZixFQUF1QkMsV0FBdkIsQ0FBbUMsUUFBbkM7QUFDQUYsRUFBQUEsS0FBSyxDQUFDRyxRQUFOLENBQWUsUUFBZjtBQUVBbEIsRUFBQUEsdUVBQUEsQ0FBcUIsVUFBQ3FCLEtBQUQsRUFBUUMsTUFBUixFQUFtQjtBQUNwQyxRQUFJQyxVQUFVLEdBQUcxQiw2Q0FBQyxDQUFDeUIsTUFBRCxDQUFELENBQVVaLElBQVYsQ0FBZSxZQUFmLENBQWpCOztBQUNBLFFBQUksQ0FBQ2EsVUFBTCxFQUFpQjtBQUFFO0FBQVM7O0FBQzVCLFFBQUlBLFVBQVUsQ0FBQ0MsT0FBWCxDQUFtQkMsYUFBbkIsS0FBcUMsQ0FBekMsRUFBNEM7QUFDeENGLE1BQUFBLFVBQVUsQ0FBQ0csT0FBWDtBQUNIO0FBQ0osR0FORDtBQU9ILENBdEJEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vR3Jhdi8uL2FwcC91dGlscy90YWJzLW1lbW9yeS5qcz8zOWIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgQ29va2llcyBmcm9tICcuLi91dGlscy9jb29raWVzJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIEVkaXRvcnMgfSBmcm9tICcuLi9mb3Jtcy9maWVsZHMvZWRpdG9yJztcblxubGV0IERhdGEgPSBKU09OLnBhcnNlKENvb2tpZXMuZ2V0KCdncmF2LXRhYnMtc3RhdGUnKSB8fCAne30nKTtcblxuJCgnYm9keScpLm9uKCd0b3VjaHN0YXJ0IGNsaWNrJywgJ1tkYXRhLXRhYmlkXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50ICYmIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXG4gICAgRGF0YVt0YXJnZXQuZGF0YSgndGFia2V5JyldID0gdGFyZ2V0LmRhdGEoJ3Njb3BlJyk7XG4gICAgQ29va2llcy5zZXQoJ2dyYXYtdGFicy1zdGF0ZScsIEpTT04uc3RyaW5naWZ5KERhdGEpLCB7IGV4cGlyZXM6IEluZmluaXR5IH0pO1xuXG4gICAgY29uc3QgcGFuZWwgPSAkKGBbaWQ9XCIke3RhcmdldC5kYXRhKCd0YWJpZCcpfVwiXWApO1xuXG4gICAgdGFyZ2V0LnNpYmxpbmdzKCdbZGF0YS10YWJpZF0nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgdGFyZ2V0LmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgIHBhbmVsLnNpYmxpbmdzKCdbaWRdJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgIHBhbmVsLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgIEVkaXRvcnMuZWRpdG9ycy5lYWNoKChpbmRleCwgZWRpdG9yKSA9PiB7XG4gICAgICAgIGxldCBjb2RlbWlycm9yID0gJChlZGl0b3IpLmRhdGEoJ2NvZGVtaXJyb3InKTtcbiAgICAgICAgaWYgKCFjb2RlbWlycm9yKSB7IHJldHVybjsgfVxuICAgICAgICBpZiAoY29kZW1pcnJvci5kaXNwbGF5Lmxhc3RXcmFwV2lkdGggPT09IDApIHtcbiAgICAgICAgICAgIGNvZGVtaXJyb3IucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgfSk7XG59KTtcbiJdLCJuYW1lcyI6WyIkIiwiQ29va2llcyIsIkluc3RhbmNlIiwiRWRpdG9ycyIsIkRhdGEiLCJKU09OIiwicGFyc2UiLCJnZXQiLCJvbiIsImV2ZW50Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImRhdGEiLCJzZXQiLCJzdHJpbmdpZnkiLCJleHBpcmVzIiwiSW5maW5pdHkiLCJwYW5lbCIsInNpYmxpbmdzIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImVkaXRvcnMiLCJlYWNoIiwiaW5kZXgiLCJlZGl0b3IiLCJjb2RlbWlycm9yIiwiZGlzcGxheSIsImxhc3RXcmFwV2lkdGgiLCJyZWZyZXNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/tabs-memory.js\n");
/***/ }),
/***/ "./app/utils/toastr.js":
/*!*****************************!*\
!*** ./app/utils/toastr.js ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! toastr */ \"./node_modules/toastr/toastr.js\");\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(toastr__WEBPACK_IMPORTED_MODULE_0__);\n\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options.positionClass) = 'toast-top-right';\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options.preventDuplicates) = true;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((toastr__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvdXRpbHMvdG9hc3RyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRUFBLHFFQUFBLEdBQStCLGlCQUEvQjtBQUNBQSx5RUFBQSxHQUFtQyxJQUFuQztBQUVBLGlFQUFlQSwrQ0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvdXRpbHMvdG9hc3RyLmpzP2NmN2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRvYXN0ciBmcm9tICd0b2FzdHInO1xuXG50b2FzdHIub3B0aW9ucy5wb3NpdGlvbkNsYXNzID0gJ3RvYXN0LXRvcC1yaWdodCc7XG50b2FzdHIub3B0aW9ucy5wcmV2ZW50RHVwbGljYXRlcyA9IHRydWU7XG5cbmV4cG9ydCBkZWZhdWx0IHRvYXN0cjtcbiJdLCJuYW1lcyI6WyJ0b2FzdHIiLCJvcHRpb25zIiwicG9zaXRpb25DbGFzcyIsInByZXZlbnREdXBsaWNhdGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/toastr.js\n");
/***/ }),
/***/ "./app/whitelabel/compile.js":
/*!***********************************!*\
!*** ./app/whitelabel/compile.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ \"prepareElement\": () => (/* binding */ prepareElement),\n/* harmony export */ \"resetElement\": () => (/* binding */ resetElement)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$preview = _ref.preview,\n preview = _ref$preview === void 0 ? false : _ref$preview,\n _ref$exportScss = _ref.exportScss,\n exportScss = _ref$exportScss === void 0 ? false : _ref$exportScss,\n _ref$color_scheme = _ref.color_scheme,\n color_scheme = _ref$color_scheme === void 0 ? {} : _ref$color_scheme,\n _ref$fonts = _ref.fonts,\n fonts = _ref$fonts === void 0 ? {} : _ref$fonts,\n _ref$callback = _ref.callback,\n callback = _ref$callback === void 0 ? function () {} : _ref$callback;\n\n var task = exportScss ? 'exportScss' : 'compileScss'; // console.log(config);\n\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \".json/task:\").concat(task);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(URI, {\n method: 'post',\n body: Object.assign({}, preview ? {\n preview: preview\n } : null, color_scheme)\n }, callback);\n});\nvar prepareElement = function prepareElement(element) {\n element.data('busy_right_now', true);\n\n if (!element.data('current_icon')) {\n element.data('current_icon', element.find('.fa').attr('class'));\n }\n\n element.find('.fa').attr('class', 'fa fa-fw fa-spin fa-refresh');\n};\nvar resetElement = function resetElement(element) {\n element.data('busy_right_now', false);\n element.find('.fa').attr('class', element.data('current_icon'));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvd2hpdGVsYWJlbC9jb21waWxlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFFQSxpRUFBZSxZQUFzRztBQUFBLGlGQUFQLEVBQU87QUFBQSwwQkFBbkdFLE9BQW1HO0FBQUEsTUFBbkdBLE9BQW1HLDZCQUF6RixLQUF5RjtBQUFBLDZCQUFsRkMsVUFBa0Y7QUFBQSxNQUFsRkEsVUFBa0YsZ0NBQXJFLEtBQXFFO0FBQUEsK0JBQTlEQyxZQUE4RDtBQUFBLE1BQTlEQSxZQUE4RCxrQ0FBL0MsRUFBK0M7QUFBQSx3QkFBM0NDLEtBQTJDO0FBQUEsTUFBM0NBLEtBQTJDLDJCQUFuQyxFQUFtQztBQUFBLDJCQUEvQkMsUUFBK0I7QUFBQSxNQUEvQkEsUUFBK0IsOEJBQXBCLFlBQU0sQ0FBRSxDQUFZOztBQUNqSCxNQUFJQyxJQUFJLEdBQUdKLFVBQVUsR0FBRyxZQUFILEdBQWtCLGFBQXZDLENBRGlILENBRWpIOztBQUNBLE1BQU1LLEdBQUcsYUFBTVIsaUVBQU4sd0JBQTRDTyxJQUE1QyxDQUFUO0FBQ0FOLEVBQUFBLDBEQUFPLENBQUNPLEdBQUQsRUFBTTtBQUNURSxJQUFBQSxNQUFNLEVBQUUsTUFEQztBQUVUQyxJQUFBQSxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JYLE9BQU8sR0FBRztBQUFFQSxNQUFBQSxPQUFPLEVBQVBBO0FBQUYsS0FBSCxHQUFpQixJQUExQyxFQUFnREUsWUFBaEQ7QUFGRyxHQUFOLEVBR0pFLFFBSEksQ0FBUDtBQUlILENBUkQ7QUFVTyxJQUFNUSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLE9BQUQsRUFBYTtBQUN2Q0EsRUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsZ0JBQWIsRUFBK0IsSUFBL0I7O0FBQ0EsTUFBSSxDQUFDRCxPQUFPLENBQUNDLElBQVIsQ0FBYSxjQUFiLENBQUwsRUFBbUM7QUFDL0JELElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGNBQWIsRUFBNkJELE9BQU8sQ0FBQ0UsSUFBUixDQUFhLEtBQWIsRUFBb0JDLElBQXBCLENBQXlCLE9BQXpCLENBQTdCO0FBQ0g7O0FBQ0RILEVBQUFBLE9BQU8sQ0FBQ0UsSUFBUixDQUFhLEtBQWIsRUFBb0JDLElBQXBCLENBQXlCLE9BQXpCLEVBQWtDLDZCQUFsQztBQUNILENBTk07QUFRQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDSixPQUFELEVBQWE7QUFDckNBLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGdCQUFiLEVBQStCLEtBQS9CO0FBQ0FELEVBQUFBLE9BQU8sQ0FBQ0UsSUFBUixDQUFhLEtBQWIsRUFBb0JDLElBQXBCLENBQXlCLE9BQXpCLEVBQWtDSCxPQUFPLENBQUNDLElBQVIsQ0FBYSxjQUFiLENBQWxDO0FBQ0gsQ0FITSIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvd2hpdGVsYWJlbC9jb21waWxlLmpzP2JmMjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmV4cG9ydCBkZWZhdWx0ICh7IHByZXZpZXcgPSBmYWxzZSwgZXhwb3J0U2NzcyA9IGZhbHNlLCBjb2xvcl9zY2hlbWUgPSB7fSwgZm9udHMgPSB7fSwgY2FsbGJhY2sgPSAoKSA9PiB7fSB9ID0ge30pID0+IHtcbiAgICBsZXQgdGFzayA9IGV4cG9ydFNjc3MgPyAnZXhwb3J0U2NzcycgOiAnY29tcGlsZVNjc3MnO1xuICAgIC8vIGNvbnNvbGUubG9nKGNvbmZpZyk7XG4gICAgY29uc3QgVVJJID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS5qc29uL3Rhc2s6JHt0YXNrfWA7XG4gICAgcmVxdWVzdChVUkksIHtcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGJvZHk6IE9iamVjdC5hc3NpZ24oe30sIHByZXZpZXcgPyB7IHByZXZpZXcgfSA6IG51bGwsIGNvbG9yX3NjaGVtZSlcbiAgICB9LCBjYWxsYmFjayk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJlcGFyZUVsZW1lbnQgPSAoZWxlbWVudCkgPT4ge1xuICAgIGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnLCB0cnVlKTtcbiAgICBpZiAoIWVsZW1lbnQuZGF0YSgnY3VycmVudF9pY29uJykpIHtcbiAgICAgICAgZWxlbWVudC5kYXRhKCdjdXJyZW50X2ljb24nLCBlbGVtZW50LmZpbmQoJy5mYScpLmF0dHIoJ2NsYXNzJykpO1xuICAgIH1cbiAgICBlbGVtZW50LmZpbmQoJy5mYScpLmF0dHIoJ2NsYXNzJywgJ2ZhIGZhLWZ3IGZhLXNwaW4gZmEtcmVmcmVzaCcpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0RWxlbWVudCA9IChlbGVtZW50KSA9PiB7XG4gICAgZWxlbWVudC5kYXRhKCdidXN5X3JpZ2h0X25vdycsIGZhbHNlKTtcbiAgICBlbGVtZW50LmZpbmQoJy5mYScpLmF0dHIoJ2NsYXNzJywgZWxlbWVudC5kYXRhKCdjdXJyZW50X2ljb24nKSk7XG59O1xuIl0sIm5hbWVzIjpbImNvbmZpZyIsInJlcXVlc3QiLCJwcmV2aWV3IiwiZXhwb3J0U2NzcyIsImNvbG9yX3NjaGVtZSIsImZvbnRzIiwiY2FsbGJhY2siLCJ0YXNrIiwiVVJJIiwiYmFzZV91cmxfcmVsYXRpdmUiLCJtZXRob2QiLCJib2R5IiwiT2JqZWN0IiwiYXNzaWduIiwicHJlcGFyZUVsZW1lbnQiLCJlbGVtZW50IiwiZGF0YSIsImZpbmQiLCJhdHRyIiwicmVzZXRFbGVtZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/compile.js\n");
/***/ }),
/***/ "./app/whitelabel/index.js":
/*!*********************************!*\
!*** ./app/whitelabel/index.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _compile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compile */ \"./app/whitelabel/compile.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/colors */ \"./app/utils/colors.js\");\n/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./presets */ \"./app/whitelabel/presets.js\");\n\n\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_2__[\"default\"].FormState.Instance;\n\nvar compiler = function compiler(element) {\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var exportScss = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var _callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.prepareElement)(element);\n var fields = FormState.collect();\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n preview: preview,\n exportScss: exportScss,\n color_scheme: !fields ? [] : fields.filter(function (value, key) {\n return key.match(/^data\\[whitelabel]\\[color_scheme]/);\n }).toJS(),\n callback: function callback(response) {\n _callback.call(_callback, response);\n\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.resetElement)(element);\n }\n });\n};\n\nbody.on('click', '[data-preview-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, false, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n var file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-pro-preview-\".concat(key));\n var timestamp = Date.now();\n\n if (!file.length) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<link id=\\\"admin-pro-preview-\".concat(key, \"\\\" type=\\\"text/css\\\" rel=\\\"stylesheet\\\" />\"));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('head').append(file);\n\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-reset-scss]').length) {\n var reset = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<button class=\"button\" data-reset-scss style=\"margin-left: 5px;\"><i class=\"fa fa-fw fa-history\"></i> Reset</button>');\n reset.insertAfter(element);\n }\n }\n\n file.attr('href', \"\".concat(response.files[key], \"?\").concat(timestamp));\n });\n }\n });\n});\nbody.on('click', '[data-recompile-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, false);\n});\nbody.on('click', '[data-export-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, true, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n if (key === 'download') {\n var _element = document.createElement('a');\n\n _element.setAttribute('href', response.files[key]);\n\n _element.setAttribute('download', '');\n\n _element.style.display = 'none';\n document.body.appendChild(_element);\n\n _element.click();\n\n document.body.removeChild(_element);\n }\n });\n }\n });\n});\nbody.on('change._grav_colorpicker', '[data-grav-colorpicker]', function (event, input, hex, opacity) {\n var RGB = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n var YIQ = (RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000;\n var contrast = YIQ >= 128 || opacity <= 0.50 ? 'dark' : 'light';\n input.parent().removeClass('dark-text light-text').addClass(\"\".concat(contrast, \"-text\"));\n});\nbody.ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-colorpicker]').trigger('keyup');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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aGl0ZWxhYmVsL2luZGV4LmpzPzIyOTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBDb21waWxlLCB7IHByZXBhcmVFbGVtZW50LCByZXNldEVsZW1lbnQgfSBmcm9tICcuL2NvbXBpbGUnO1xuaW1wb3J0IEZvcm1zIGZyb20gJy4uL2Zvcm1zJztcbmltcG9ydCB7IGhleDJyZ2IgfSBmcm9tICcuLi91dGlscy9jb2xvcnMnO1xuaW1wb3J0ICcuL3ByZXNldHMnO1xuXG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuY29uc3QgRm9ybVN0YXRlID0gRm9ybXMuRm9ybVN0YXRlLkluc3RhbmNlO1xuY29uc3QgY29tcGlsZXIgPSAoZWxlbWVudCwgcHJldmlldyA9IGZhbHNlLCBleHBvcnRTY3NzID0gZmFsc2UsIGNhbGxiYWNrID0gKCkgPT4ge30pID0+IHtcbiAgICBwcmVwYXJlRWxlbWVudChlbGVtZW50KTtcblxuICAgIGxldCBmaWVsZHMgPSBGb3JtU3RhdGUuY29sbGVjdCgpO1xuICAgIENvbXBpbGUoe1xuICAgICAgICBwcmV2aWV3LFxuICAgICAgICBleHBvcnRTY3NzLFxuICAgICAgICBjb2xvcl9zY2hlbWU6ICFmaWVsZHMgPyBbXSA6IGZpZWxkcy5maWx0ZXIoKHZhbHVlLCBrZXkpID0+IGtleS5tYXRjaCgvXmRhdGFcXFt3aGl0ZWxhYmVsXVxcW2NvbG9yX3NjaGVtZV0vKSkudG9KUygpLFxuICAgICAgICBjYWxsYmFjazogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKGNhbGxiYWNrLCByZXNwb25zZSk7XG4gICAgICAgICAgICByZXNldEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXByZXZpZXctc2Nzc10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBpZiAoZWxlbWVudC5kYXRhKCdidXN5X3JpZ2h0X25vdycpKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgY29tcGlsZXIoZWxlbWVudCwgdHJ1ZSwgZmFsc2UsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZmlsZXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLmZpbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZSA9ICQoYCNhZG1pbi1wcm8tcHJldmlldy0ke2tleX1gKTtcbiAgICAgICAgICAgICAgICBsZXQgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGUgPSAkKGA8bGluayBpZD1cImFkbWluLXByby1wcmV2aWV3LSR7a2V5fVwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPmApO1xuICAgICAgICAgICAgICAgICAgICAkKCdoZWFkJykuYXBwZW5kKGZpbGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghJCgnW2RhdGEtcmVzZXQtc2Nzc10nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNldCA9ICQoJzxidXR0b24gY2xhc3M9XCJidXR0b25cIiBkYXRhLXJlc2V0LXNjc3Mgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4O1wiPjxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaGlzdG9yeVwiPjwvaT4gUmVzZXQ8L2J1dHRvbj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0Lmluc2VydEFmdGVyKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZmlsZS5hdHRyKCdocmVmJywgYCR7cmVzcG9uc2UuZmlsZXNba2V5XX0/JHt0aW1lc3RhbXB9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXJlY29tcGlsZS1zY3NzXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGlmIChlbGVtZW50LmRhdGEoJ2J1c3lfcmlnaHRfbm93JykpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBjb21waWxlcihlbGVtZW50LCB0cnVlLCBmYWxzZSk7XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtZXhwb3J0LXNjc3NdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgaWYgKGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbXBpbGVyKGVsZW1lbnQsIHRydWUsIHRydWUsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZmlsZXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLmZpbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHJlc3BvbnNlLmZpbGVzW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCAnJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG59KTtcblxuYm9keS5vbignY2hhbmdlLl9ncmF2X2NvbG9ycGlja2VyJywgJ1tkYXRhLWdyYXYtY29sb3JwaWNrZXJdJywgKGV2ZW50LCBpbnB1dCwgaGV4LCBvcGFjaXR5KSA9PiB7XG4gICAgbGV0IFJHQiA9IGhleDJyZ2IoaGV4KTtcbiAgICBsZXQgWUlRID0gKChSR0IuciAqIDI5OSkgKyAoUkdCLmcgKiA1ODcpICsgKFJHQi5iICogMTE0KSkgLyAxMDAwO1xuICAgIGxldCBjb250cmFzdCA9IFlJUSA+PSAxMjggfHwgb3BhY2l0eSA8PSAwLjUwID8gJ2RhcmsnIDogJ2xpZ2h0JztcblxuICAgIGlucHV0LnBhcmVudCgpLnJlbW92ZUNsYXNzKCdkYXJrLXRleHQgbGlnaHQtdGV4dCcpLmFkZENsYXNzKGAke2NvbnRyYXN0fS10ZXh0YCk7XG59KTtcblxuYm9keS5yZWFkeSgoKSA9PiB7XG4gICAgJCgnW2RhdGEtZ3Jhdi1jb2xvcnBpY2tlcl0nKS50cmlnZ2VyKCdrZXl1cCcpO1xufSk7XG4iXSwibmFtZXMiOlsiJCIsIkNvbXBpbGUiLCJwcmVwYXJlRWxlbWVudCIsInJlc2V0RWxlbWVudCIsIkZvcm1zIiwiaGV4MnJnYiIsImJvZHkiLCJGb3JtU3RhdGUiLCJJbnN0YW5jZSIsImNvbXBpbGVyIiwiZWxlbWVudCIsInByZXZpZXciLCJleHBvcnRTY3NzIiwiY2FsbGJhY2siLCJmaWVsZHMiLCJjb2xsZWN0IiwiY29sb3Jfc2NoZW1lIiwiZmlsdGVyIiwidmFsdWUiLCJrZXkiLCJtYXRjaCIsInRvSlMiLCJyZXNwb25zZSIsImNhbGwiLCJvbiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJjdXJyZW50VGFyZ2V0IiwiZGF0YSIsImZpbGVzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJmaWxlIiwidGltZXN0YW1wIiwiRGF0ZSIsIm5vdyIsImxlbmd0aCIsImFwcGVuZCIsInJlc2V0IiwiaW5zZXJ0QWZ0ZXIiLCJhdHRyIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwic3R5bGUiLCJkaXNwbGF5IiwiYXBwZW5kQ2hpbGQiLCJjbGljayIsInJlbW92ZUNoaWxkIiwiaW5wdXQiLCJoZXgiLCJvcGFjaXR5IiwiUkdCIiwiWUlRIiwiciIsImciLCJiIiwiY29udHJhc3QiLCJwYXJlbnQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwicmVhZHkiLCJ0cmlnZ2VyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/index.js\n");
/***/ }),
/***/ "./app/whitelabel/presets.js":
/*!***********************************!*\
!*** ./app/whitelabel/presets.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar fields = [];\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FormState.Instance;\n\nvar setField = function setField(field, value) {\n var name = field.prop('name');\n var tag = field.prop('tagName').toLowerCase();\n var type = field.prop('type');\n fields.push(name);\n\n switch (tag) {\n case 'select':\n field.val(value);\n field.data('selectize').setValue(value);\n field.trigger('change');\n break;\n\n case 'input':\n if (type === 'radio') {\n var strValue = value ? '1' : '0';\n field.filter(function (index, radio) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).val() === strValue;\n }).prop('checked', true);\n break;\n }\n\n if (type === 'checkbox') {\n field.prop('checked', value);\n break;\n }\n\n field.val(value);\n field.trigger('keyup');\n }\n};\n\nbody.on('click', '[data-preset-values]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var data = target.data('preset-values');\n Object.keys(data).forEach(function (section) {\n if (typeof data[section] === 'string') {\n return;\n }\n\n Object.keys(data[section]).forEach(function (key) {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"data[whitelabel][color_scheme][\".concat(section, \"][\").concat(key, \"]\\\"], [name=\\\"data[\").concat(section, \"][\").concat(key, \"]\\\"]\"));\n var value = data[section][key];\n setField(field, value);\n });\n });\n});\nbody.on('click', '[data-reset-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var links = jquery__WEBPACK_IMPORTED_MODULE_0___default()('link[id^=admin-pro-preview-]');\n element.remove();\n links.remove();\n fields.forEach(function (field) {\n var value = FormState.loadState.get(field);\n setField(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(field, \"\\\"]\")), value);\n });\n fields = [];\n}); // Horizontal Scroll Functionality\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.hscrollarrows) = function () {\n return this.each(function () {\n var navNext = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"nav-next hide\"></a>');\n var navPrev = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"nav-prev hide\"></a>');\n var scrollTime = null;\n var resizeTime = null;\n var scrolling = false;\n var elm_w = 0;\n var elem_data_w = 0;\n var max_scroll = 0;\n var inc_scroll = 0;\n\n var calcData = function calcData() {\n elm_w = elem.width();\n elem_data_w = elem_data.get(0).scrollWidth;\n max_scroll = elem_data_w - elm_w;\n inc_scroll = elm_w * 0.3; // 20%\n };\n\n var revalidate = function revalidate() {\n calcData();\n stateNavs();\n };\n\n var run = function run() {\n calcData();\n setupNavs();\n };\n\n var setupNavs = function setupNavs() {\n elem.parent().prepend(navNext);\n elem.parent().prepend(navPrev);\n navNext.on('click', next);\n navPrev.on('click', prev);\n stateNavs();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).scroll(function () {\n if (!scrolling) {\n clearTimeout(scrollTime);\n scrollTime = setTimeout(function () {\n stateNavs();\n }, 250);\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).resize(function () {\n clearTimeout(resizeTime);\n resizeTime = setTimeout(function () {\n revalidate();\n }, 250);\n });\n };\n\n var stateNavs = function stateNavs() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll < max_scroll) {\n navNext.removeClass('hide');\n } else {\n navNext.addClass('hide');\n }\n\n if (current_scroll > 0) {\n navPrev.removeClass('hide');\n } else {\n navPrev.addClass('hide');\n }\n\n scrolling = false;\n };\n\n var next = function next() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll < max_scroll) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll + inc_scroll\n }, stateNavs);\n }\n };\n\n var prev = function prev() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll > 0) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll - inc_scroll\n }, stateNavs);\n }\n };\n\n var elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var elem_data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(':first-child', elem);\n run();\n });\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.jquery-horizontal-scroll').hscrollarrows();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LElBQVo7QUFDQU0sUUFBQUEsSUFBSSxDQUFDcUIsSUFBTCxHQUFZQyxPQUFaLENBQW9CO0FBQ2hCSixVQUFBQSxVQUFVLEVBQUdELGNBQWMsR0FBR25CO0FBRGQsU0FBcEIsRUFFR08sU0FGSDtBQUdIO0FBQ0osS0FSRDs7QUFVQSxRQUFJTCxJQUFJLEdBQUduRCw2Q0FBQyxDQUFDLElBQUQsQ0FBWjtBQUNBLFFBQUlxRCxTQUFTLEdBQUdyRCw2Q0FBQyxDQUFDLGNBQUQsRUFBaUJtRCxJQUFqQixDQUFqQjtBQUNBTSxJQUFBQSxHQUFHO0FBRU4sR0E5Rk0sQ0FBUDtBQStGSCxDQWhHRDs7QUFrR0F6RCw2Q0FBQyxDQUFDMEUsUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0IsWUFBTTtBQUNwQjNFLEVBQUFBLDZDQUFDLENBQUMsMkJBQUQsQ0FBRCxDQUErQnVDLGFBQS9CO0FBQ0gsQ0FGRCIsInNvdXJjZXMiOlsid2VicGFjazovL0dyYXYvLi9hcHAvd2hpdGVsYWJlbC9wcmVzZXRzLmpzPzMyM2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBGb3JtcyBmcm9tICcuLi9mb3Jtcyc7XG5cbmxldCBib2R5ID0gJCgnYm9keScpO1xubGV0IGZpZWxkcyA9IFtdO1xuY29uc3QgRm9ybVN0YXRlID0gRm9ybXMuRm9ybVN0YXRlLkluc3RhbmNlO1xuY29uc3Qgc2V0RmllbGQgPSAoZmllbGQsIHZhbHVlKSA9PiB7XG4gICAgbGV0IG5hbWUgPSBmaWVsZC5wcm9wKCduYW1lJyk7XG4gICAgbGV0IHRhZyA9IGZpZWxkLnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCB0eXBlID0gZmllbGQucHJvcCgndHlwZScpO1xuXG4gICAgZmllbGRzLnB1c2gobmFtZSk7XG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICBmaWVsZC5kYXRhKCdzZWxlY3RpemUnKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICBmaWVsZC50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ3JhZGlvJykge1xuICAgICAgICAgICAgICAgIGxldCBzdHJWYWx1ZSA9IHZhbHVlID8gJzEnIDogJzAnO1xuICAgICAgICAgICAgICAgIGZpZWxkLmZpbHRlcigoaW5kZXgsIHJhZGlvKSA9PiAkKHJhZGlvKS52YWwoKSA9PT0gc3RyVmFsdWUpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3AoJ2NoZWNrZWQnLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgICAgICAgICAgZmllbGQudHJpZ2dlcigna2V5dXAnKTtcbiAgICB9XG59O1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1wcmVzZXQtdmFsdWVzXScsIChldmVudCkgPT4ge1xuICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBkYXRhID0gdGFyZ2V0LmRhdGEoJ3ByZXNldC12YWx1ZXMnKTtcblxuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW3NlY3Rpb25dID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YVtzZWN0aW9uXSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBsZXQgZmllbGQgPSAkKGBbbmFtZT1cImRhdGFbd2hpdGVsYWJlbF1bY29sb3Jfc2NoZW1lXVske3NlY3Rpb259XVske2tleX1dXCJdLCBbbmFtZT1cImRhdGFbJHtzZWN0aW9ufV1bJHtrZXl9XVwiXWApO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gZGF0YVtzZWN0aW9uXVtrZXldO1xuICAgICAgICAgICAgc2V0RmllbGQoZmllbGQsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtcmVzZXQtc2Nzc10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgbGlua3MgPSAkKCdsaW5rW2lkXj1hZG1pbi1wcm8tcHJldmlldy1dJyk7XG5cbiAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgIGxpbmtzLnJlbW92ZSgpO1xuXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IEZvcm1TdGF0ZS5sb2FkU3RhdGUuZ2V0KGZpZWxkKTtcbiAgICAgICAgc2V0RmllbGQoJChgW25hbWU9XCIke2ZpZWxkfVwiXWApLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgZmllbGRzID0gW107XG59KTtcblxuLy8gSG9yaXpvbnRhbCBTY3JvbGwgRnVuY3Rpb25hbGl0eVxuJC5mbi5oc2Nyb2xsYXJyb3dzID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblxuICAgICAgICBsZXQgbmF2TmV4dCA9ICQoJzxhIGNsYXNzPVwibmF2LW5leHQgaGlkZVwiPjwvYT4nKTtcbiAgICAgICAgbGV0IG5hdlByZXYgPSAkKCc8YSBjbGFzcz1cIm5hdi1wcmV2IGhpZGVcIj48L2E+Jyk7XG4gICAgICAgIGxldCBzY3JvbGxUaW1lID0gbnVsbDtcbiAgICAgICAgbGV0IHJlc2l6ZVRpbWUgPSBudWxsO1xuICAgICAgICBsZXQgc2Nyb2xsaW5nID0gZmFsc2U7XG5cbiAgICAgICAgbGV0IGVsbV93ID0gMDtcbiAgICAgICAgbGV0IGVsZW1fZGF0YV93ID0gMDtcbiAgICAgICAgbGV0IG1heF9zY3JvbGwgPSAwO1xuICAgICAgICBsZXQgaW5jX3Njcm9sbCA9IDA7XG5cbiAgICAgICAgbGV0IGNhbGNEYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBlbG1fdyA9IGVsZW0ud2lkdGgoKTtcbiAgICAgICAgICAgIGVsZW1fZGF0YV93ID0gZWxlbV9kYXRhLmdldCgwKS5zY3JvbGxXaWR0aDtcbiAgICAgICAgICAgIG1heF9zY3JvbGwgPSBlbGVtX2RhdGFfdyAtIGVsbV93O1xuICAgICAgICAgICAgaW5jX3Njcm9sbCA9IGVsbV93ICogMC4zOyAvLyAyMCVcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcmV2YWxpZGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY2FsY0RhdGEoKTtcbiAgICAgICAgICAgIHN0YXRlTmF2cygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBydW4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNhbGNEYXRhKCk7XG4gICAgICAgICAgICBzZXR1cE5hdnMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgc2V0dXBOYXZzID0gZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgIGVsZW0ucGFyZW50KCkucHJlcGVuZChuYXZOZXh0KTtcbiAgICAgICAgICAgIGVsZW0ucGFyZW50KCkucHJlcGVuZChuYXZQcmV2KTtcbiAgICAgICAgICAgIG5hdk5leHQub24oJ2NsaWNrJywgbmV4dCk7XG4gICAgICAgICAgICBuYXZQcmV2Lm9uKCdjbGljaycsIHByZXYpO1xuICAgICAgICAgICAgc3RhdGVOYXZzKCk7XG5cbiAgICAgICAgICAgICQoZWxlbSkuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICghc2Nyb2xsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVGltZSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZU5hdnMoKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQocmVzaXplVGltZSk7XG4gICAgICAgICAgICAgICAgcmVzaXplVGltZSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICB9LCAyNTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHN0YXRlTmF2cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRfc2Nyb2xsID0gZWxlbS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPCBtYXhfc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgbmF2TmV4dC5yZW1vdmVDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuYXZOZXh0LmFkZENsYXNzKCdoaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPiAwKSB7XG4gICAgICAgICAgICAgICAgbmF2UHJldi5yZW1vdmVDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuYXZQcmV2LmFkZENsYXNzKCdoaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgbmV4dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRfc2Nyb2xsID0gZWxlbS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPCBtYXhfc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbGVtLnN0b3AoKS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogKGN1cnJlbnRfc2Nyb2xsICsgaW5jX3Njcm9sbClcbiAgICAgICAgICAgICAgICB9LCBzdGF0ZU5hdnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBwcmV2ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudF9zY3JvbGwgPSBlbGVtLnNjcm9sbExlZnQoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50X3Njcm9sbCA+IDApIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGVsZW0uc3RvcCgpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoY3VycmVudF9zY3JvbGwgLSBpbmNfc2Nyb2xsKVxuICAgICAgICAgICAgICAgIH0sIHN0YXRlTmF2cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGVsZW0gPSAkKHRoaXMpO1xuICAgICAgICBsZXQgZWxlbV9kYXRhID0gJCgnOmZpcnN0LWNoaWxkJywgZWxlbSk7XG4gICAgICAgIHJ1bigpO1xuXG4gICAgfSk7XG59O1xuXG4kKGRvY3VtZW50KS5yZWFkeSgoKSA9PiB7XG4gICAgJCgnLmpxdWVyeS1ob3Jpem9udGFsLXNjcm9sbCcpLmhzY3JvbGxhcnJvd3MoKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJGb3JtcyIsImJvZHkiLCJmaWVsZHMiLCJGb3JtU3RhdGUiLCJJbnN0YW5jZSIsInNldEZpZWxkIiwiZmllbGQiLCJ2YWx1ZSIsIm5hbWUiLCJwcm9wIiwidGFnIiwidG9Mb3dlckNhc2UiLCJ0eXBlIiwicHVzaCIsInZhbCIsImRhdGEiLCJzZXRWYWx1ZSIsInRyaWdnZXIiLCJzdHJWYWx1ZSIsImZpbHRlciIsImluZGV4IiwicmFkaW8iLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic2VjdGlvbiIsImtleSIsInByZXZlbnREZWZhdWx0IiwiZWxlbWVudCIsImxpbmtzIiwicmVtb3ZlIiwibG9hZFN0YXRlIiwiZ2V0IiwiZm4iLCJoc2Nyb2xsYXJyb3dzIiwiZWFjaCIsIm5hdk5leHQiLCJuYXZQcmV2Iiwic2Nyb2xsVGltZSIsInJlc2l6ZVRpbWUiLCJzY3JvbGxpbmciLCJlbG1fdyIsImVsZW1fZGF0YV93IiwibWF4X3Njcm9sbCIsImluY19zY3JvbGwiLCJjYWxjRGF0YSIsImVsZW0iLCJ3aWR0aCIsImVsZW1fZGF0YSIsInNjcm9sbFdpZHRoIiwicmV2YWxpZGF0ZSIsInN0YXRlTmF2cyIsInJ1biIsInNldHVwTmF2cyIsInBhcmVudCIsInByZXBlbmQiLCJuZXh0IiwicHJldiIsInNjcm9sbCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ3aW5kb3ciLCJyZXNpemUiLCJjdXJyZW50X3Njcm9sbCIsInNjcm9sbExlZnQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwic3RvcCIsImFuaW1hdGUiLCJkb2N1bWVudCIsInJlYWR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/presets.js\n");
/***/ }),
/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
/*!***************************************************!*\
!*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***!
\***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var map = {
"./af": "./node_modules/moment/locale/af.js",
"./af.js": "./node_modules/moment/locale/af.js",
"./ar": "./node_modules/moment/locale/ar.js",
"./ar-dz": "./node_modules/moment/locale/ar-dz.js",
"./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
"./ar-kw": "./node_modules/moment/locale/ar-kw.js",
"./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
"./ar-ly": "./node_modules/moment/locale/ar-ly.js",
"./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
"./ar-ma": "./node_modules/moment/locale/ar-ma.js",
"./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
"./ar-sa": "./node_modules/moment/locale/ar-sa.js",
"./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
"./ar-tn": "./node_modules/moment/locale/ar-tn.js",
"./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
"./ar.js": "./node_modules/moment/locale/ar.js",
"./az": "./node_modules/moment/locale/az.js",
"./az.js": "./node_modules/moment/locale/az.js",
"./be": "./node_modules/moment/locale/be.js",
"./be.js": "./node_modules/moment/locale/be.js",
"./bg": "./node_modules/moment/locale/bg.js",
"./bg.js": "./node_modules/moment/locale/bg.js",
"./bm": "./node_modules/moment/locale/bm.js",
"./bm.js": "./node_modules/moment/locale/bm.js",
"./bn": "./node_modules/moment/locale/bn.js",
"./bn-bd": "./node_modules/moment/locale/bn-bd.js",
"./bn-bd.js": "./node_modules/moment/locale/bn-bd.js",
"./bn.js": "./node_modules/moment/locale/bn.js",
"./bo": "./node_modules/moment/locale/bo.js",
"./bo.js": "./node_modules/moment/locale/bo.js",
"./br": "./node_modules/moment/locale/br.js",
"./br.js": "./node_modules/moment/locale/br.js",
"./bs": "./node_modules/moment/locale/bs.js",
"./bs.js": "./node_modules/moment/locale/bs.js",
"./ca": "./node_modules/moment/locale/ca.js",
"./ca.js": "./node_modules/moment/locale/ca.js",
"./cs": "./node_modules/moment/locale/cs.js",
"./cs.js": "./node_modules/moment/locale/cs.js",
"./cv": "./node_modules/moment/locale/cv.js",
"./cv.js": "./node_modules/moment/locale/cv.js",
"./cy": "./node_modules/moment/locale/cy.js",
"./cy.js": "./node_modules/moment/locale/cy.js",
"./da": "./node_modules/moment/locale/da.js",
"./da.js": "./node_modules/moment/locale/da.js",
"./de": "./node_modules/moment/locale/de.js",
"./de-at": "./node_modules/moment/locale/de-at.js",
"./de-at.js": "./node_modules/moment/locale/de-at.js",
"./de-ch": "./node_modules/moment/locale/de-ch.js",
"./de-ch.js": "./node_modules/moment/locale/de-ch.js",
"./de.js": "./node_modules/moment/locale/de.js",
"./dv": "./node_modules/moment/locale/dv.js",
"./dv.js": "./node_modules/moment/locale/dv.js",
"./el": "./node_modules/moment/locale/el.js",
"./el.js": "./node_modules/moment/locale/el.js",
"./en-au": "./node_modules/moment/locale/en-au.js",
"./en-au.js": "./node_modules/moment/locale/en-au.js",
"./en-ca": "./node_modules/moment/locale/en-ca.js",
"./en-ca.js": "./node_modules/moment/locale/en-ca.js",
"./en-gb": "./node_modules/moment/locale/en-gb.js",
"./en-gb.js": "./node_modules/moment/locale/en-gb.js",
"./en-ie": "./node_modules/moment/locale/en-ie.js",
"./en-ie.js": "./node_modules/moment/locale/en-ie.js",
"./en-il": "./node_modules/moment/locale/en-il.js",
"./en-il.js": "./node_modules/moment/locale/en-il.js",
"./en-in": "./node_modules/moment/locale/en-in.js",
"./en-in.js": "./node_modules/moment/locale/en-in.js",
"./en-nz": "./node_modules/moment/locale/en-nz.js",
"./en-nz.js": "./node_modules/moment/locale/en-nz.js",
"./en-sg": "./node_modules/moment/locale/en-sg.js",
"./en-sg.js": "./node_modules/moment/locale/en-sg.js",
"./eo": "./node_modules/moment/locale/eo.js",
"./eo.js": "./node_modules/moment/locale/eo.js",
"./es": "./node_modules/moment/locale/es.js",
"./es-do": "./node_modules/moment/locale/es-do.js",
"./es-do.js": "./node_modules/moment/locale/es-do.js",
"./es-mx": "./node_modules/moment/locale/es-mx.js",
"./es-mx.js": "./node_modules/moment/locale/es-mx.js",
"./es-us": "./node_modules/moment/locale/es-us.js",
"./es-us.js": "./node_modules/moment/locale/es-us.js",
"./es.js": "./node_modules/moment/locale/es.js",
"./et": "./node_modules/moment/locale/et.js",
"./et.js": "./node_modules/moment/locale/et.js",
"./eu": "./node_modules/moment/locale/eu.js",
"./eu.js": "./node_modules/moment/locale/eu.js",
"./fa": "./node_modules/moment/locale/fa.js",
"./fa.js": "./node_modules/moment/locale/fa.js",
"./fi": "./node_modules/moment/locale/fi.js",
"./fi.js": "./node_modules/moment/locale/fi.js",
"./fil": "./node_modules/moment/locale/fil.js",
"./fil.js": "./node_modules/moment/locale/fil.js",
"./fo": "./node_modules/moment/locale/fo.js",
"./fo.js": "./node_modules/moment/locale/fo.js",
"./fr": "./node_modules/moment/locale/fr.js",
"./fr-ca": "./node_modules/moment/locale/fr-ca.js",
"./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
"./fr-ch": "./node_modules/moment/locale/fr-ch.js",
"./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
"./fr.js": "./node_modules/moment/locale/fr.js",
"./fy": "./node_modules/moment/locale/fy.js",
"./fy.js": "./node_modules/moment/locale/fy.js",
"./ga": "./node_modules/moment/locale/ga.js",
"./ga.js": "./node_modules/moment/locale/ga.js",
"./gd": "./node_modules/moment/locale/gd.js",
"./gd.js": "./node_modules/moment/locale/gd.js",
"./gl": "./node_modules/moment/locale/gl.js",
"./gl.js": "./node_modules/moment/locale/gl.js",
"./gom-deva": "./node_modules/moment/locale/gom-deva.js",
"./gom-deva.js": "./node_modules/moment/locale/gom-deva.js",
"./gom-latn": "./node_modules/moment/locale/gom-latn.js",
"./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
"./gu": "./node_modules/moment/locale/gu.js",
"./gu.js": "./node_modules/moment/locale/gu.js",
"./he": "./node_modules/moment/locale/he.js",
"./he.js": "./node_modules/moment/locale/he.js",
"./hi": "./node_modules/moment/locale/hi.js",
"./hi.js": "./node_modules/moment/locale/hi.js",
"./hr": "./node_modules/moment/locale/hr.js",
"./hr.js": "./node_modules/moment/locale/hr.js",
"./hu": "./node_modules/moment/locale/hu.js",
"./hu.js": "./node_modules/moment/locale/hu.js",
"./hy-am": "./node_modules/moment/locale/hy-am.js",
"./hy-am.js": "./node_modules/moment/locale/hy-am.js",
"./id": "./node_modules/moment/locale/id.js",
"./id.js": "./node_modules/moment/locale/id.js",
"./is": "./node_modules/moment/locale/is.js",
"./is.js": "./node_modules/moment/locale/is.js",
"./it": "./node_modules/moment/locale/it.js",
"./it-ch": "./node_modules/moment/locale/it-ch.js",
"./it-ch.js": "./node_modules/moment/locale/it-ch.js",
"./it.js": "./node_modules/moment/locale/it.js",
"./ja": "./node_modules/moment/locale/ja.js",
"./ja.js": "./node_modules/moment/locale/ja.js",
"./jv": "./node_modules/moment/locale/jv.js",
"./jv.js": "./node_modules/moment/locale/jv.js",
"./ka": "./node_modules/moment/locale/ka.js",
"./ka.js": "./node_modules/moment/locale/ka.js",
"./kk": "./node_modules/moment/locale/kk.js",
"./kk.js": "./node_modules/moment/locale/kk.js",
"./km": "./node_modules/moment/locale/km.js",
"./km.js": "./node_modules/moment/locale/km.js",
"./kn": "./node_modules/moment/locale/kn.js",
"./kn.js": "./node_modules/moment/locale/kn.js",
"./ko": "./node_modules/moment/locale/ko.js",
"./ko.js": "./node_modules/moment/locale/ko.js",
"./ku": "./node_modules/moment/locale/ku.js",
"./ku.js": "./node_modules/moment/locale/ku.js",
"./ky": "./node_modules/moment/locale/ky.js",
"./ky.js": "./node_modules/moment/locale/ky.js",
"./lb": "./node_modules/moment/locale/lb.js",
"./lb.js": "./node_modules/moment/locale/lb.js",
"./lo": "./node_modules/moment/locale/lo.js",
"./lo.js": "./node_modules/moment/locale/lo.js",
"./lt": "./node_modules/moment/locale/lt.js",
"./lt.js": "./node_modules/moment/locale/lt.js",
"./lv": "./node_modules/moment/locale/lv.js",
"./lv.js": "./node_modules/moment/locale/lv.js",
"./me": "./node_modules/moment/locale/me.js",
"./me.js": "./node_modules/moment/locale/me.js",
"./mi": "./node_modules/moment/locale/mi.js",
"./mi.js": "./node_modules/moment/locale/mi.js",
"./mk": "./node_modules/moment/locale/mk.js",
"./mk.js": "./node_modules/moment/locale/mk.js",
"./ml": "./node_modules/moment/locale/ml.js",
"./ml.js": "./node_modules/moment/locale/ml.js",
"./mn": "./node_modules/moment/locale/mn.js",
"./mn.js": "./node_modules/moment/locale/mn.js",
"./mr": "./node_modules/moment/locale/mr.js",
"./mr.js": "./node_modules/moment/locale/mr.js",
"./ms": "./node_modules/moment/locale/ms.js",
"./ms-my": "./node_modules/moment/locale/ms-my.js",
"./ms-my.js": "./node_modules/moment/locale/ms-my.js",
"./ms.js": "./node_modules/moment/locale/ms.js",
"./mt": "./node_modules/moment/locale/mt.js",
"./mt.js": "./node_modules/moment/locale/mt.js",
"./my": "./node_modules/moment/locale/my.js",
"./my.js": "./node_modules/moment/locale/my.js",
"./nb": "./node_modules/moment/locale/nb.js",
"./nb.js": "./node_modules/moment/locale/nb.js",
"./ne": "./node_modules/moment/locale/ne.js",
"./ne.js": "./node_modules/moment/locale/ne.js",
"./nl": "./node_modules/moment/locale/nl.js",
"./nl-be": "./node_modules/moment/locale/nl-be.js",
"./nl-be.js": "./node_modules/moment/locale/nl-be.js",
"./nl.js": "./node_modules/moment/locale/nl.js",
"./nn": "./node_modules/moment/locale/nn.js",
"./nn.js": "./node_modules/moment/locale/nn.js",
"./oc-lnc": "./node_modules/moment/locale/oc-lnc.js",
"./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js",
"./pa-in": "./node_modules/moment/locale/pa-in.js",
"./pa-in.js": "./node_modules/moment/locale/pa-in.js",
"./pl": "./node_modules/moment/locale/pl.js",
"./pl.js": "./node_modules/moment/locale/pl.js",
"./pt": "./node_modules/moment/locale/pt.js",
"./pt-br": "./node_modules/moment/locale/pt-br.js",
"./pt-br.js": "./node_modules/moment/locale/pt-br.js",
"./pt.js": "./node_modules/moment/locale/pt.js",
"./ro": "./node_modules/moment/locale/ro.js",
"./ro.js": "./node_modules/moment/locale/ro.js",
"./ru": "./node_modules/moment/locale/ru.js",
"./ru.js": "./node_modules/moment/locale/ru.js",
"./sd": "./node_modules/moment/locale/sd.js",
"./sd.js": "./node_modules/moment/locale/sd.js",
"./se": "./node_modules/moment/locale/se.js",
"./se.js": "./node_modules/moment/locale/se.js",
"./si": "./node_modules/moment/locale/si.js",
"./si.js": "./node_modules/moment/locale/si.js",
"./sk": "./node_modules/moment/locale/sk.js",
"./sk.js": "./node_modules/moment/locale/sk.js",
"./sl": "./node_modules/moment/locale/sl.js",
"./sl.js": "./node_modules/moment/locale/sl.js",
"./sq": "./node_modules/moment/locale/sq.js",
"./sq.js": "./node_modules/moment/locale/sq.js",
"./sr": "./node_modules/moment/locale/sr.js",
"./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
"./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
"./sr.js": "./node_modules/moment/locale/sr.js",
"./ss": "./node_modules/moment/locale/ss.js",
"./ss.js": "./node_modules/moment/locale/ss.js",
"./sv": "./node_modules/moment/locale/sv.js",
"./sv.js": "./node_modules/moment/locale/sv.js",
"./sw": "./node_modules/moment/locale/sw.js",
"./sw.js": "./node_modules/moment/locale/sw.js",
"./ta": "./node_modules/moment/locale/ta.js",
"./ta.js": "./node_modules/moment/locale/ta.js",
"./te": "./node_modules/moment/locale/te.js",
"./te.js": "./node_modules/moment/locale/te.js",
"./tet": "./node_modules/moment/locale/tet.js",
"./tet.js": "./node_modules/moment/locale/tet.js",
"./tg": "./node_modules/moment/locale/tg.js",
"./tg.js": "./node_modules/moment/locale/tg.js",
"./th": "./node_modules/moment/locale/th.js",
"./th.js": "./node_modules/moment/locale/th.js",
"./tk": "./node_modules/moment/locale/tk.js",
"./tk.js": "./node_modules/moment/locale/tk.js",
"./tl-ph": "./node_modules/moment/locale/tl-ph.js",
"./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
"./tlh": "./node_modules/moment/locale/tlh.js",
"./tlh.js": "./node_modules/moment/locale/tlh.js",
"./tr": "./node_modules/moment/locale/tr.js",
"./tr.js": "./node_modules/moment/locale/tr.js",
"./tzl": "./node_modules/moment/locale/tzl.js",
"./tzl.js": "./node_modules/moment/locale/tzl.js",
"./tzm": "./node_modules/moment/locale/tzm.js",
"./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
"./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
"./tzm.js": "./node_modules/moment/locale/tzm.js",
"./ug-cn": "./node_modules/moment/locale/ug-cn.js",
"./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
"./uk": "./node_modules/moment/locale/uk.js",
"./uk.js": "./node_modules/moment/locale/uk.js",
"./ur": "./node_modules/moment/locale/ur.js",
"./ur.js": "./node_modules/moment/locale/ur.js",
"./uz": "./node_modules/moment/locale/uz.js",
"./uz-latn": "./node_modules/moment/locale/uz-latn.js",
"./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
"./uz.js": "./node_modules/moment/locale/uz.js",
"./vi": "./node_modules/moment/locale/vi.js",
"./vi.js": "./node_modules/moment/locale/vi.js",
"./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
"./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
"./yo": "./node_modules/moment/locale/yo.js",
"./yo.js": "./node_modules/moment/locale/yo.js",
"./zh-cn": "./node_modules/moment/locale/zh-cn.js",
"./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
"./zh-hk": "./node_modules/moment/locale/zh-hk.js",
"./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
"./zh-mo": "./node_modules/moment/locale/zh-mo.js",
"./zh-mo.js": "./node_modules/moment/locale/zh-mo.js",
"./zh-tw": "./node_modules/moment/locale/zh-tw.js",
"./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
/***/ }),
/***/ "grav-config":
/*!****************************!*\
!*** external "GravAdmin" ***!
\****************************/
/***/ ((module) => {
"use strict";
module.exports = GravAdmin;
/***/ }),
/***/ "jquery":
/*!*************************!*\
!*** external "jQuery" ***!
\*************************/
/***/ ((module) => {
"use strict";
module.exports = jQuery;
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ loaded: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/amd define */
/******/ (() => {
/******/ __webpack_require__.amdD = function () {
/******/ throw new Error('define cannot be used indirect');
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/chunk loaded */
/******/ (() => {
/******/ var deferred = [];
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/ if(chunkIds) {
/******/ priority = priority || 0;
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/ deferred[i] = [chunkIds, fn, priority];
/******/ return;
/******/ }
/******/ var notFulfilled = Infinity;
/******/ for (var i = 0; i < deferred.length; i++) {
/******/ var [chunkIds, fn, priority] = deferred[i];
/******/ var fulfilled = true;
/******/ for (var j = 0; j < chunkIds.length; j++) {
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/ chunkIds.splice(j--, 1);
/******/ } else {
/******/ fulfilled = false;
/******/ if(priority < notFulfilled) notFulfilled = priority;
/******/ }
/******/ }
/******/ if(fulfilled) {
/******/ deferred.splice(i--, 1)
/******/ var r = fn();
/******/ if (r !== undefined) result = r;
/******/ }
/******/ }
/******/ return result;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/global */
/******/ (() => {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/node module decorator */
/******/ (() => {
/******/ __webpack_require__.nmd = (module) => {
/******/ module.paths = [];
/******/ if (!module.children) module.children = [];
/******/ return module;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => {
/******/ // no baseURI
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "admin": 0
/******/ };
/******/
/******/ // no chunk on demand loading
/******/
/******/ // no prefetching
/******/
/******/ // no preloaded
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/
/******/ // install a JSONP callback for chunk loading
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ var [chunkIds, moreModules, runtime] = data;
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0;
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/ for(moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(runtime) var result = runtime(__webpack_require__);
/******/ }
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ installedChunks[chunkId][0]();
/******/ }
/******/ installedChunks[chunkIds[i]] = 0;
/******/ }
/******/ return __webpack_require__.O(result);
/******/ }
/******/
/******/ var chunkLoadingGlobal = self["webpackChunkGrav"] = self["webpackChunkGrav"] || [];
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ })();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["vendor"], () => (__webpack_require__("./app/main.js")))
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/ Grav = __webpack_exports__;
/******/
/******/ })()
;