diff --git a/e5a6ec786fff2625c986.svg b/5201a2440eba670a8427.svg similarity index 99% rename from e5a6ec786fff2625c986.svg rename to 5201a2440eba670a8427.svg index d0a5b3e1..e73af5bc 100644 --- a/e5a6ec786fff2625c986.svg +++ b/5201a2440eba670a8427.svg @@ -1,4 +1,4 @@ -function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import * as React from "react"; var SvgComponent = function SvgComponent(props) { return /*#__PURE__*/React.createElement("svg", _extends({ diff --git a/1778cbe71b934d1b163e.svg b/81e6c56111fa5b3213e8.svg similarity index 99% rename from 1778cbe71b934d1b163e.svg rename to 81e6c56111fa5b3213e8.svg index 1bb2f221..bd5b0df5 100644 --- a/1778cbe71b934d1b163e.svg +++ b/81e6c56111fa5b3213e8.svg @@ -1,4 +1,4 @@ -function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import * as React from "react"; var SvgComponent = function SvgComponent(props) { return /*#__PURE__*/React.createElement("svg", _extends({ diff --git a/88ea5b9a00e97e356c34.svg b/f6351d45ae5818d6bfbf.svg similarity index 99% rename from 88ea5b9a00e97e356c34.svg rename to f6351d45ae5818d6bfbf.svg index e384b0a4..4788a06b 100644 --- a/88ea5b9a00e97e356c34.svg +++ b/f6351d45ae5818d6bfbf.svg @@ -1,4 +1,4 @@ -function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import * as React from "react"; var SvgComponent = function SvgComponent(props) { return /*#__PURE__*/React.createElement("svg", _extends({ diff --git a/index.bundle.js b/index.bundle.js index 6f949414..fe178f9d 100644 --- a/index.bundle.js +++ b/index.bundle.js @@ -27,7 +27,173 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ blue: () => (/* binding */ blue),\n/* harmony export */ cyan: () => (/* binding */ cyan),\n/* harmony export */ geekblue: () => (/* binding */ geekblue),\n/* harmony export */ generate: () => (/* reexport safe */ _generate__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ gold: () => (/* binding */ gold),\n/* harmony export */ gray: () => (/* binding */ gray),\n/* harmony export */ green: () => (/* binding */ green),\n/* harmony export */ grey: () => (/* binding */ grey),\n/* harmony export */ lime: () => (/* binding */ lime),\n/* harmony export */ magenta: () => (/* binding */ magenta),\n/* harmony export */ orange: () => (/* binding */ orange),\n/* harmony export */ presetDarkPalettes: () => (/* binding */ presetDarkPalettes),\n/* harmony export */ presetPalettes: () => (/* binding */ presetPalettes),\n/* harmony export */ presetPrimaryColors: () => (/* binding */ presetPrimaryColors),\n/* harmony export */ purple: () => (/* binding */ purple),\n/* harmony export */ red: () => (/* binding */ red),\n/* harmony export */ volcano: () => (/* binding */ volcano),\n/* harmony export */ yellow: () => (/* binding */ yellow)\n/* harmony export */ });\n/* harmony import */ var _generate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./generate */ \"./node_modules/@ant-design/colors/es/generate.js\");\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = (0,_generate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = (0,_generate__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2VzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFEQUFRO0FBQ2hDOztBQUVBO0FBQ0EsNEJBQTRCLHFEQUFRO0FBQ3BDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2VzL2luZGV4LmpzPzEzMTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdlbmVyYXRlIGZyb20gXCIuL2dlbmVyYXRlXCI7XG52YXIgcHJlc2V0UHJpbWFyeUNvbG9ycyA9IHtcbiAgcmVkOiAnI0Y1MjIyRCcsXG4gIHZvbGNhbm86ICcjRkE1NDFDJyxcbiAgb3JhbmdlOiAnI0ZBOEMxNicsXG4gIGdvbGQ6ICcjRkFBRDE0JyxcbiAgeWVsbG93OiAnI0ZBREIxNCcsXG4gIGxpbWU6ICcjQTBEOTExJyxcbiAgZ3JlZW46ICcjNTJDNDFBJyxcbiAgY3lhbjogJyMxM0MyQzInLFxuICBibHVlOiAnIzE2NzdGRicsXG4gIGdlZWtibHVlOiAnIzJGNTRFQicsXG4gIHB1cnBsZTogJyM3MjJFRDEnLFxuICBtYWdlbnRhOiAnI0VCMkY5NicsXG4gIGdyZXk6ICcjNjY2NjY2J1xufTtcbnZhciBwcmVzZXRQYWxldHRlcyA9IHt9O1xudmFyIHByZXNldERhcmtQYWxldHRlcyA9IHt9O1xuT2JqZWN0LmtleXMocHJlc2V0UHJpbWFyeUNvbG9ycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gIHByZXNldFBhbGV0dGVzW2tleV0gPSBnZW5lcmF0ZShwcmVzZXRQcmltYXJ5Q29sb3JzW2tleV0pO1xuICBwcmVzZXRQYWxldHRlc1trZXldLnByaW1hcnkgPSBwcmVzZXRQYWxldHRlc1trZXldWzVdO1xuXG4gIC8vIGRhcmsgcHJlc2V0UGFsZXR0ZXNcbiAgcHJlc2V0RGFya1BhbGV0dGVzW2tleV0gPSBnZW5lcmF0ZShwcmVzZXRQcmltYXJ5Q29sb3JzW2tleV0sIHtcbiAgICB0aGVtZTogJ2RhcmsnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyMxNDE0MTQnXG4gIH0pO1xuICBwcmVzZXREYXJrUGFsZXR0ZXNba2V5XS5wcmltYXJ5ID0gcHJlc2V0RGFya1BhbGV0dGVzW2tleV1bNV07XG59KTtcbnZhciByZWQgPSBwcmVzZXRQYWxldHRlcy5yZWQ7XG52YXIgdm9sY2FubyA9IHByZXNldFBhbGV0dGVzLnZvbGNhbm87XG52YXIgZ29sZCA9IHByZXNldFBhbGV0dGVzLmdvbGQ7XG52YXIgb3JhbmdlID0gcHJlc2V0UGFsZXR0ZXMub3JhbmdlO1xudmFyIHllbGxvdyA9IHByZXNldFBhbGV0dGVzLnllbGxvdztcbnZhciBsaW1lID0gcHJlc2V0UGFsZXR0ZXMubGltZTtcbnZhciBncmVlbiA9IHByZXNldFBhbGV0dGVzLmdyZWVuO1xudmFyIGN5YW4gPSBwcmVzZXRQYWxldHRlcy5jeWFuO1xudmFyIGJsdWUgPSBwcmVzZXRQYWxldHRlcy5ibHVlO1xudmFyIGdlZWtibHVlID0gcHJlc2V0UGFsZXR0ZXMuZ2Vla2JsdWU7XG52YXIgcHVycGxlID0gcHJlc2V0UGFsZXR0ZXMucHVycGxlO1xudmFyIG1hZ2VudGEgPSBwcmVzZXRQYWxldHRlcy5tYWdlbnRhO1xudmFyIGdyZXkgPSBwcmVzZXRQYWxldHRlcy5ncmV5O1xudmFyIGdyYXkgPSBwcmVzZXRQYWxldHRlcy5ncmV5O1xuZXhwb3J0IHsgZ2VuZXJhdGUsIHByZXNldFBhbGV0dGVzLCBwcmVzZXREYXJrUGFsZXR0ZXMsIHByZXNldFByaW1hcnlDb2xvcnMsIHJlZCwgdm9sY2Fubywgb3JhbmdlLCBnb2xkLCB5ZWxsb3csIGxpbWUsIGdyZWVuLCBjeWFuLCBibHVlLCBnZWVrYmx1ZSwgcHVycGxlLCBtYWdlbnRhLCBncmV5LCBncmF5IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/colors/es/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ blue: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.blue),\n/* harmony export */ blueDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.blueDark),\n/* harmony export */ cyan: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.cyan),\n/* harmony export */ cyanDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.cyanDark),\n/* harmony export */ geekblue: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.geekblue),\n/* harmony export */ geekblueDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.geekblueDark),\n/* harmony export */ generate: () => (/* reexport safe */ _generate__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ gold: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.gold),\n/* harmony export */ goldDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.goldDark),\n/* harmony export */ gray: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.gray),\n/* harmony export */ green: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.green),\n/* harmony export */ greenDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.greenDark),\n/* harmony export */ grey: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.grey),\n/* harmony export */ greyDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.greyDark),\n/* harmony export */ lime: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.lime),\n/* harmony export */ limeDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.limeDark),\n/* harmony export */ magenta: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.magenta),\n/* harmony export */ magentaDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.magentaDark),\n/* harmony export */ orange: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.orange),\n/* harmony export */ orangeDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.orangeDark),\n/* harmony export */ presetDarkPalettes: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.presetDarkPalettes),\n/* harmony export */ presetPalettes: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.presetPalettes),\n/* harmony export */ presetPrimaryColors: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.presetPrimaryColors),\n/* harmony export */ purple: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.purple),\n/* harmony export */ purpleDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.purpleDark),\n/* harmony export */ red: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.red),\n/* harmony export */ redDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.redDark),\n/* harmony export */ volcano: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.volcano),\n/* harmony export */ volcanoDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.volcanoDark),\n/* harmony export */ yellow: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.yellow),\n/* harmony export */ yellowDark: () => (/* reexport safe */ _presets__WEBPACK_IMPORTED_MODULE_1__.yellowDark)\n/* harmony export */ });\n/* harmony import */ var _generate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./generate */ \"./node_modules/@ant-design/colors/es/generate.js\");\n/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./presets */ \"./node_modules/@ant-design/colors/es/presets.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types */ \"./node_modules/@ant-design/colors/es/types.js\");\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2VzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBaUQ7QUFDdkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NvbG9ycy9lcy9pbmRleC5qcz8xMzE5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgZ2VuZXJhdGUgfSBmcm9tIFwiLi9nZW5lcmF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJlc2V0c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/colors/es/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/colors/es/presets.js": +/*!*******************************************************!*\ + !*** ./node_modules/@ant-design/colors/es/presets.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 */ blue: () => (/* binding */ blue),\n/* harmony export */ blueDark: () => (/* binding */ blueDark),\n/* harmony export */ cyan: () => (/* binding */ cyan),\n/* harmony export */ cyanDark: () => (/* binding */ cyanDark),\n/* harmony export */ geekblue: () => (/* binding */ geekblue),\n/* harmony export */ geekblueDark: () => (/* binding */ geekblueDark),\n/* harmony export */ gold: () => (/* binding */ gold),\n/* harmony export */ goldDark: () => (/* binding */ goldDark),\n/* harmony export */ gray: () => (/* binding */ gray),\n/* harmony export */ green: () => (/* binding */ green),\n/* harmony export */ greenDark: () => (/* binding */ greenDark),\n/* harmony export */ grey: () => (/* binding */ grey),\n/* harmony export */ greyDark: () => (/* binding */ greyDark),\n/* harmony export */ lime: () => (/* binding */ lime),\n/* harmony export */ limeDark: () => (/* binding */ limeDark),\n/* harmony export */ magenta: () => (/* binding */ magenta),\n/* harmony export */ magentaDark: () => (/* binding */ magentaDark),\n/* harmony export */ orange: () => (/* binding */ orange),\n/* harmony export */ orangeDark: () => (/* binding */ orangeDark),\n/* harmony export */ presetDarkPalettes: () => (/* binding */ presetDarkPalettes),\n/* harmony export */ presetPalettes: () => (/* binding */ presetPalettes),\n/* harmony export */ presetPrimaryColors: () => (/* binding */ presetPrimaryColors),\n/* harmony export */ purple: () => (/* binding */ purple),\n/* harmony export */ purpleDark: () => (/* binding */ purpleDark),\n/* harmony export */ red: () => (/* binding */ red),\n/* harmony export */ redDark: () => (/* binding */ redDark),\n/* harmony export */ volcano: () => (/* binding */ volcano),\n/* harmony export */ volcanoDark: () => (/* binding */ volcanoDark),\n/* harmony export */ yellow: () => (/* binding */ yellow),\n/* harmony export */ yellowDark: () => (/* binding */ yellowDark)\n/* harmony export */ });\n// Generated by script. Do NOT modify!\n\nvar presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nvar red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nvar volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nvar orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nvar gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nvar yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nvar lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nvar green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nvar cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nvar blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nvar geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nvar purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nvar magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nvar grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nvar gray = grey;\nvar presetPalettes = {\n red: red,\n volcano: volcano,\n orange: orange,\n gold: gold,\n yellow: yellow,\n lime: lime,\n green: green,\n cyan: cyan,\n blue: blue,\n geekblue: geekblue,\n purple: purple,\n magenta: magenta,\n grey: grey\n};\nvar redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nvar volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nvar orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nvar goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nvar yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nvar limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nvar greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nvar cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nvar blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nvar geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nvar purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nvar magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nvar greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nvar presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2VzL3ByZXNldHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDTztBQUNQO0FBQ087QUFDUDtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2VzL3ByZXNldHMuanM/MzZhYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgc2NyaXB0LiBEbyBOT1QgbW9kaWZ5IVxuXG5leHBvcnQgdmFyIHByZXNldFByaW1hcnlDb2xvcnMgPSB7XG4gIFwicmVkXCI6IFwiI0Y1MjIyRFwiLFxuICBcInZvbGNhbm9cIjogXCIjRkE1NDFDXCIsXG4gIFwib3JhbmdlXCI6IFwiI0ZBOEMxNlwiLFxuICBcImdvbGRcIjogXCIjRkFBRDE0XCIsXG4gIFwieWVsbG93XCI6IFwiI0ZBREIxNFwiLFxuICBcImxpbWVcIjogXCIjQTBEOTExXCIsXG4gIFwiZ3JlZW5cIjogXCIjNTJDNDFBXCIsXG4gIFwiY3lhblwiOiBcIiMxM0MyQzJcIixcbiAgXCJibHVlXCI6IFwiIzE2NzdGRlwiLFxuICBcImdlZWtibHVlXCI6IFwiIzJGNTRFQlwiLFxuICBcInB1cnBsZVwiOiBcIiM3MjJFRDFcIixcbiAgXCJtYWdlbnRhXCI6IFwiI0VCMkY5NlwiLFxuICBcImdyZXlcIjogXCIjNjY2NjY2XCJcbn07XG5leHBvcnQgdmFyIHJlZCA9IFtcIiNmZmYxZjBcIiwgXCIjZmZjY2M3XCIsIFwiI2ZmYTM5ZVwiLCBcIiNmZjc4NzVcIiwgXCIjZmY0ZDRmXCIsIFwiI2Y1MjIyZFwiLCBcIiNjZjEzMjJcIiwgXCIjYTgwNzFhXCIsIFwiIzgyMDAxNFwiLCBcIiM1YzAwMTFcIl07XG5yZWQucHJpbWFyeSA9IHJlZFs1XTtcbmV4cG9ydCB2YXIgdm9sY2FubyA9IFtcIiNmZmYyZThcIiwgXCIjZmZkOGJmXCIsIFwiI2ZmYmI5NlwiLCBcIiNmZjljNmVcIiwgXCIjZmY3YTQ1XCIsIFwiI2ZhNTQxY1wiLCBcIiNkNDM4MGRcIiwgXCIjYWQyMTAyXCIsIFwiIzg3MTQwMFwiLCBcIiM2MTBiMDBcIl07XG52b2xjYW5vLnByaW1hcnkgPSB2b2xjYW5vWzVdO1xuZXhwb3J0IHZhciBvcmFuZ2UgPSBbXCIjZmZmN2U2XCIsIFwiI2ZmZTdiYVwiLCBcIiNmZmQ1OTFcIiwgXCIjZmZjMDY5XCIsIFwiI2ZmYTk0MFwiLCBcIiNmYThjMTZcIiwgXCIjZDQ2YjA4XCIsIFwiI2FkNGUwMFwiLCBcIiM4NzM4MDBcIiwgXCIjNjEyNTAwXCJdO1xub3JhbmdlLnByaW1hcnkgPSBvcmFuZ2VbNV07XG5leHBvcnQgdmFyIGdvbGQgPSBbXCIjZmZmYmU2XCIsIFwiI2ZmZjFiOFwiLCBcIiNmZmU1OGZcIiwgXCIjZmZkNjY2XCIsIFwiI2ZmYzUzZFwiLCBcIiNmYWFkMTRcIiwgXCIjZDQ4ODA2XCIsIFwiI2FkNjgwMFwiLCBcIiM4NzRkMDBcIiwgXCIjNjEzNDAwXCJdO1xuZ29sZC5wcmltYXJ5ID0gZ29sZFs1XTtcbmV4cG9ydCB2YXIgeWVsbG93ID0gW1wiI2ZlZmZlNlwiLCBcIiNmZmZmYjhcIiwgXCIjZmZmYjhmXCIsIFwiI2ZmZjU2NlwiLCBcIiNmZmVjM2RcIiwgXCIjZmFkYjE0XCIsIFwiI2Q0YjEwNlwiLCBcIiNhZDhiMDBcIiwgXCIjODc2ODAwXCIsIFwiIzYxNDcwMFwiXTtcbnllbGxvdy5wcmltYXJ5ID0geWVsbG93WzVdO1xuZXhwb3J0IHZhciBsaW1lID0gW1wiI2ZjZmZlNlwiLCBcIiNmNGZmYjhcIiwgXCIjZWFmZjhmXCIsIFwiI2QzZjI2MVwiLCBcIiNiYWU2MzdcIiwgXCIjYTBkOTExXCIsIFwiIzdjYjMwNVwiLCBcIiM1YjhjMDBcIiwgXCIjM2Y2NjAwXCIsIFwiIzI1NDAwMFwiXTtcbmxpbWUucHJpbWFyeSA9IGxpbWVbNV07XG5leHBvcnQgdmFyIGdyZWVuID0gW1wiI2Y2ZmZlZFwiLCBcIiNkOWY3YmVcIiwgXCIjYjdlYjhmXCIsIFwiIzk1ZGU2NFwiLCBcIiM3M2QxM2RcIiwgXCIjNTJjNDFhXCIsIFwiIzM4OWUwZFwiLCBcIiMyMzc4MDRcIiwgXCIjMTM1MjAwXCIsIFwiIzA5MmIwMFwiXTtcbmdyZWVuLnByaW1hcnkgPSBncmVlbls1XTtcbmV4cG9ydCB2YXIgY3lhbiA9IFtcIiNlNmZmZmJcIiwgXCIjYjVmNWVjXCIsIFwiIzg3ZThkZVwiLCBcIiM1Y2RiZDNcIiwgXCIjMzZjZmM5XCIsIFwiIzEzYzJjMlwiLCBcIiMwODk3OWNcIiwgXCIjMDA2ZDc1XCIsIFwiIzAwNDc0ZlwiLCBcIiMwMDIzMjlcIl07XG5jeWFuLnByaW1hcnkgPSBjeWFuWzVdO1xuZXhwb3J0IHZhciBibHVlID0gW1wiI2U2ZjRmZlwiLCBcIiNiYWUwZmZcIiwgXCIjOTFjYWZmXCIsIFwiIzY5YjFmZlwiLCBcIiM0MDk2ZmZcIiwgXCIjMTY3N2ZmXCIsIFwiIzA5NThkOVwiLCBcIiMwMDNlYjNcIiwgXCIjMDAyYzhjXCIsIFwiIzAwMWQ2NlwiXTtcbmJsdWUucHJpbWFyeSA9IGJsdWVbNV07XG5leHBvcnQgdmFyIGdlZWtibHVlID0gW1wiI2YwZjVmZlwiLCBcIiNkNmU0ZmZcIiwgXCIjYWRjNmZmXCIsIFwiIzg1YTVmZlwiLCBcIiM1OTdlZjdcIiwgXCIjMmY1NGViXCIsIFwiIzFkMzljNFwiLCBcIiMxMDIzOWVcIiwgXCIjMDYxMTc4XCIsIFwiIzAzMDg1MlwiXTtcbmdlZWtibHVlLnByaW1hcnkgPSBnZWVrYmx1ZVs1XTtcbmV4cG9ydCB2YXIgcHVycGxlID0gW1wiI2Y5ZjBmZlwiLCBcIiNlZmRiZmZcIiwgXCIjZDNhZGY3XCIsIFwiI2IzN2ZlYlwiLCBcIiM5MjU0ZGVcIiwgXCIjNzIyZWQxXCIsIFwiIzUzMWRhYlwiLCBcIiMzOTEwODVcIiwgXCIjMjIwNzVlXCIsIFwiIzEyMDMzOFwiXTtcbnB1cnBsZS5wcmltYXJ5ID0gcHVycGxlWzVdO1xuZXhwb3J0IHZhciBtYWdlbnRhID0gW1wiI2ZmZjBmNlwiLCBcIiNmZmQ2ZTdcIiwgXCIjZmZhZGQyXCIsIFwiI2ZmODVjMFwiLCBcIiNmNzU5YWJcIiwgXCIjZWIyZjk2XCIsIFwiI2M0MWQ3ZlwiLCBcIiM5ZTEwNjhcIiwgXCIjNzgwNjUwXCIsIFwiIzUyMDMzOVwiXTtcbm1hZ2VudGEucHJpbWFyeSA9IG1hZ2VudGFbNV07XG5leHBvcnQgdmFyIGdyZXkgPSBbXCIjYTZhNmE2XCIsIFwiIzk5OTk5OVwiLCBcIiM4YzhjOGNcIiwgXCIjODA4MDgwXCIsIFwiIzczNzM3M1wiLCBcIiM2NjY2NjZcIiwgXCIjNDA0MDQwXCIsIFwiIzFhMWExYVwiLCBcIiMwMDAwMDBcIiwgXCIjMDAwMDAwXCJdO1xuZ3JleS5wcmltYXJ5ID0gZ3JleVs1XTtcbmV4cG9ydCB2YXIgZ3JheSA9IGdyZXk7XG5leHBvcnQgdmFyIHByZXNldFBhbGV0dGVzID0ge1xuICByZWQ6IHJlZCxcbiAgdm9sY2Fubzogdm9sY2FubyxcbiAgb3JhbmdlOiBvcmFuZ2UsXG4gIGdvbGQ6IGdvbGQsXG4gIHllbGxvdzogeWVsbG93LFxuICBsaW1lOiBsaW1lLFxuICBncmVlbjogZ3JlZW4sXG4gIGN5YW46IGN5YW4sXG4gIGJsdWU6IGJsdWUsXG4gIGdlZWtibHVlOiBnZWVrYmx1ZSxcbiAgcHVycGxlOiBwdXJwbGUsXG4gIG1hZ2VudGE6IG1hZ2VudGEsXG4gIGdyZXk6IGdyZXlcbn07XG5leHBvcnQgdmFyIHJlZERhcmsgPSBbXCIjMmExMjE1XCIsIFwiIzQzMTQxOFwiLCBcIiM1ODE4MWNcIiwgXCIjNzkxYTFmXCIsIFwiI2E2MWQyNFwiLCBcIiNkMzIwMjlcIiwgXCIjZTg0NzQ5XCIsIFwiI2YzNzM3MFwiLCBcIiNmODlmOWFcIiwgXCIjZmFjOGMzXCJdO1xucmVkRGFyay5wcmltYXJ5ID0gcmVkRGFya1s1XTtcbmV4cG9ydCB2YXIgdm9sY2Fub0RhcmsgPSBbXCIjMmIxNjExXCIsIFwiIzQ0MWQxMlwiLCBcIiM1OTI3MTZcIiwgXCIjN2MzMTE4XCIsIFwiI2FhM2UxOVwiLCBcIiNkODRhMWJcIiwgXCIjZTg3MDQwXCIsIFwiI2YzOTU2YVwiLCBcIiNmOGI2OTJcIiwgXCIjZmFkNGJjXCJdO1xudm9sY2Fub0RhcmsucHJpbWFyeSA9IHZvbGNhbm9EYXJrWzVdO1xuZXhwb3J0IHZhciBvcmFuZ2VEYXJrID0gW1wiIzJiMWQxMVwiLCBcIiM0NDJhMTFcIiwgXCIjNTkzODE1XCIsIFwiIzdjNGExNVwiLCBcIiNhYTYyMTVcIiwgXCIjZDg3YTE2XCIsIFwiI2U4OWEzY1wiLCBcIiNmM2I3NjVcIiwgXCIjZjhjZjhkXCIsIFwiI2ZhZTNiN1wiXTtcbm9yYW5nZURhcmsucHJpbWFyeSA9IG9yYW5nZURhcmtbNV07XG5leHBvcnQgdmFyIGdvbGREYXJrID0gW1wiIzJiMjExMVwiLCBcIiM0NDMxMTFcIiwgXCIjNTk0MjE0XCIsIFwiIzdjNTkxNFwiLCBcIiNhYTc3MTRcIiwgXCIjZDg5NjE0XCIsIFwiI2U4YjMzOVwiLCBcIiNmM2NjNjJcIiwgXCIjZjhkZjhiXCIsIFwiI2ZhZWRiNVwiXTtcbmdvbGREYXJrLnByaW1hcnkgPSBnb2xkRGFya1s1XTtcbmV4cG9ydCB2YXIgeWVsbG93RGFyayA9IFtcIiMyYjI2MTFcIiwgXCIjNDQzYjExXCIsIFwiIzU5NTAxNFwiLCBcIiM3YzZlMTRcIiwgXCIjYWE5NTE0XCIsIFwiI2Q4YmQxNFwiLCBcIiNlOGQ2MzlcIiwgXCIjZjNlYTYyXCIsIFwiI2Y4ZjQ4YlwiLCBcIiNmYWZhYjVcIl07XG55ZWxsb3dEYXJrLnByaW1hcnkgPSB5ZWxsb3dEYXJrWzVdO1xuZXhwb3J0IHZhciBsaW1lRGFyayA9IFtcIiMxZjI2MTFcIiwgXCIjMmUzYzEwXCIsIFwiIzNlNGYxM1wiLCBcIiM1MzZkMTNcIiwgXCIjNmY5NDEyXCIsIFwiIzhiYmIxMVwiLCBcIiNhOWQxMzRcIiwgXCIjYzllNzVkXCIsIFwiI2U0Zjg4YlwiLCBcIiNmMGZhYjVcIl07XG5saW1lRGFyay5wcmltYXJ5ID0gbGltZURhcmtbNV07XG5leHBvcnQgdmFyIGdyZWVuRGFyayA9IFtcIiMxNjIzMTJcIiwgXCIjMWQzNzEyXCIsIFwiIzI3NDkxNlwiLCBcIiMzMDYzMTdcIiwgXCIjM2M4NjE4XCIsIFwiIzQ5YWExOVwiLCBcIiM2YWJlMzlcIiwgXCIjOGZkNDYwXCIsIFwiI2IyZTU4YlwiLCBcIiNkNWYyYmJcIl07XG5ncmVlbkRhcmsucHJpbWFyeSA9IGdyZWVuRGFya1s1XTtcbmV4cG9ydCB2YXIgY3lhbkRhcmsgPSBbXCIjMTEyMTIzXCIsIFwiIzExMzUzNlwiLCBcIiMxNDQ4NDhcIiwgXCIjMTQ2MjYyXCIsIFwiIzEzODU4NVwiLCBcIiMxM2E4YThcIiwgXCIjMzNiY2I3XCIsIFwiIzU4ZDFjOVwiLCBcIiM4NGUyZDhcIiwgXCIjYjJmMWU4XCJdO1xuY3lhbkRhcmsucHJpbWFyeSA9IGN5YW5EYXJrWzVdO1xuZXhwb3J0IHZhciBibHVlRGFyayA9IFtcIiMxMTFhMmNcIiwgXCIjMTEyNTQ1XCIsIFwiIzE1MzI1YlwiLCBcIiMxNTQxN2VcIiwgXCIjMTU1NGFkXCIsIFwiIzE2NjhkY1wiLCBcIiMzYzg5ZThcIiwgXCIjNjVhOWYzXCIsIFwiIzhkYzVmOFwiLCBcIiNiN2RjZmFcIl07XG5ibHVlRGFyay5wcmltYXJ5ID0gYmx1ZURhcmtbNV07XG5leHBvcnQgdmFyIGdlZWtibHVlRGFyayA9IFtcIiMxMzE2MjlcIiwgXCIjMTYxZDQwXCIsIFwiIzFjMjc1NVwiLCBcIiMyMDMxNzVcIiwgXCIjMjYzZWEwXCIsIFwiIzJiNGFjYlwiLCBcIiM1MjczZTBcIiwgXCIjN2Y5ZWYzXCIsIFwiI2E4YzFmOFwiLCBcIiNkMmUwZmFcIl07XG5nZWVrYmx1ZURhcmsucHJpbWFyeSA9IGdlZWtibHVlRGFya1s1XTtcbmV4cG9ydCB2YXIgcHVycGxlRGFyayA9IFtcIiMxYTEzMjVcIiwgXCIjMjQxNjNhXCIsIFwiIzMwMWM0ZFwiLCBcIiMzZTIwNjlcIiwgXCIjNTEyNThmXCIsIFwiIzY0MmFiNVwiLCBcIiM4NTRlY2FcIiwgXCIjYWI3YWUwXCIsIFwiI2NkYThmMFwiLCBcIiNlYmQ3ZmFcIl07XG5wdXJwbGVEYXJrLnByaW1hcnkgPSBwdXJwbGVEYXJrWzVdO1xuZXhwb3J0IHZhciBtYWdlbnRhRGFyayA9IFtcIiMyOTEzMjFcIiwgXCIjNDAxNjJmXCIsIFwiIzU1MWMzYlwiLCBcIiM3NTIwNGZcIiwgXCIjYTAyNjY5XCIsIFwiI2NiMmI4M1wiLCBcIiNlMDUyOWNcIiwgXCIjZjM3ZmI3XCIsIFwiI2Y4YThjY1wiLCBcIiNmYWQyZTNcIl07XG5tYWdlbnRhRGFyay5wcmltYXJ5ID0gbWFnZW50YURhcmtbNV07XG5leHBvcnQgdmFyIGdyZXlEYXJrID0gW1wiIzE1MTUxNVwiLCBcIiMxZjFmMWZcIiwgXCIjMmQyZDJkXCIsIFwiIzM5MzkzOVwiLCBcIiM0OTQ5NDlcIiwgXCIjNWE1YTVhXCIsIFwiIzZhNmE2YVwiLCBcIiM3YjdiN2JcIiwgXCIjODg4ODg4XCIsIFwiIzk2OTY5NlwiXTtcbmdyZXlEYXJrLnByaW1hcnkgPSBncmV5RGFya1s1XTtcbmV4cG9ydCB2YXIgcHJlc2V0RGFya1BhbGV0dGVzID0ge1xuICByZWQ6IHJlZERhcmssXG4gIHZvbGNhbm86IHZvbGNhbm9EYXJrLFxuICBvcmFuZ2U6IG9yYW5nZURhcmssXG4gIGdvbGQ6IGdvbGREYXJrLFxuICB5ZWxsb3c6IHllbGxvd0RhcmssXG4gIGxpbWU6IGxpbWVEYXJrLFxuICBncmVlbjogZ3JlZW5EYXJrLFxuICBjeWFuOiBjeWFuRGFyayxcbiAgYmx1ZTogYmx1ZURhcmssXG4gIGdlZWtibHVlOiBnZWVrYmx1ZURhcmssXG4gIHB1cnBsZTogcHVycGxlRGFyayxcbiAgbWFnZW50YTogbWFnZW50YURhcmssXG4gIGdyZXk6IGdyZXlEYXJrXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/colors/es/presets.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/colors/es/types.js": +/*!*****************************************************!*\ + !*** ./node_modules/@ant-design/colors/es/types.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js": +/*!********************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.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_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\n\n\n\nvar BEAT_LIMIT = 1000 * 60 * 10;\n\n/**\n * A helper class to map keys to values.\n * It supports both primitive keys and object keys.\n */\nvar ArrayKeyMap = /*#__PURE__*/function () {\n function ArrayKeyMap() {\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, ArrayKeyMap);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, \"map\", new Map());\n // Use WeakMap to avoid memory leak\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, \"objectIDMap\", new WeakMap());\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, \"nextID\", 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, \"lastAccessBeat\", new Map());\n // We will clean up the cache when reach the limit\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, \"accessBeat\", 0);\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(ArrayKeyMap, [{\n key: \"set\",\n value: function set(keys, value) {\n // New set will trigger clear\n this.clear();\n\n // Set logic\n var compositeKey = this.getCompositeKey(keys);\n this.map.set(compositeKey, value);\n this.lastAccessBeat.set(compositeKey, Date.now());\n }\n }, {\n key: \"get\",\n value: function get(keys) {\n var compositeKey = this.getCompositeKey(keys);\n var cache = this.map.get(compositeKey);\n this.lastAccessBeat.set(compositeKey, Date.now());\n this.accessBeat += 1;\n return cache;\n }\n }, {\n key: \"getCompositeKey\",\n value: function getCompositeKey(keys) {\n var _this = this;\n var ids = keys.map(function (key) {\n if (key && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key) === 'object') {\n return \"obj_\".concat(_this.getObjectID(key));\n }\n return \"\".concat((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key), \"_\").concat(key);\n });\n return ids.join('|');\n }\n }, {\n key: \"getObjectID\",\n value: function getObjectID(obj) {\n if (this.objectIDMap.has(obj)) {\n return this.objectIDMap.get(obj);\n }\n var id = this.nextID;\n this.objectIDMap.set(obj, id);\n this.nextID += 1;\n return id;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this2 = this;\n if (this.accessBeat > 10000) {\n var now = Date.now();\n this.lastAccessBeat.forEach(function (beat, key) {\n if (now - beat > BEAT_LIMIT) {\n _this2.map.delete(key);\n _this2.lastAccessBeat.delete(key);\n }\n });\n this.accessBeat = 0;\n }\n }\n }]);\n return ArrayKeyMap;\n}();\nvar uniqueMap = new ArrayKeyMap();\n\n/**\n * Like `useMemo`, but this hook result will be shared across all instances.\n */\nfunction useUniqueMemo(memoFn, deps) {\n return react__WEBPACK_IMPORTED_MODULE_4__.useMemo(function () {\n var cachedValue = uniqueMap.get(deps);\n if (cachedValue) {\n return cachedValue;\n }\n var newValue = memoFn();\n uniqueMap.set(deps, newValue);\n return newValue;\n }, deps);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useUniqueMemo);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy9fdXRpbC9ob29rcy91c2VVbmlxdWVNZW1vLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF3RDtBQUNnQjtBQUNOO0FBQ007QUFDOUM7QUFDMUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQixJQUFJLHFGQUFlO0FBQ25CO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQixJQUFJLHFGQUFlO0FBQ25CLElBQUkscUZBQWU7QUFDbkI7QUFDQSxJQUFJLHFGQUFlO0FBQ25CO0FBQ0EsRUFBRSxrRkFBWTtBQUNkO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw2RUFBTztBQUMxQjtBQUNBO0FBQ0EseUJBQXlCLDZFQUFPO0FBQ2hDLE9BQU87QUFDUDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLENBQUM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsMENBQWE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL191dGlsL2hvb2tzL3VzZVVuaXF1ZU1lbW8uanM/YjRhZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIEJFQVRfTElNSVQgPSAxMDAwICogNjAgKiAxMDtcblxuLyoqXG4gKiBBIGhlbHBlciBjbGFzcyB0byBtYXAga2V5cyB0byB2YWx1ZXMuXG4gKiBJdCBzdXBwb3J0cyBib3RoIHByaW1pdGl2ZSBrZXlzIGFuZCBvYmplY3Qga2V5cy5cbiAqL1xudmFyIEFycmF5S2V5TWFwID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gQXJyYXlLZXlNYXAoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFycmF5S2V5TWFwKTtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJtYXBcIiwgbmV3IE1hcCgpKTtcbiAgICAvLyBVc2UgV2Vha01hcCB0byBhdm9pZCBtZW1vcnkgbGVha1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIm9iamVjdElETWFwXCIsIG5ldyBXZWFrTWFwKCkpO1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIm5leHRJRFwiLCAwKTtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJsYXN0QWNjZXNzQmVhdFwiLCBuZXcgTWFwKCkpO1xuICAgIC8vIFdlIHdpbGwgY2xlYW4gdXAgdGhlIGNhY2hlIHdoZW4gcmVhY2ggdGhlIGxpbWl0XG4gICAgX2RlZmluZVByb3BlcnR5KHRoaXMsIFwiYWNjZXNzQmVhdFwiLCAwKTtcbiAgfVxuICBfY3JlYXRlQ2xhc3MoQXJyYXlLZXlNYXAsIFt7XG4gICAga2V5OiBcInNldFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXQoa2V5cywgdmFsdWUpIHtcbiAgICAgIC8vIE5ldyBzZXQgd2lsbCB0cmlnZ2VyIGNsZWFyXG4gICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgIC8vIFNldCBsb2dpY1xuICAgICAgdmFyIGNvbXBvc2l0ZUtleSA9IHRoaXMuZ2V0Q29tcG9zaXRlS2V5KGtleXMpO1xuICAgICAgdGhpcy5tYXAuc2V0KGNvbXBvc2l0ZUtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5sYXN0QWNjZXNzQmVhdC5zZXQoY29tcG9zaXRlS2V5LCBEYXRlLm5vdygpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldChrZXlzKSB7XG4gICAgICB2YXIgY29tcG9zaXRlS2V5ID0gdGhpcy5nZXRDb21wb3NpdGVLZXkoa2V5cyk7XG4gICAgICB2YXIgY2FjaGUgPSB0aGlzLm1hcC5nZXQoY29tcG9zaXRlS2V5KTtcbiAgICAgIHRoaXMubGFzdEFjY2Vzc0JlYXQuc2V0KGNvbXBvc2l0ZUtleSwgRGF0ZS5ub3coKSk7XG4gICAgICB0aGlzLmFjY2Vzc0JlYXQgKz0gMTtcbiAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q29tcG9zaXRlS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldENvbXBvc2l0ZUtleShrZXlzKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgdmFyIGlkcyA9IGtleXMubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKGtleSAmJiBfdHlwZW9mKGtleSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIFwib2JqX1wiLmNvbmNhdChfdGhpcy5nZXRPYmplY3RJRChrZXkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3R5cGVvZihrZXkpLCBcIl9cIikuY29uY2F0KGtleSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpZHMuam9pbignfCcpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRPYmplY3RJRFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRPYmplY3RJRChvYmopIHtcbiAgICAgIGlmICh0aGlzLm9iamVjdElETWFwLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdElETWFwLmdldChvYmopO1xuICAgICAgfVxuICAgICAgdmFyIGlkID0gdGhpcy5uZXh0SUQ7XG4gICAgICB0aGlzLm9iamVjdElETWFwLnNldChvYmosIGlkKTtcbiAgICAgIHRoaXMubmV4dElEICs9IDE7XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNsZWFyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG4gICAgICBpZiAodGhpcy5hY2Nlc3NCZWF0ID4gMTAwMDApIHtcbiAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMubGFzdEFjY2Vzc0JlYXQuZm9yRWFjaChmdW5jdGlvbiAoYmVhdCwga2V5KSB7XG4gICAgICAgICAgaWYgKG5vdyAtIGJlYXQgPiBCRUFUX0xJTUlUKSB7XG4gICAgICAgICAgICBfdGhpczIubWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgX3RoaXMyLmxhc3RBY2Nlc3NCZWF0LmRlbGV0ZShrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWNjZXNzQmVhdCA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBBcnJheUtleU1hcDtcbn0oKTtcbnZhciB1bmlxdWVNYXAgPSBuZXcgQXJyYXlLZXlNYXAoKTtcblxuLyoqXG4gKiBMaWtlIGB1c2VNZW1vYCwgYnV0IHRoaXMgaG9vayByZXN1bHQgd2lsbCBiZSBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMuXG4gKi9cbmZ1bmN0aW9uIHVzZVVuaXF1ZU1lbW8obWVtb0ZuLCBkZXBzKSB7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY2FjaGVkVmFsdWUgPSB1bmlxdWVNYXAuZ2V0KGRlcHMpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlO1xuICAgIH1cbiAgICB2YXIgbmV3VmFsdWUgPSBtZW1vRm4oKTtcbiAgICB1bmlxdWVNYXAuc2V0KGRlcHMsIG5ld1ZhbHVlKTtcbiAgICByZXR1cm4gbmV3VmFsdWU7XG4gIH0sIGRlcHMpO1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlVW5pcXVlTWVtbzsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.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/**\n * Provide a default hook since not everyone needs to config this.\n */\nvar useDefaultCSP = function useDefaultCSP() {\n return {};\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDefaultCSP);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy9ob29rcy91c2VDU1AuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMtdXRpbHMvZXMvaG9va3MvdXNlQ1NQLmpzPzZlMzEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm92aWRlIGEgZGVmYXVsdCBob29rIHNpbmNlIG5vdCBldmVyeW9uZSBuZWVkcyB0byBjb25maWcgdGhpcy5cbiAqL1xudmFyIHVzZURlZmF1bHRDU1AgPSBmdW5jdGlvbiB1c2VEZWZhdWx0Q1NQKCkge1xuICByZXR1cm4ge307XG59O1xuZXhwb3J0IGRlZmF1bHQgdXNlRGVmYXVsdENTUDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/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 */ genCalc: () => (/* reexport safe */ _util_calc__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ genStyleUtils: () => (/* reexport safe */ _util_genStyleUtils__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ mergeToken: () => (/* reexport safe */ _util_statistic__WEBPACK_IMPORTED_MODULE_2__.merge),\n/* harmony export */ statistic: () => (/* reexport safe */ _util_statistic__WEBPACK_IMPORTED_MODULE_2__.statistic),\n/* harmony export */ statisticToken: () => (/* reexport safe */ _util_statistic__WEBPACK_IMPORTED_MODULE_2__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _util_genStyleUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/genStyleUtils */ \"./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js\");\n/* harmony import */ var _util_calc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/calc */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js\");\n/* harmony import */ var _util_statistic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/statistic */ \"./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js\");\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFnRTtBQUNmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL2luZGV4LmpzP2I3ZjEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBnZW5TdHlsZVV0aWxzIH0gZnJvbSBcIi4vdXRpbC9nZW5TdHlsZVV0aWxzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGdlbkNhbGMgfSBmcm9tIFwiLi91dGlsL2NhbGNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3RhdGlzdGljVG9rZW4sIG1lcmdlIGFzIG1lcmdlVG9rZW4sIHN0YXRpc3RpYyB9IGZyb20gXCIuL3V0aWwvc3RhdGlzdGljXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.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 */ CSSCalculator)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _calculator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./calculator */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js\");\n\n\n\n\n\n\n\n\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n if (typeof value === 'number') {\n return \"\".concat(value).concat(CALC_UNIT);\n }\n return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(CSSCalculator, _AbstractCalculator);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(CSSCalculator);\n function CSSCalculator(num, unitlessCssVar) {\n var _this;\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, CSSCalculator);\n _this = _super.call(this);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"result\", '');\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"unitlessCssVar\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"lowPriority\", void 0);\n var numType = (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(num);\n _this.unitlessCssVar = unitlessCssVar;\n if (num instanceof CSSCalculator) {\n _this.result = \"(\".concat(num.result, \")\");\n } else if (numType === 'number') {\n _this.result = unit(num);\n } else if (numType === 'string') {\n _this.result = num;\n }\n return _this;\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(CSSCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" * \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" / \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"getResult\",\n value: function getResult(force) {\n return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n }\n }, {\n key: \"equal\",\n value: function equal(options) {\n var _this2 = this;\n var _ref = options || {},\n cssUnit = _ref.unit;\n var mergedUnit = true;\n if (typeof cssUnit === 'boolean') {\n mergedUnit = cssUnit;\n } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n return _this2.result.includes(cssVar);\n })) {\n mergedUnit = false;\n }\n this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n if (typeof this.lowPriority !== 'undefined') {\n return \"calc(\".concat(this.result, \")\");\n }\n return this.result;\n }\n }]);\n return CSSCalculator;\n}(_calculator__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2NhbGMvQ1NTQ2FsY3VsYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBd0Q7QUFDZ0I7QUFDTjtBQUNvQjtBQUMxQjtBQUNNO0FBQ007QUFDMUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSwrRUFBUztBQUNYLGVBQWUsa0ZBQVk7QUFDM0I7QUFDQTtBQUNBLElBQUkscUZBQWU7QUFDbkI7QUFDQSxJQUFJLHFGQUFlLENBQUMsNEZBQXNCO0FBQzFDLElBQUkscUZBQWUsQ0FBQyw0RkFBc0I7QUFDMUMsSUFBSSxxRkFBZSxDQUFDLDRGQUFzQjtBQUMxQyxrQkFBa0IsNkVBQU87QUFDekI7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxrRkFBWTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDLENBQUMsbURBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL3V0aWwvY2FsYy9DU1NDYWxjdWxhdG9yLmpzP2JjNjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgQWJzdHJhY3RDYWxjdWxhdG9yIGZyb20gXCIuL2NhbGN1bGF0b3JcIjtcbnZhciBDQUxDX1VOSVQgPSAnQ0FMQ19VTklUJztcbnZhciByZWdleHAgPSBuZXcgUmVnRXhwKENBTENfVU5JVCwgJ2cnKTtcbmZ1bmN0aW9uIHVuaXQodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQodmFsdWUpLmNvbmNhdChDQUxDX1VOSVQpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cbnZhciBDU1NDYWxjdWxhdG9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQWJzdHJhY3RDYWxjdWxhdG9yKSB7XG4gIF9pbmhlcml0cyhDU1NDYWxjdWxhdG9yLCBfQWJzdHJhY3RDYWxjdWxhdG9yKTtcbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDU1NDYWxjdWxhdG9yKTtcbiAgZnVuY3Rpb24gQ1NTQ2FsY3VsYXRvcihudW0sIHVuaXRsZXNzQ3NzVmFyKSB7XG4gICAgdmFyIF90aGlzO1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDU1NDYWxjdWxhdG9yKTtcbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJyZXN1bHRcIiwgJycpO1xuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJ1bml0bGVzc0Nzc1ZhclwiLCB2b2lkIDApO1xuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJsb3dQcmlvcml0eVwiLCB2b2lkIDApO1xuICAgIHZhciBudW1UeXBlID0gX3R5cGVvZihudW0pO1xuICAgIF90aGlzLnVuaXRsZXNzQ3NzVmFyID0gdW5pdGxlc3NDc3NWYXI7XG4gICAgaWYgKG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3IpIHtcbiAgICAgIF90aGlzLnJlc3VsdCA9IFwiKFwiLmNvbmNhdChudW0ucmVzdWx0LCBcIilcIik7XG4gICAgfSBlbHNlIGlmIChudW1UeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgX3RoaXMucmVzdWx0ID0gdW5pdChudW0pO1xuICAgIH0gZWxzZSBpZiAobnVtVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIF90aGlzLnJlc3VsdCA9IG51bTtcbiAgICB9XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG4gIF9jcmVhdGVDbGFzcyhDU1NDYWxjdWxhdG9yLCBbe1xuICAgIGtleTogXCJhZGRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkKG51bSkge1xuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgKyBcIikuY29uY2F0KG51bS5nZXRSZXN1bHQoKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInIHx8IHR5cGVvZiBudW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCJcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiICsgXCIpLmNvbmNhdCh1bml0KG51bSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb3dQcmlvcml0eSA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3ViXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN1YihudW0pIHtcbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBDU1NDYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCJcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiIC0gXCIpLmNvbmNhdChudW0uZ2V0UmVzdWx0KCkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbnVtID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIiAtIFwiKS5jb25jYXQodW5pdChudW0pKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG93UHJpb3JpdHkgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm11bFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBtdWwobnVtKSB7XG4gICAgICBpZiAodGhpcy5sb3dQcmlvcml0eSkge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiKFwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIpXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgKiBcIikuY29uY2F0KG51bS5nZXRSZXN1bHQodHJ1ZSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbnVtID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIiAqIFwiKS5jb25jYXQobnVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG93UHJpb3JpdHkgPSBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkaXZcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGl2KG51bSkge1xuICAgICAgaWYgKHRoaXMubG93UHJpb3JpdHkpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIihcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiKVwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBDU1NDYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCJcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiIC8gXCIpLmNvbmNhdChudW0uZ2V0UmVzdWx0KHRydWUpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG51bSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgLyBcIikuY29uY2F0KG51bSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvd1ByaW9yaXR5ID0gZmFsc2U7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmVzdWx0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJlc3VsdChmb3JjZSkge1xuICAgICAgcmV0dXJuIHRoaXMubG93UHJpb3JpdHkgfHwgZm9yY2UgPyBcIihcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiKVwiKSA6IHRoaXMucmVzdWx0O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlcXVhbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlcXVhbChvcHRpb25zKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcbiAgICAgIHZhciBfcmVmID0gb3B0aW9ucyB8fCB7fSxcbiAgICAgICAgY3NzVW5pdCA9IF9yZWYudW5pdDtcbiAgICAgIHZhciBtZXJnZWRVbml0ID0gdHJ1ZTtcbiAgICAgIGlmICh0eXBlb2YgY3NzVW5pdCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIG1lcmdlZFVuaXQgPSBjc3NVbml0O1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5mcm9tKHRoaXMudW5pdGxlc3NDc3NWYXIpLnNvbWUoZnVuY3Rpb24gKGNzc1Zhcikge1xuICAgICAgICByZXR1cm4gX3RoaXMyLnJlc3VsdC5pbmNsdWRlcyhjc3NWYXIpO1xuICAgICAgfSkpIHtcbiAgICAgICAgbWVyZ2VkVW5pdCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLnJlc3VsdC5yZXBsYWNlKHJlZ2V4cCwgbWVyZ2VkVW5pdCA/ICdweCcgOiAnJyk7XG4gICAgICBpZiAodHlwZW9mIHRoaXMubG93UHJpb3JpdHkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBcImNhbGMoXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIilcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5yZXN1bHQ7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBDU1NDYWxjdWxhdG9yO1xufShBYnN0cmFjdENhbGN1bGF0b3IpO1xuZXhwb3J0IHsgQ1NTQ2FsY3VsYXRvciBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.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_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _calculator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./calculator */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js\");\n\n\n\n\n\n\n\nvar NumCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(NumCalculator, _AbstractCalculator);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(NumCalculator);\n function NumCalculator(num) {\n var _this;\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, NumCalculator);\n _this = _super.call(this);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"result\", 0);\n if (num instanceof NumCalculator) {\n _this.result = num.result;\n } else if (typeof num === 'number') {\n _this.result = num;\n }\n return _this;\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(NumCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof NumCalculator) {\n this.result += num.result;\n } else if (typeof num === 'number') {\n this.result += num;\n }\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof NumCalculator) {\n this.result -= num.result;\n } else if (typeof num === 'number') {\n this.result -= num;\n }\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (num instanceof NumCalculator) {\n this.result *= num.result;\n } else if (typeof num === 'number') {\n this.result *= num;\n }\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (num instanceof NumCalculator) {\n this.result /= num.result;\n } else if (typeof num === 'number') {\n this.result /= num;\n }\n return this;\n }\n }, {\n key: \"equal\",\n value: function equal() {\n return this.result;\n }\n }]);\n return NumCalculator;\n}(_calculator__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NumCalculator);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2NhbGMvTnVtQ2FsY3VsYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF3RTtBQUNOO0FBQ29CO0FBQzFCO0FBQ007QUFDTTtBQUMxQjtBQUM5QztBQUNBLEVBQUUsK0VBQVM7QUFDWCxlQUFlLGtGQUFZO0FBQzNCO0FBQ0E7QUFDQSxJQUFJLHFGQUFlO0FBQ25CO0FBQ0EsSUFBSSxxRkFBZSxDQUFDLDRGQUFzQjtBQUMxQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxrRkFBWTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQyxDQUFDLG1EQUFrQjtBQUNwQixpRUFBZSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL3V0aWwvY2FsYy9OdW1DYWxjdWxhdG9yLmpzPzdmNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgQWJzdHJhY3RDYWxjdWxhdG9yIGZyb20gXCIuL2NhbGN1bGF0b3JcIjtcbnZhciBOdW1DYWxjdWxhdG9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQWJzdHJhY3RDYWxjdWxhdG9yKSB7XG4gIF9pbmhlcml0cyhOdW1DYWxjdWxhdG9yLCBfQWJzdHJhY3RDYWxjdWxhdG9yKTtcbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihOdW1DYWxjdWxhdG9yKTtcbiAgZnVuY3Rpb24gTnVtQ2FsY3VsYXRvcihudW0pIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE51bUNhbGN1bGF0b3IpO1xuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcyk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlc3VsdFwiLCAwKTtcbiAgICBpZiAobnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcikge1xuICAgICAgX3RoaXMucmVzdWx0ID0gbnVtLnJlc3VsdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICBfdGhpcy5yZXN1bHQgPSBudW07XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoTnVtQ2FsY3VsYXRvciwgW3tcbiAgICBrZXk6IFwiYWRkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZChudW0pIHtcbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBOdW1DYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ICs9IG51bS5yZXN1bHQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ICs9IG51bTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzdWJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3ViKG51bSkge1xuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIE51bUNhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgLT0gbnVtLnJlc3VsdDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgLT0gbnVtO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm11bFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBtdWwobnVtKSB7XG4gICAgICBpZiAobnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcikge1xuICAgICAgICB0aGlzLnJlc3VsdCAqPSBudW0ucmVzdWx0O1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLnJlc3VsdCAqPSBudW07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGl2XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRpdihudW0pIHtcbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBOdW1DYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0IC89IG51bS5yZXN1bHQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMucmVzdWx0IC89IG51bTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlcXVhbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlcXVhbCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc3VsdDtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIE51bUNhbGN1bGF0b3I7XG59KEFic3RyYWN0Q2FsY3VsYXRvcik7XG5leHBvcnQgZGVmYXVsdCBOdW1DYWxjdWxhdG9yOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.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_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n\n\nvar AbstractCalculator = /*#__PURE__*/(0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function AbstractCalculator() {\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, AbstractCalculator);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AbstractCalculator);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2NhbGMvY2FsY3VsYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0U7QUFDTTtBQUN4RSxzQ0FBc0Msa0ZBQVk7QUFDbEQsRUFBRSxxRkFBZTtBQUNqQixDQUFDO0FBQ0QsaUVBQWUsa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL3V0aWwvY2FsYy9jYWxjdWxhdG9yLmpzPzAwYTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrXCI7XG52YXIgQWJzdHJhY3RDYWxjdWxhdG9yID0gLyojX19QVVJFX18qL19jcmVhdGVDbGFzcyhmdW5jdGlvbiBBYnN0cmFjdENhbGN1bGF0b3IoKSB7XG4gIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBYnN0cmFjdENhbGN1bGF0b3IpO1xufSk7XG5leHBvcnQgZGVmYXVsdCBBYnN0cmFjdENhbGN1bGF0b3I7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/calc/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 _CSSCalculator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CSSCalculator */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js\");\n/* harmony import */ var _NumCalculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumCalculator */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js\");\n\n\nvar genCalc = function genCalc(type, unitlessCssVar) {\n var Calculator = type === 'css' ? _CSSCalculator__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : _NumCalculator__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n return function (num) {\n return new Calculator(num, unitlessCssVar);\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genCalc);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2NhbGMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDO0FBQ0E7QUFDNUM7QUFDQSxvQ0FBb0Msc0RBQWEsR0FBRyxzREFBYTtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMtdXRpbHMvZXMvdXRpbC9jYWxjL2luZGV4LmpzP2M3MDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENTU0NhbGN1bGF0b3IgZnJvbSBcIi4vQ1NTQ2FsY3VsYXRvclwiO1xuaW1wb3J0IE51bUNhbGN1bGF0b3IgZnJvbSBcIi4vTnVtQ2FsY3VsYXRvclwiO1xudmFyIGdlbkNhbGMgPSBmdW5jdGlvbiBnZW5DYWxjKHR5cGUsIHVuaXRsZXNzQ3NzVmFyKSB7XG4gIHZhciBDYWxjdWxhdG9yID0gdHlwZSA9PT0gJ2NzcycgPyBDU1NDYWxjdWxhdG9yIDogTnVtQ2FsY3VsYXRvcjtcbiAgcmV0dXJuIGZ1bmN0aW9uIChudW0pIHtcbiAgICByZXR1cm4gbmV3IENhbGN1bGF0b3IobnVtLCB1bml0bGVzc0Nzc1Zhcik7XG4gIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgZ2VuQ2FsYzsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.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_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ant-design/cssinjs */ \"./node_modules/@ant-design/cssinjs/es/index.js\");\n/* harmony import */ var _calc__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./calc */ \"./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js\");\n/* harmony import */ var _getCompVarPrefix__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getCompVarPrefix */ \"./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js\");\n/* harmony import */ var _getComponentToken__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getComponentToken */ \"./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js\");\n/* harmony import */ var _getDefaultComponentToken__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getDefaultComponentToken */ \"./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js\");\n/* harmony import */ var _maxmin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./maxmin */ \"./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js\");\n/* harmony import */ var _statistic__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./statistic */ \"./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js\");\n/* harmony import */ var _util_hooks_useUniqueMemo__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../_util/hooks/useUniqueMemo */ \"./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js\");\n/* harmony import */ var _hooks_useCSP__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../hooks/useCSP */ \"./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction genStyleUtils(config) {\n // Dependency inversion for preparing basic config.\n var _config$useCSP = config.useCSP,\n useCSP = _config$useCSP === void 0 ? _hooks_useCSP__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : _config$useCSP,\n useToken = config.useToken,\n usePrefix = config.usePrefix,\n getResetStyles = config.getResetStyles,\n getCommonStyle = config.getCommonStyle,\n getCompUnitless = config.getCompUnitless;\n function genStyleHooks(component, styleFn, getDefaultToken, options) {\n var componentName = Array.isArray(component) ? component[0] : component;\n function prefixToken(key) {\n return \"\".concat(String(componentName)).concat(key.slice(0, 1).toUpperCase()).concat(key.slice(1));\n }\n\n // Fill unitless\n var originUnitless = (options === null || options === void 0 ? void 0 : options.unitless) || {};\n var originCompUnitless = typeof getCompUnitless === 'function' ? getCompUnitless(component) : {};\n var compUnitless = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, originCompUnitless), {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, prefixToken('zIndexPopup'), true));\n Object.keys(originUnitless).forEach(function (key) {\n compUnitless[prefixToken(key)] = originUnitless[key];\n });\n\n // Options\n var mergedOptions = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, options), {}, {\n unitless: compUnitless,\n prefixToken: prefixToken\n });\n\n // Hooks\n var useStyle = genComponentStyleHook(component, styleFn, getDefaultToken, mergedOptions);\n var useCSSVar = genCSSVarRegister(componentName, getDefaultToken, mergedOptions);\n return function (prefixCls) {\n var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n var _useStyle = useStyle(prefixCls, rootCls),\n _useStyle2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useStyle, 2),\n hashId = _useStyle2[1];\n var _useCSSVar = useCSSVar(rootCls),\n _useCSSVar2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useCSSVar, 2),\n wrapCSSVar = _useCSSVar2[0],\n cssVarCls = _useCSSVar2[1];\n return [wrapCSSVar, hashId, cssVarCls];\n };\n }\n function genCSSVarRegister(component, getDefaultToken, options) {\n var compUnitless = options.unitless,\n _options$injectStyle = options.injectStyle,\n injectStyle = _options$injectStyle === void 0 ? true : _options$injectStyle,\n prefixToken = options.prefixToken,\n ignore = options.ignore;\n var CSSVarRegister = function CSSVarRegister(_ref) {\n var rootCls = _ref.rootCls,\n _ref$cssVar = _ref.cssVar,\n cssVar = _ref$cssVar === void 0 ? {} : _ref$cssVar;\n var _useToken = useToken(),\n realToken = _useToken.realToken;\n (0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.useCSSVarRegister)({\n path: [component],\n prefix: cssVar.prefix,\n key: cssVar.key,\n unitless: compUnitless,\n ignore: ignore,\n token: realToken,\n scope: rootCls\n }, function () {\n var defaultToken = (0,_getDefaultComponentToken__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(component, realToken, getDefaultToken);\n var componentToken = (0,_getComponentToken__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(component, realToken, defaultToken, {\n deprecatedTokens: options === null || options === void 0 ? void 0 : options.deprecatedTokens\n });\n Object.keys(defaultToken).forEach(function (key) {\n componentToken[prefixToken(key)] = componentToken[key];\n delete componentToken[key];\n });\n return componentToken;\n });\n return null;\n };\n var useCSSVar = function useCSSVar(rootCls) {\n var _useToken2 = useToken(),\n cssVar = _useToken2.cssVar;\n return [function (node) {\n return injectStyle && cssVar ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(react__WEBPACK_IMPORTED_MODULE_4__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(CSSVarRegister, {\n rootCls: rootCls,\n cssVar: cssVar,\n component: component\n }), node) : node;\n }, cssVar === null || cssVar === void 0 ? void 0 : cssVar.key];\n };\n return useCSSVar;\n }\n function genComponentStyleHook(componentName, styleFn, getDefaultToken) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var cells = Array.isArray(componentName) ? componentName : [componentName, componentName];\n var _cells = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cells, 1),\n component = _cells[0];\n var concatComponent = cells.join('-');\n var mergedLayer = config.layer || {\n name: 'antd'\n };\n\n // Return new style hook\n return function (prefixCls) {\n var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n var _useToken3 = useToken(),\n theme = _useToken3.theme,\n realToken = _useToken3.realToken,\n hashId = _useToken3.hashId,\n token = _useToken3.token,\n cssVar = _useToken3.cssVar;\n var _usePrefix = usePrefix(),\n rootPrefixCls = _usePrefix.rootPrefixCls,\n iconPrefixCls = _usePrefix.iconPrefixCls;\n var csp = useCSP();\n var type = cssVar ? 'css' : 'js';\n\n // Use unique memo to share the result across all instances\n var calc = (0,_util_hooks_useUniqueMemo__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(function () {\n var unitlessCssVar = new Set();\n if (cssVar) {\n Object.keys(options.unitless || {}).forEach(function (key) {\n // Some component proxy the AliasToken (e.g. Image) and some not (e.g. Modal)\n // We should both pass in `unitlessCssVar` to make sure the CSSVar can be unitless.\n unitlessCssVar.add((0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.token2CSSVar)(key, cssVar.prefix));\n unitlessCssVar.add((0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.token2CSSVar)(key, (0,_getCompVarPrefix__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(component, cssVar.prefix)));\n });\n }\n return (0,_calc__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(type, unitlessCssVar);\n }, [type, component, cssVar === null || cssVar === void 0 ? void 0 : cssVar.prefix]);\n var _genMaxMin = (0,_maxmin__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(type),\n max = _genMaxMin.max,\n min = _genMaxMin.min;\n\n // Shared config\n var sharedConfig = {\n theme: theme,\n token: token,\n hashId: hashId,\n nonce: function nonce() {\n return csp.nonce;\n },\n clientOnly: options.clientOnly,\n layer: mergedLayer,\n // antd is always at top of styles\n order: options.order || -999\n };\n\n // Generate style for all need reset tags.\n (0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.useStyleRegister)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, sharedConfig), {}, {\n clientOnly: false,\n path: ['Shared', rootPrefixCls]\n }), function () {\n return typeof getResetStyles === 'function' ? getResetStyles(token) : [];\n });\n var wrapSSR = (0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.useStyleRegister)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, sharedConfig), {}, {\n path: [concatComponent, prefixCls, iconPrefixCls]\n }), function () {\n if (options.injectStyle === false) {\n return [];\n }\n var _statisticToken = (0,_statistic__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(token),\n proxyToken = _statisticToken.token,\n flush = _statisticToken.flush;\n var defaultComponentToken = (0,_getDefaultComponentToken__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(component, realToken, getDefaultToken);\n var componentCls = \".\".concat(prefixCls);\n var componentToken = (0,_getComponentToken__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(component, realToken, defaultComponentToken, {\n deprecatedTokens: options.deprecatedTokens\n });\n if (cssVar && defaultComponentToken && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(defaultComponentToken) === 'object') {\n Object.keys(defaultComponentToken).forEach(function (key) {\n defaultComponentToken[key] = \"var(\".concat((0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_5__.token2CSSVar)(key, (0,_getCompVarPrefix__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(component, cssVar.prefix)), \")\");\n });\n }\n var mergedToken = (0,_statistic__WEBPACK_IMPORTED_MODULE_11__.merge)(proxyToken, {\n componentCls: componentCls,\n prefixCls: prefixCls,\n iconCls: \".\".concat(iconPrefixCls),\n antCls: \".\".concat(rootPrefixCls),\n calc: calc,\n // @ts-ignore\n max: max,\n // @ts-ignore\n min: min\n }, cssVar ? defaultComponentToken : componentToken);\n var styleInterpolation = styleFn(mergedToken, {\n hashId: hashId,\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls\n });\n flush(component, componentToken);\n var commonStyle = typeof getCommonStyle === 'function' ? getCommonStyle(mergedToken, prefixCls, rootCls, options.resetFont) : null;\n return [options.resetStyle === false ? null : commonStyle, styleInterpolation];\n });\n return [wrapSSR, hashId];\n };\n }\n function genSubStyleComponent(componentName, styleFn, getDefaultToken) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var useStyle = genComponentStyleHook(componentName, styleFn, getDefaultToken, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n resetStyle: false,\n // Sub Style should default after root one\n order: -998\n }, options));\n var StyledComponent = function StyledComponent(_ref2) {\n var prefixCls = _ref2.prefixCls,\n _ref2$rootCls = _ref2.rootCls,\n rootCls = _ref2$rootCls === void 0 ? prefixCls : _ref2$rootCls;\n useStyle(prefixCls, rootCls);\n return null;\n };\n if (true) {\n StyledComponent.displayName = \"SubStyle_\".concat(String(Array.isArray(componentName) ? componentName.join('.') : componentName));\n }\n return StyledComponent;\n }\n return {\n genStyleHooks: genStyleHooks,\n genSubStyleComponent: genSubStyleComponent,\n genComponentStyleHook: genComponentStyleHook\n };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genStyleUtils);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dlblN0eWxlVXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXdEO0FBQ2M7QUFDRTtBQUNIO0FBQzNDO0FBQzhEO0FBQzNEO0FBQ3FCO0FBQ0U7QUFDYztBQUNqQztBQUNpQztBQUNUO0FBQ2I7QUFDNUM7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLHNEQUFhO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixvRkFBYSxDQUFDLG9GQUFhLEdBQUcseUJBQXlCLEVBQUUscUZBQWUsR0FBRztBQUNsRztBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLHdCQUF3QixvRkFBYSxDQUFDLG9GQUFhLEdBQUcsY0FBYztBQUNwRTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsb0ZBQWM7QUFDbkM7QUFDQTtBQUNBLHNCQUFzQixvRkFBYztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7QUFDQSxNQUFNLHNFQUFpQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCwyQkFBMkIscUVBQXdCO0FBQ25ELDZCQUE2Qiw4REFBaUI7QUFDOUM7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxnREFBbUIsQ0FBQywyQ0FBYyxxQkFBcUIsZ0RBQW1CO0FBQzlIO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLG9GQUFjO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixzRUFBYTtBQUM5QjtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQSwrQkFBK0IsaUVBQVk7QUFDM0MsK0JBQStCLGlFQUFZLE1BQU0sNkRBQWdCO0FBQ2pFLFdBQVc7QUFDWDtBQUNBLGVBQWUsaURBQU87QUFDdEIsT0FBTztBQUNQLHVCQUF1QixvREFBUztBQUNoQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLHFFQUFnQixDQUFDLG9GQUFhLENBQUMsb0ZBQWEsR0FBRyxtQkFBbUI7QUFDeEU7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUCxvQkFBb0IscUVBQWdCLENBQUMsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLG1CQUFtQjtBQUN0RjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsdURBQWM7QUFDNUM7QUFDQTtBQUNBLG9DQUFvQyxxRUFBd0I7QUFDNUQ7QUFDQSw2QkFBNkIsOERBQWlCO0FBQzlDO0FBQ0EsU0FBUztBQUNULCtDQUErQyw2RUFBTztBQUN0RDtBQUNBLHVEQUF1RCxpRUFBWSxNQUFNLDZEQUFnQjtBQUN6RixXQUFXO0FBQ1g7QUFDQSwwQkFBMEIsa0RBQVU7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRkFBa0Ysb0ZBQWE7QUFDL0Y7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMtdXRpbHMvZXMvdXRpbC9nZW5TdHlsZVV0aWxzLmpzPzQ4YjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0b2tlbjJDU1NWYXIsIHVzZUNTU1ZhclJlZ2lzdGVyLCB1c2VTdHlsZVJlZ2lzdGVyIH0gZnJvbSAnQGFudC1kZXNpZ24vY3NzaW5qcyc7XG5pbXBvcnQgZ2VuQ2FsYyBmcm9tIFwiLi9jYWxjXCI7XG5pbXBvcnQgZ2V0Q29tcFZhclByZWZpeCBmcm9tIFwiLi9nZXRDb21wVmFyUHJlZml4XCI7XG5pbXBvcnQgZ2V0Q29tcG9uZW50VG9rZW4gZnJvbSBcIi4vZ2V0Q29tcG9uZW50VG9rZW5cIjtcbmltcG9ydCBnZXREZWZhdWx0Q29tcG9uZW50VG9rZW4gZnJvbSBcIi4vZ2V0RGVmYXVsdENvbXBvbmVudFRva2VuXCI7XG5pbXBvcnQgZ2VuTWF4TWluIGZyb20gXCIuL21heG1pblwiO1xuaW1wb3J0IHN0YXRpc3RpY1Rva2VuLCB7IG1lcmdlIGFzIG1lcmdlVG9rZW4gfSBmcm9tIFwiLi9zdGF0aXN0aWNcIjtcbmltcG9ydCB1c2VVbmlxdWVNZW1vIGZyb20gXCIuLi9fdXRpbC9ob29rcy91c2VVbmlxdWVNZW1vXCI7XG5pbXBvcnQgdXNlRGVmYXVsdENTUCBmcm9tIFwiLi4vaG9va3MvdXNlQ1NQXCI7XG5mdW5jdGlvbiBnZW5TdHlsZVV0aWxzKGNvbmZpZykge1xuICAvLyBEZXBlbmRlbmN5IGludmVyc2lvbiBmb3IgcHJlcGFyaW5nIGJhc2ljIGNvbmZpZy5cbiAgdmFyIF9jb25maWckdXNlQ1NQID0gY29uZmlnLnVzZUNTUCxcbiAgICB1c2VDU1AgPSBfY29uZmlnJHVzZUNTUCA9PT0gdm9pZCAwID8gdXNlRGVmYXVsdENTUCA6IF9jb25maWckdXNlQ1NQLFxuICAgIHVzZVRva2VuID0gY29uZmlnLnVzZVRva2VuLFxuICAgIHVzZVByZWZpeCA9IGNvbmZpZy51c2VQcmVmaXgsXG4gICAgZ2V0UmVzZXRTdHlsZXMgPSBjb25maWcuZ2V0UmVzZXRTdHlsZXMsXG4gICAgZ2V0Q29tbW9uU3R5bGUgPSBjb25maWcuZ2V0Q29tbW9uU3R5bGUsXG4gICAgZ2V0Q29tcFVuaXRsZXNzID0gY29uZmlnLmdldENvbXBVbml0bGVzcztcbiAgZnVuY3Rpb24gZ2VuU3R5bGVIb29rcyhjb21wb25lbnQsIHN0eWxlRm4sIGdldERlZmF1bHRUb2tlbiwgb3B0aW9ucykge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gQXJyYXkuaXNBcnJheShjb21wb25lbnQpID8gY29tcG9uZW50WzBdIDogY29tcG9uZW50O1xuICAgIGZ1bmN0aW9uIHByZWZpeFRva2VuKGtleSkge1xuICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KFN0cmluZyhjb21wb25lbnROYW1lKSkuY29uY2F0KGtleS5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpKS5jb25jYXQoa2V5LnNsaWNlKDEpKTtcbiAgICB9XG5cbiAgICAvLyBGaWxsIHVuaXRsZXNzXG4gICAgdmFyIG9yaWdpblVuaXRsZXNzID0gKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy51bml0bGVzcykgfHwge307XG4gICAgdmFyIG9yaWdpbkNvbXBVbml0bGVzcyA9IHR5cGVvZiBnZXRDb21wVW5pdGxlc3MgPT09ICdmdW5jdGlvbicgPyBnZXRDb21wVW5pdGxlc3MoY29tcG9uZW50KSA6IHt9O1xuICAgIHZhciBjb21wVW5pdGxlc3MgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG9yaWdpbkNvbXBVbml0bGVzcyksIHt9LCBfZGVmaW5lUHJvcGVydHkoe30sIHByZWZpeFRva2VuKCd6SW5kZXhQb3B1cCcpLCB0cnVlKSk7XG4gICAgT2JqZWN0LmtleXMob3JpZ2luVW5pdGxlc3MpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgY29tcFVuaXRsZXNzW3ByZWZpeFRva2VuKGtleSldID0gb3JpZ2luVW5pdGxlc3Nba2V5XTtcbiAgICB9KTtcblxuICAgIC8vIE9wdGlvbnNcbiAgICB2YXIgbWVyZ2VkT3B0aW9ucyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICB1bml0bGVzczogY29tcFVuaXRsZXNzLFxuICAgICAgcHJlZml4VG9rZW46IHByZWZpeFRva2VuXG4gICAgfSk7XG5cbiAgICAvLyBIb29rc1xuICAgIHZhciB1c2VTdHlsZSA9IGdlbkNvbXBvbmVudFN0eWxlSG9vayhjb21wb25lbnQsIHN0eWxlRm4sIGdldERlZmF1bHRUb2tlbiwgbWVyZ2VkT3B0aW9ucyk7XG4gICAgdmFyIHVzZUNTU1ZhciA9IGdlbkNTU1ZhclJlZ2lzdGVyKGNvbXBvbmVudE5hbWUsIGdldERlZmF1bHRUb2tlbiwgbWVyZ2VkT3B0aW9ucyk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciByb290Q2xzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBwcmVmaXhDbHM7XG4gICAgICB2YXIgX3VzZVN0eWxlID0gdXNlU3R5bGUocHJlZml4Q2xzLCByb290Q2xzKSxcbiAgICAgICAgX3VzZVN0eWxlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdHlsZSwgMiksXG4gICAgICAgIGhhc2hJZCA9IF91c2VTdHlsZTJbMV07XG4gICAgICB2YXIgX3VzZUNTU1ZhciA9IHVzZUNTU1Zhcihyb290Q2xzKSxcbiAgICAgICAgX3VzZUNTU1ZhcjIgPSBfc2xpY2VkVG9BcnJheShfdXNlQ1NTVmFyLCAyKSxcbiAgICAgICAgd3JhcENTU1ZhciA9IF91c2VDU1NWYXIyWzBdLFxuICAgICAgICBjc3NWYXJDbHMgPSBfdXNlQ1NTVmFyMlsxXTtcbiAgICAgIHJldHVybiBbd3JhcENTU1ZhciwgaGFzaElkLCBjc3NWYXJDbHNdO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gZ2VuQ1NTVmFyUmVnaXN0ZXIoY29tcG9uZW50LCBnZXREZWZhdWx0VG9rZW4sIG9wdGlvbnMpIHtcbiAgICB2YXIgY29tcFVuaXRsZXNzID0gb3B0aW9ucy51bml0bGVzcyxcbiAgICAgIF9vcHRpb25zJGluamVjdFN0eWxlID0gb3B0aW9ucy5pbmplY3RTdHlsZSxcbiAgICAgIGluamVjdFN0eWxlID0gX29wdGlvbnMkaW5qZWN0U3R5bGUgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRpbmplY3RTdHlsZSxcbiAgICAgIHByZWZpeFRva2VuID0gb3B0aW9ucy5wcmVmaXhUb2tlbixcbiAgICAgIGlnbm9yZSA9IG9wdGlvbnMuaWdub3JlO1xuICAgIHZhciBDU1NWYXJSZWdpc3RlciA9IGZ1bmN0aW9uIENTU1ZhclJlZ2lzdGVyKF9yZWYpIHtcbiAgICAgIHZhciByb290Q2xzID0gX3JlZi5yb290Q2xzLFxuICAgICAgICBfcmVmJGNzc1ZhciA9IF9yZWYuY3NzVmFyLFxuICAgICAgICBjc3NWYXIgPSBfcmVmJGNzc1ZhciA9PT0gdm9pZCAwID8ge30gOiBfcmVmJGNzc1ZhcjtcbiAgICAgIHZhciBfdXNlVG9rZW4gPSB1c2VUb2tlbigpLFxuICAgICAgICByZWFsVG9rZW4gPSBfdXNlVG9rZW4ucmVhbFRva2VuO1xuICAgICAgdXNlQ1NTVmFyUmVnaXN0ZXIoe1xuICAgICAgICBwYXRoOiBbY29tcG9uZW50XSxcbiAgICAgICAgcHJlZml4OiBjc3NWYXIucHJlZml4LFxuICAgICAgICBrZXk6IGNzc1Zhci5rZXksXG4gICAgICAgIHVuaXRsZXNzOiBjb21wVW5pdGxlc3MsXG4gICAgICAgIGlnbm9yZTogaWdub3JlLFxuICAgICAgICB0b2tlbjogcmVhbFRva2VuLFxuICAgICAgICBzY29wZTogcm9vdENsc1xuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZGVmYXVsdFRva2VuID0gZ2V0RGVmYXVsdENvbXBvbmVudFRva2VuKGNvbXBvbmVudCwgcmVhbFRva2VuLCBnZXREZWZhdWx0VG9rZW4pO1xuICAgICAgICB2YXIgY29tcG9uZW50VG9rZW4gPSBnZXRDb21wb25lbnRUb2tlbihjb21wb25lbnQsIHJlYWxUb2tlbiwgZGVmYXVsdFRva2VuLCB7XG4gICAgICAgICAgZGVwcmVjYXRlZFRva2Vuczogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlcHJlY2F0ZWRUb2tlbnNcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5rZXlzKGRlZmF1bHRUb2tlbikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgY29tcG9uZW50VG9rZW5bcHJlZml4VG9rZW4oa2V5KV0gPSBjb21wb25lbnRUb2tlbltrZXldO1xuICAgICAgICAgIGRlbGV0ZSBjb21wb25lbnRUb2tlbltrZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFRva2VuO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHZhciB1c2VDU1NWYXIgPSBmdW5jdGlvbiB1c2VDU1NWYXIocm9vdENscykge1xuICAgICAgdmFyIF91c2VUb2tlbjIgPSB1c2VUb2tlbigpLFxuICAgICAgICBjc3NWYXIgPSBfdXNlVG9rZW4yLmNzc1ZhcjtcbiAgICAgIHJldHVybiBbZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGluamVjdFN0eWxlICYmIGNzc1ZhciA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDU1NWYXJSZWdpc3Rlciwge1xuICAgICAgICAgIHJvb3RDbHM6IHJvb3RDbHMsXG4gICAgICAgICAgY3NzVmFyOiBjc3NWYXIsXG4gICAgICAgICAgY29tcG9uZW50OiBjb21wb25lbnRcbiAgICAgICAgfSksIG5vZGUpIDogbm9kZTtcbiAgICAgIH0sIGNzc1ZhciA9PT0gbnVsbCB8fCBjc3NWYXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNzc1Zhci5rZXldO1xuICAgIH07XG4gICAgcmV0dXJuIHVzZUNTU1ZhcjtcbiAgfVxuICBmdW5jdGlvbiBnZW5Db21wb25lbnRTdHlsZUhvb2soY29tcG9uZW50TmFtZSwgc3R5bGVGbiwgZ2V0RGVmYXVsdFRva2VuKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICAgIHZhciBjZWxscyA9IEFycmF5LmlzQXJyYXkoY29tcG9uZW50TmFtZSkgPyBjb21wb25lbnROYW1lIDogW2NvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWVdO1xuICAgIHZhciBfY2VsbHMgPSBfc2xpY2VkVG9BcnJheShjZWxscywgMSksXG4gICAgICBjb21wb25lbnQgPSBfY2VsbHNbMF07XG4gICAgdmFyIGNvbmNhdENvbXBvbmVudCA9IGNlbGxzLmpvaW4oJy0nKTtcbiAgICB2YXIgbWVyZ2VkTGF5ZXIgPSBjb25maWcubGF5ZXIgfHwge1xuICAgICAgbmFtZTogJ2FudGQnXG4gICAgfTtcblxuICAgIC8vIFJldHVybiBuZXcgc3R5bGUgaG9va1xuICAgIHJldHVybiBmdW5jdGlvbiAocHJlZml4Q2xzKSB7XG4gICAgICB2YXIgcm9vdENscyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogcHJlZml4Q2xzO1xuICAgICAgdmFyIF91c2VUb2tlbjMgPSB1c2VUb2tlbigpLFxuICAgICAgICB0aGVtZSA9IF91c2VUb2tlbjMudGhlbWUsXG4gICAgICAgIHJlYWxUb2tlbiA9IF91c2VUb2tlbjMucmVhbFRva2VuLFxuICAgICAgICBoYXNoSWQgPSBfdXNlVG9rZW4zLmhhc2hJZCxcbiAgICAgICAgdG9rZW4gPSBfdXNlVG9rZW4zLnRva2VuLFxuICAgICAgICBjc3NWYXIgPSBfdXNlVG9rZW4zLmNzc1ZhcjtcbiAgICAgIHZhciBfdXNlUHJlZml4ID0gdXNlUHJlZml4KCksXG4gICAgICAgIHJvb3RQcmVmaXhDbHMgPSBfdXNlUHJlZml4LnJvb3RQcmVmaXhDbHMsXG4gICAgICAgIGljb25QcmVmaXhDbHMgPSBfdXNlUHJlZml4Lmljb25QcmVmaXhDbHM7XG4gICAgICB2YXIgY3NwID0gdXNlQ1NQKCk7XG4gICAgICB2YXIgdHlwZSA9IGNzc1ZhciA/ICdjc3MnIDogJ2pzJztcblxuICAgICAgLy8gVXNlIHVuaXF1ZSBtZW1vIHRvIHNoYXJlIHRoZSByZXN1bHQgYWNyb3NzIGFsbCBpbnN0YW5jZXNcbiAgICAgIHZhciBjYWxjID0gdXNlVW5pcXVlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB1bml0bGVzc0Nzc1ZhciA9IG5ldyBTZXQoKTtcbiAgICAgICAgaWYgKGNzc1Zhcikge1xuICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMudW5pdGxlc3MgfHwge30pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgLy8gU29tZSBjb21wb25lbnQgcHJveHkgdGhlIEFsaWFzVG9rZW4gKGUuZy4gSW1hZ2UpIGFuZCBzb21lIG5vdCAoZS5nLiBNb2RhbClcbiAgICAgICAgICAgIC8vIFdlIHNob3VsZCBib3RoIHBhc3MgaW4gYHVuaXRsZXNzQ3NzVmFyYCB0byBtYWtlIHN1cmUgdGhlIENTU1ZhciBjYW4gYmUgdW5pdGxlc3MuXG4gICAgICAgICAgICB1bml0bGVzc0Nzc1Zhci5hZGQodG9rZW4yQ1NTVmFyKGtleSwgY3NzVmFyLnByZWZpeCkpO1xuICAgICAgICAgICAgdW5pdGxlc3NDc3NWYXIuYWRkKHRva2VuMkNTU1ZhcihrZXksIGdldENvbXBWYXJQcmVmaXgoY29tcG9uZW50LCBjc3NWYXIucHJlZml4KSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZW5DYWxjKHR5cGUsIHVuaXRsZXNzQ3NzVmFyKTtcbiAgICAgIH0sIFt0eXBlLCBjb21wb25lbnQsIGNzc1ZhciA9PT0gbnVsbCB8fCBjc3NWYXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNzc1Zhci5wcmVmaXhdKTtcbiAgICAgIHZhciBfZ2VuTWF4TWluID0gZ2VuTWF4TWluKHR5cGUpLFxuICAgICAgICBtYXggPSBfZ2VuTWF4TWluLm1heCxcbiAgICAgICAgbWluID0gX2dlbk1heE1pbi5taW47XG5cbiAgICAgIC8vIFNoYXJlZCBjb25maWdcbiAgICAgIHZhciBzaGFyZWRDb25maWcgPSB7XG4gICAgICAgIHRoZW1lOiB0aGVtZSxcbiAgICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgICBoYXNoSWQ6IGhhc2hJZCxcbiAgICAgICAgbm9uY2U6IGZ1bmN0aW9uIG5vbmNlKCkge1xuICAgICAgICAgIHJldHVybiBjc3Aubm9uY2U7XG4gICAgICAgIH0sXG4gICAgICAgIGNsaWVudE9ubHk6IG9wdGlvbnMuY2xpZW50T25seSxcbiAgICAgICAgbGF5ZXI6IG1lcmdlZExheWVyLFxuICAgICAgICAvLyBhbnRkIGlzIGFsd2F5cyBhdCB0b3Agb2Ygc3R5bGVzXG4gICAgICAgIG9yZGVyOiBvcHRpb25zLm9yZGVyIHx8IC05OTlcbiAgICAgIH07XG5cbiAgICAgIC8vIEdlbmVyYXRlIHN0eWxlIGZvciBhbGwgbmVlZCByZXNldCB0YWdzLlxuICAgICAgdXNlU3R5bGVSZWdpc3Rlcihfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNoYXJlZENvbmZpZyksIHt9LCB7XG4gICAgICAgIGNsaWVudE9ubHk6IGZhbHNlLFxuICAgICAgICBwYXRoOiBbJ1NoYXJlZCcsIHJvb3RQcmVmaXhDbHNdXG4gICAgICB9KSwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGdldFJlc2V0U3R5bGVzID09PSAnZnVuY3Rpb24nID8gZ2V0UmVzZXRTdHlsZXModG9rZW4pIDogW107XG4gICAgICB9KTtcbiAgICAgIHZhciB3cmFwU1NSID0gdXNlU3R5bGVSZWdpc3Rlcihfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNoYXJlZENvbmZpZyksIHt9LCB7XG4gICAgICAgIHBhdGg6IFtjb25jYXRDb21wb25lbnQsIHByZWZpeENscywgaWNvblByZWZpeENsc11cbiAgICAgIH0pLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmluamVjdFN0eWxlID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX3N0YXRpc3RpY1Rva2VuID0gc3RhdGlzdGljVG9rZW4odG9rZW4pLFxuICAgICAgICAgIHByb3h5VG9rZW4gPSBfc3RhdGlzdGljVG9rZW4udG9rZW4sXG4gICAgICAgICAgZmx1c2ggPSBfc3RhdGlzdGljVG9rZW4uZmx1c2g7XG4gICAgICAgIHZhciBkZWZhdWx0Q29tcG9uZW50VG9rZW4gPSBnZXREZWZhdWx0Q29tcG9uZW50VG9rZW4oY29tcG9uZW50LCByZWFsVG9rZW4sIGdldERlZmF1bHRUb2tlbik7XG4gICAgICAgIHZhciBjb21wb25lbnRDbHMgPSBcIi5cIi5jb25jYXQocHJlZml4Q2xzKTtcbiAgICAgICAgdmFyIGNvbXBvbmVudFRva2VuID0gZ2V0Q29tcG9uZW50VG9rZW4oY29tcG9uZW50LCByZWFsVG9rZW4sIGRlZmF1bHRDb21wb25lbnRUb2tlbiwge1xuICAgICAgICAgIGRlcHJlY2F0ZWRUb2tlbnM6IG9wdGlvbnMuZGVwcmVjYXRlZFRva2Vuc1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNzc1ZhciAmJiBkZWZhdWx0Q29tcG9uZW50VG9rZW4gJiYgX3R5cGVvZihkZWZhdWx0Q29tcG9uZW50VG9rZW4pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIE9iamVjdC5rZXlzKGRlZmF1bHRDb21wb25lbnRUb2tlbikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBkZWZhdWx0Q29tcG9uZW50VG9rZW5ba2V5XSA9IFwidmFyKFwiLmNvbmNhdCh0b2tlbjJDU1NWYXIoa2V5LCBnZXRDb21wVmFyUHJlZml4KGNvbXBvbmVudCwgY3NzVmFyLnByZWZpeCkpLCBcIilcIik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1lcmdlZFRva2VuID0gbWVyZ2VUb2tlbihwcm94eVRva2VuLCB7XG4gICAgICAgICAgY29tcG9uZW50Q2xzOiBjb21wb25lbnRDbHMsXG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgaWNvbkNsczogXCIuXCIuY29uY2F0KGljb25QcmVmaXhDbHMpLFxuICAgICAgICAgIGFudENsczogXCIuXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMpLFxuICAgICAgICAgIGNhbGM6IGNhbGMsXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIG1heDogbWF4LFxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBtaW46IG1pblxuICAgICAgICB9LCBjc3NWYXIgPyBkZWZhdWx0Q29tcG9uZW50VG9rZW4gOiBjb21wb25lbnRUb2tlbik7XG4gICAgICAgIHZhciBzdHlsZUludGVycG9sYXRpb24gPSBzdHlsZUZuKG1lcmdlZFRva2VuLCB7XG4gICAgICAgICAgaGFzaElkOiBoYXNoSWQsXG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgcm9vdFByZWZpeENsczogcm9vdFByZWZpeENscyxcbiAgICAgICAgICBpY29uUHJlZml4Q2xzOiBpY29uUHJlZml4Q2xzXG4gICAgICAgIH0pO1xuICAgICAgICBmbHVzaChjb21wb25lbnQsIGNvbXBvbmVudFRva2VuKTtcbiAgICAgICAgdmFyIGNvbW1vblN0eWxlID0gdHlwZW9mIGdldENvbW1vblN0eWxlID09PSAnZnVuY3Rpb24nID8gZ2V0Q29tbW9uU3R5bGUobWVyZ2VkVG9rZW4sIHByZWZpeENscywgcm9vdENscywgb3B0aW9ucy5yZXNldEZvbnQpIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIFtvcHRpb25zLnJlc2V0U3R5bGUgPT09IGZhbHNlID8gbnVsbCA6IGNvbW1vblN0eWxlLCBzdHlsZUludGVycG9sYXRpb25dO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gW3dyYXBTU1IsIGhhc2hJZF07XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBnZW5TdWJTdHlsZUNvbXBvbmVudChjb21wb25lbnROYW1lLCBzdHlsZUZuLCBnZXREZWZhdWx0VG9rZW4pIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG4gICAgdmFyIHVzZVN0eWxlID0gZ2VuQ29tcG9uZW50U3R5bGVIb29rKGNvbXBvbmVudE5hbWUsIHN0eWxlRm4sIGdldERlZmF1bHRUb2tlbiwgX29iamVjdFNwcmVhZCh7XG4gICAgICByZXNldFN0eWxlOiBmYWxzZSxcbiAgICAgIC8vIFN1YiBTdHlsZSBzaG91bGQgZGVmYXVsdCBhZnRlciByb290IG9uZVxuICAgICAgb3JkZXI6IC05OThcbiAgICB9LCBvcHRpb25zKSk7XG4gICAgdmFyIFN0eWxlZENvbXBvbmVudCA9IGZ1bmN0aW9uIFN0eWxlZENvbXBvbmVudChfcmVmMikge1xuICAgICAgdmFyIHByZWZpeENscyA9IF9yZWYyLnByZWZpeENscyxcbiAgICAgICAgX3JlZjIkcm9vdENscyA9IF9yZWYyLnJvb3RDbHMsXG4gICAgICAgIHJvb3RDbHMgPSBfcmVmMiRyb290Q2xzID09PSB2b2lkIDAgPyBwcmVmaXhDbHMgOiBfcmVmMiRyb290Q2xzO1xuICAgICAgdXNlU3R5bGUocHJlZml4Q2xzLCByb290Q2xzKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIFN0eWxlZENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiU3ViU3R5bGVfXCIuY29uY2F0KFN0cmluZyhBcnJheS5pc0FycmF5KGNvbXBvbmVudE5hbWUpID8gY29tcG9uZW50TmFtZS5qb2luKCcuJykgOiBjb21wb25lbnROYW1lKSk7XG4gICAgfVxuICAgIHJldHVybiBTdHlsZWRDb21wb25lbnQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnZW5TdHlsZUhvb2tzOiBnZW5TdHlsZUhvb2tzLFxuICAgIGdlblN1YlN0eWxlQ29tcG9uZW50OiBnZW5TdWJTdHlsZUNvbXBvbmVudCxcbiAgICBnZW5Db21wb25lbnRTdHlsZUhvb2s6IGdlbkNvbXBvbmVudFN0eWxlSG9va1xuICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgZ2VuU3R5bGVVdGlsczsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.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 */ });\nvar getCompVarPrefix = function getCompVarPrefix(component, prefix) {\n return \"\".concat([prefix, component.replace(/([A-Z]+)([A-Z][a-z]+)/g, '$1-$2').replace(/([a-z])([A-Z])/g, '$1-$2')].filter(Boolean).join('-'));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getCompVarPrefix);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldENvbXBWYXJQcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldENvbXBWYXJQcmVmaXguanM/Nzc3OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0Q29tcFZhclByZWZpeCA9IGZ1bmN0aW9uIGdldENvbXBWYXJQcmVmaXgoY29tcG9uZW50LCBwcmVmaXgpIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KFtwcmVmaXgsIGNvbXBvbmVudC5yZXBsYWNlKC8oW0EtWl0rKShbQS1aXVthLXpdKykvZywgJyQxLSQyJykucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJyldLmZpbHRlcihCb29sZWFuKS5qb2luKCctJykpO1xufTtcbmV4cG9ydCBkZWZhdWx0IGdldENvbXBWYXJQcmVmaXg7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rc-util */ \"./node_modules/rc-util/es/index.js\");\n\n\n\nfunction getComponentToken(component, token, defaultToken, options) {\n var customToken = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, token[component]);\n if (options !== null && options !== void 0 && options.deprecatedTokens) {\n var deprecatedTokens = options.deprecatedTokens;\n deprecatedTokens.forEach(function (_ref) {\n var _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref, 2),\n oldTokenKey = _ref2[0],\n newTokenKey = _ref2[1];\n if (true) {\n (0,rc_util__WEBPACK_IMPORTED_MODULE_2__.warning)(!(customToken !== null && customToken !== void 0 && customToken[oldTokenKey]), \"Component Token `\".concat(String(oldTokenKey), \"` of \").concat(String(component), \" is deprecated. Please use `\").concat(String(newTokenKey), \"` instead.\"));\n }\n\n // Should wrap with `if` clause, or there will be `undefined` in object.\n if (customToken !== null && customToken !== void 0 && customToken[oldTokenKey] || customToken !== null && customToken !== void 0 && customToken[newTokenKey]) {\n var _customToken$newToken;\n (_customToken$newToken = customToken[newTokenKey]) !== null && _customToken$newToken !== void 0 ? _customToken$newToken : customToken[newTokenKey] = customToken === null || customToken === void 0 ? void 0 : customToken[oldTokenKey];\n }\n });\n }\n var mergedToken = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, defaultToken), customToken);\n\n // Remove same value as global token to minimize size\n Object.keys(mergedToken).forEach(function (key) {\n if (mergedToken[key] === token[key]) {\n delete mergedToken[key];\n }\n });\n return mergedToken;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getComponentToken);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldENvbXBvbmVudFRva2VuLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBc0U7QUFDRDtBQUNuQztBQUNsQztBQUNBLG9CQUFvQixvRkFBYSxHQUFHO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixvRkFBYztBQUNoQztBQUNBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQyxRQUFRLGdEQUFPO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLG9CQUFvQixvRkFBYSxDQUFDLG9GQUFhLEdBQUc7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGlFQUFlLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldENvbXBvbmVudFRva2VuLmpzP2Y3MzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IHsgd2FybmluZyB9IGZyb20gJ3JjLXV0aWwnO1xuZnVuY3Rpb24gZ2V0Q29tcG9uZW50VG9rZW4oY29tcG9uZW50LCB0b2tlbiwgZGVmYXVsdFRva2VuLCBvcHRpb25zKSB7XG4gIHZhciBjdXN0b21Ub2tlbiA9IF9vYmplY3RTcHJlYWQoe30sIHRva2VuW2NvbXBvbmVudF0pO1xuICBpZiAob3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5kZXByZWNhdGVkVG9rZW5zKSB7XG4gICAgdmFyIGRlcHJlY2F0ZWRUb2tlbnMgPSBvcHRpb25zLmRlcHJlY2F0ZWRUb2tlbnM7XG4gICAgZGVwcmVjYXRlZFRva2Vucy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICAgICAgb2xkVG9rZW5LZXkgPSBfcmVmMlswXSxcbiAgICAgICAgbmV3VG9rZW5LZXkgPSBfcmVmMlsxXTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoIShjdXN0b21Ub2tlbiAhPT0gbnVsbCAmJiBjdXN0b21Ub2tlbiAhPT0gdm9pZCAwICYmIGN1c3RvbVRva2VuW29sZFRva2VuS2V5XSksIFwiQ29tcG9uZW50IFRva2VuIGBcIi5jb25jYXQoU3RyaW5nKG9sZFRva2VuS2V5KSwgXCJgIG9mIFwiKS5jb25jYXQoU3RyaW5nKGNvbXBvbmVudCksIFwiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYFwiKS5jb25jYXQoU3RyaW5nKG5ld1Rva2VuS2V5KSwgXCJgIGluc3RlYWQuXCIpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2hvdWxkIHdyYXAgd2l0aCBgaWZgIGNsYXVzZSwgb3IgdGhlcmUgd2lsbCBiZSBgdW5kZWZpbmVkYCBpbiBvYmplY3QuXG4gICAgICBpZiAoY3VzdG9tVG9rZW4gIT09IG51bGwgJiYgY3VzdG9tVG9rZW4gIT09IHZvaWQgMCAmJiBjdXN0b21Ub2tlbltvbGRUb2tlbktleV0gfHwgY3VzdG9tVG9rZW4gIT09IG51bGwgJiYgY3VzdG9tVG9rZW4gIT09IHZvaWQgMCAmJiBjdXN0b21Ub2tlbltuZXdUb2tlbktleV0pIHtcbiAgICAgICAgdmFyIF9jdXN0b21Ub2tlbiRuZXdUb2tlbjtcbiAgICAgICAgKF9jdXN0b21Ub2tlbiRuZXdUb2tlbiA9IGN1c3RvbVRva2VuW25ld1Rva2VuS2V5XSkgIT09IG51bGwgJiYgX2N1c3RvbVRva2VuJG5ld1Rva2VuICE9PSB2b2lkIDAgPyBfY3VzdG9tVG9rZW4kbmV3VG9rZW4gOiBjdXN0b21Ub2tlbltuZXdUb2tlbktleV0gPSBjdXN0b21Ub2tlbiA9PT0gbnVsbCB8fCBjdXN0b21Ub2tlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VzdG9tVG9rZW5bb2xkVG9rZW5LZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHZhciBtZXJnZWRUb2tlbiA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGVmYXVsdFRva2VuKSwgY3VzdG9tVG9rZW4pO1xuXG4gIC8vIFJlbW92ZSBzYW1lIHZhbHVlIGFzIGdsb2JhbCB0b2tlbiB0byBtaW5pbWl6ZSBzaXplXG4gIE9iamVjdC5rZXlzKG1lcmdlZFRva2VuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAobWVyZ2VkVG9rZW5ba2V5XSA9PT0gdG9rZW5ba2V5XSkge1xuICAgICAgZGVsZXRlIG1lcmdlZFRva2VuW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG1lcmdlZFRva2VuO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0Q29tcG9uZW50VG9rZW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.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 _statistic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./statistic */ \"./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js\");\n\nfunction getDefaultComponentToken(component, token, getDefaultToken) {\n if (typeof getDefaultToken === 'function') {\n var _token$component;\n return getDefaultToken((0,_statistic__WEBPACK_IMPORTED_MODULE_0__.merge)(token, (_token$component = token[component]) !== null && _token$component !== void 0 ? _token$component : {}));\n }\n return getDefaultToken !== null && getDefaultToken !== void 0 ? getDefaultToken : {};\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getDefaultComponentToken);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldERlZmF1bHRDb21wb25lbnRUb2tlbi5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaURBQVUsNkdBQTZHO0FBQ2xKO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL2dldERlZmF1bHRDb21wb25lbnRUb2tlbi5qcz8xNjRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlIGFzIG1lcmdlVG9rZW4gfSBmcm9tIFwiLi9zdGF0aXN0aWNcIjtcbmZ1bmN0aW9uIGdldERlZmF1bHRDb21wb25lbnRUb2tlbihjb21wb25lbnQsIHRva2VuLCBnZXREZWZhdWx0VG9rZW4pIHtcbiAgaWYgKHR5cGVvZiBnZXREZWZhdWx0VG9rZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgX3Rva2VuJGNvbXBvbmVudDtcbiAgICByZXR1cm4gZ2V0RGVmYXVsdFRva2VuKG1lcmdlVG9rZW4odG9rZW4sIChfdG9rZW4kY29tcG9uZW50ID0gdG9rZW5bY29tcG9uZW50XSkgIT09IG51bGwgJiYgX3Rva2VuJGNvbXBvbmVudCAhPT0gdm9pZCAwID8gX3Rva2VuJGNvbXBvbmVudCA6IHt9KSk7XG4gIH1cbiAgcmV0dXJuIGdldERlZmF1bHRUb2tlbiAhPT0gbnVsbCAmJiBnZXREZWZhdWx0VG9rZW4gIT09IHZvaWQgMCA/IGdldERlZmF1bHRUb2tlbiA6IHt9O1xufVxuZXhwb3J0IGRlZmF1bHQgZ2V0RGVmYXVsdENvbXBvbmVudFRva2VuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js": +/*!******************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.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 _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ant-design/cssinjs */ \"./node_modules/@ant-design/cssinjs/es/index.js\");\n\nfunction genMaxMin(type) {\n if (type === 'js') {\n return {\n max: Math.max,\n min: Math.min\n };\n }\n return {\n max: function max() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return \"max(\".concat(args.map(function (value) {\n return (0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.unit)(value);\n }).join(','), \")\");\n },\n min: function min() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return \"min(\".concat(args.map(function (value) {\n return (0,_ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.unit)(value);\n }).join(','), \")\");\n }\n };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genMaxMin);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL21heG1pbi5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEUsYUFBYTtBQUN2RjtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlEQUFJO0FBQ25CLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSw2RUFBNkUsZUFBZTtBQUM1RjtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlEQUFJO0FBQ25CLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxTQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL3V0aWwvbWF4bWluLmpzP2M5NjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5pdCB9IGZyb20gJ0BhbnQtZGVzaWduL2Nzc2luanMnO1xuZnVuY3Rpb24gZ2VuTWF4TWluKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09ICdqcycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWF4OiBNYXRoLm1heCxcbiAgICAgIG1pbjogTWF0aC5taW5cbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbWF4OiBmdW5jdGlvbiBtYXgoKSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBcIm1heChcIi5jb25jYXQoYXJncy5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB1bml0KHZhbHVlKTtcbiAgICAgIH0pLmpvaW4oJywnKSwgXCIpXCIpO1xuICAgIH0sXG4gICAgbWluOiBmdW5jdGlvbiBtaW4oKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFwibWluKFwiLmNvbmNhdChhcmdzLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHVuaXQodmFsdWUpO1xuICAgICAgfSkuam9pbignLCcpLCBcIilcIik7XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgZ2VuTWF4TWluOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs-utils/es/util/statistic.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 */ _statistic_build_: () => (/* binding */ _statistic_build_),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ merge: () => (/* binding */ merge),\n/* harmony export */ statistic: () => (/* binding */ statistic)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n\n\nvar enableStatistic = true || 0;\nvar recording = true;\n\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nfunction merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n var ret = {};\n objs.forEach(function (obj) {\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj) !== 'object') {\n return;\n }\n var keys = Object.keys(obj);\n keys.forEach(function (key) {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: function get() {\n return obj[key];\n }\n });\n });\n });\n recording = true;\n return ret;\n}\n\n/** @internal Internal Usage. Not use in your production. */\nvar statistic = {};\n\n/** @internal Internal Usage. Not use in your production. */\nvar _statistic_build_ = {};\n\n/* istanbul ignore next */\nfunction noop() {}\n\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nvar statisticToken = function statisticToken(token) {\n var tokenKeys;\n var proxy = token;\n var flush = noop;\n if (enableStatistic && typeof Proxy !== 'undefined') {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get: function get(obj, prop) {\n if (recording) {\n var _tokenKeys;\n (_tokenKeys = tokenKeys) === null || _tokenKeys === void 0 || _tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = function flush(componentName, componentToken) {\n var _statistic$componentN;\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, (_statistic$componentN = statistic[componentName]) === null || _statistic$componentN === void 0 ? void 0 : _statistic$componentN.component), componentToken)\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush: flush\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (statisticToken);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy11dGlscy9lcy91dGlsL3N0YXRpc3RpYy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBcUU7QUFDYjtBQUN4RCxzQkFBc0IsS0FBcUMsSUFBSSxDQUF3QztBQUN2Rzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1Asc0VBQXNFLGFBQWE7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZFQUFPO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDTzs7QUFFUDtBQUNPOztBQUVQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG9GQUFhLENBQUMsb0ZBQWEsR0FBRztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzLXV0aWxzL2VzL3V0aWwvc3RhdGlzdGljLmpzPzY4NjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbnZhciBlbmFibGVTdGF0aXN0aWMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nIHx8IHR5cGVvZiBDU1NJTkpTX1NUQVRJU1RJQyAhPT0gJ3VuZGVmaW5lZCc7XG52YXIgcmVjb3JkaW5nID0gdHJ1ZTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgZG8gYXMgYE9iamVjdC5hc3NpZ25gIGluIHByb2R1Y3Rpb24uIEJ1dCB3aWxsIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHk6Z2V0IHRvXG4gKiBwYXNzIGFsbCB2YWx1ZSBhY2Nlc3MgaW4gZGV2ZWxvcG1lbnQuIFRvIHN1cHBvcnQgc3RhdGlzdGljIGZpZWxkIHVzYWdlIHdpdGggYWxpYXMgdG9rZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZSgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIG9ianMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgb2Jqc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVuYWJsZVN0YXRpc3RpYykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduLmFwcGx5KE9iamVjdCwgW3t9XS5jb25jYXQob2JqcykpO1xuICB9XG4gIHJlY29yZGluZyA9IGZhbHNlO1xuICB2YXIgcmV0ID0ge307XG4gIG9ianMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgaWYgKF90eXBlb2Yob2JqKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmV0LCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgICByZXR1cm4gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgcmVjb3JkaW5nID0gdHJ1ZTtcbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqIEBpbnRlcm5hbCBJbnRlcm5hbCBVc2FnZS4gTm90IHVzZSBpbiB5b3VyIHByb2R1Y3Rpb24uICovXG5leHBvcnQgdmFyIHN0YXRpc3RpYyA9IHt9O1xuXG4vKiogQGludGVybmFsIEludGVybmFsIFVzYWdlLiBOb3QgdXNlIGluIHlvdXIgcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCB2YXIgX3N0YXRpc3RpY19idWlsZF8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vKiogU3RhdGlzdGljIHRva2VuIHVzYWdlIGNhc2UuIFNob3VsZCB1c2UgYG1lcmdlYCBmdW5jdGlvbiBpZiB5b3UgZG8gbm90IHdhbnQgc3ByZWFkIHJlY29yZC4gKi9cbnZhciBzdGF0aXN0aWNUb2tlbiA9IGZ1bmN0aW9uIHN0YXRpc3RpY1Rva2VuKHRva2VuKSB7XG4gIHZhciB0b2tlbktleXM7XG4gIHZhciBwcm94eSA9IHRva2VuO1xuICB2YXIgZmx1c2ggPSBub29wO1xuICBpZiAoZW5hYmxlU3RhdGlzdGljICYmIHR5cGVvZiBQcm94eSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0b2tlbktleXMgPSBuZXcgU2V0KCk7XG4gICAgcHJveHkgPSBuZXcgUHJveHkodG9rZW4sIHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KG9iaiwgcHJvcCkge1xuICAgICAgICBpZiAocmVjb3JkaW5nKSB7XG4gICAgICAgICAgdmFyIF90b2tlbktleXM7XG4gICAgICAgICAgKF90b2tlbktleXMgPSB0b2tlbktleXMpID09PSBudWxsIHx8IF90b2tlbktleXMgPT09IHZvaWQgMCB8fCBfdG9rZW5LZXlzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqW3Byb3BdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZsdXNoID0gZnVuY3Rpb24gZmx1c2goY29tcG9uZW50TmFtZSwgY29tcG9uZW50VG9rZW4pIHtcbiAgICAgIHZhciBfc3RhdGlzdGljJGNvbXBvbmVudE47XG4gICAgICBzdGF0aXN0aWNbY29tcG9uZW50TmFtZV0gPSB7XG4gICAgICAgIGdsb2JhbDogQXJyYXkuZnJvbSh0b2tlbktleXMpLFxuICAgICAgICBjb21wb25lbnQ6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgKF9zdGF0aXN0aWMkY29tcG9uZW50TiA9IHN0YXRpc3RpY1tjb21wb25lbnROYW1lXSkgPT09IG51bGwgfHwgX3N0YXRpc3RpYyRjb21wb25lbnROID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc3RhdGlzdGljJGNvbXBvbmVudE4uY29tcG9uZW50KSwgY29tcG9uZW50VG9rZW4pXG4gICAgICB9O1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB0b2tlbjogcHJveHksXG4gICAga2V5czogdG9rZW5LZXlzLFxuICAgIGZsdXNoOiBmbHVzaFxuICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHN0YXRpc3RpY1Rva2VuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js\n"); /***/ }), @@ -137,7 +303,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((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/* module decorator */ module = __webpack_require__.hmd(module);\nfunction useProdHMR() {\n return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ( false ? 0 : useDevHMR);\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif ( true && module && module.hot && 0) { var originWebpackHotUpdate, win; }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9ob29rcy91c2VITVIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQXFDLEdBQUcsQ0FBVSxZQUFZLEVBQUM7O0FBRTlFO0FBQ0E7QUFDQSxJQUFJLEtBQXNFLDRCQUE0QixDQUE2QixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzL2VzL2hvb2tzL3VzZUhNUi5qcz9hZTc1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHVzZVByb2RITVIoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cbnZhciB3ZWJwYWNrSE1SID0gZmFsc2U7XG5mdW5jdGlvbiB1c2VEZXZITVIoKSB7XG4gIHJldHVybiB3ZWJwYWNrSE1SO1xufVxuZXhwb3J0IGRlZmF1bHQgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IHVzZVByb2RITVIgOiB1c2VEZXZITVI7XG5cbi8vIFdlYnBhY2sgYG1vZHVsZS5ob3QuYWNjZXB0YCBkbyBub3Qgc3VwcG9ydCBhbnkgZGVwcyB1cGRhdGUgdHJpZ2dlclxuLy8gV2UgaGF2ZSB0byBoYWNrIGhhbmRsZXIgdG8gZm9yY2UgbWFyayBhcyBIUk1cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZSAmJiBtb2R1bGUuaG90ICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIHZhciB3aW4gPSB3aW5kb3c7XG4gIGlmICh0eXBlb2Ygd2luLndlYnBhY2tIb3RVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgb3JpZ2luV2VicGFja0hvdFVwZGF0ZSA9IHdpbi53ZWJwYWNrSG90VXBkYXRlO1xuICAgIHdpbi53ZWJwYWNrSG90VXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2VicGFja0hNUiA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2VicGFja0hNUiA9IGZhbHNlO1xuICAgICAgfSwgMCk7XG4gICAgICByZXR1cm4gb3JpZ2luV2VicGFja0hvdFVwZGF0ZS5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/hooks/useHMR.js\n"); +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/* module decorator */ module = __webpack_require__.hmd(module);\nfunction useProdHMR() {\n return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ( false ? 0 : useDevHMR);\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif ( true && module && module.hot && 0) { var originWebpackHotUpdate, win; }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9ob29rcy91c2VITVIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQXFDLEdBQUcsQ0FBVSxZQUFZLEVBQUM7O0FBRTlFO0FBQ0E7QUFDQSxJQUFJLEtBQXNFLDRCQUE0QixDQUE2QixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzL2VzL2hvb2tzL3VzZUhNUi5qcz9hZTc1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHVzZVByb2RITVIoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cbnZhciB3ZWJwYWNrSE1SID0gZmFsc2U7XG5mdW5jdGlvbiB1c2VEZXZITVIoKSB7XG4gIHJldHVybiB3ZWJwYWNrSE1SO1xufVxuZXhwb3J0IGRlZmF1bHQgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IHVzZVByb2RITVIgOiB1c2VEZXZITVI7XG5cbi8vIFdlYnBhY2sgYG1vZHVsZS5ob3QuYWNjZXB0YCBkbyBub3Qgc3VwcG9ydCBhbnkgZGVwcyB1cGRhdGUgdHJpZ2dlclxuLy8gV2UgaGF2ZSB0byBoYWNrIGhhbmRsZXIgdG8gZm9yY2UgbWFyayBhcyBIUk1cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZSAmJiBtb2R1bGUuaG90ICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIFVzZSBgZ2xvYmFsVGhpc2AgZmlyc3QsIGFuZCBgd2luZG93YCBmb3Igb2xkZXIgYnJvd3NlcnNcbiAgLy8gY29uc3Qgd2luID0gZ2xvYmFsVGhpcyBhcyBhbnk7XG4gIHZhciB3aW4gPSB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWxUaGlzIDogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiBudWxsO1xuICBpZiAod2luICYmIHR5cGVvZiB3aW4ud2VicGFja0hvdFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBvcmlnaW5XZWJwYWNrSG90VXBkYXRlID0gd2luLndlYnBhY2tIb3RVcGRhdGU7XG4gICAgd2luLndlYnBhY2tIb3RVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3ZWJwYWNrSE1SID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICB3ZWJwYWNrSE1SID0gZmFsc2U7XG4gICAgICB9LCAwKTtcbiAgICAgIHJldHVybiBvcmlnaW5XZWJwYWNrSG90VXBkYXRlLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/hooks/useHMR.js\n"); /***/ }), @@ -148,7 +314,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ STYLE_PREFIX: () => (/* binding */ STYLE_PREFIX),\n/* harmony export */ \"default\": () => (/* binding */ useStyleRegister),\n/* harmony export */ extract: () => (/* binding */ extract),\n/* harmony export */ normalizeStyle: () => (/* binding */ normalizeStyle),\n/* harmony export */ parseStyle: () => (/* binding */ parseStyle),\n/* harmony export */ uniqueHash: () => (/* binding */ uniqueHash)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.browser.esm.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! stylis */ \"./node_modules/stylis/src/Serializer.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! stylis */ \"./node_modules/stylis/src/Parser.js\");\n/* harmony import */ var _linters__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../linters */ \"./node_modules/@ant-design/cssinjs/es/linters/index.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util */ \"./node_modules/@ant-design/cssinjs/es/util/index.js\");\n/* harmony import */ var _util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../util/cacheMapUtil */ \"./node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js\");\n/* harmony import */ var _useGlobalCache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./useGlobalCache */ \"./node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js\");\n\n\n\n\n\n\n\n\n\n// @ts-ignore\n\n\n\n\n\n\n\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nfunction normalizeStyle(styleStr) {\n var serialized = (0,stylis__WEBPACK_IMPORTED_MODULE_15__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_16__.compile)(styleStr), stylis__WEBPACK_IMPORTED_MODULE_15__.stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n return (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n // 注入 hashId\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n var fullPath = k.trim().split(/\\s+/);\n\n // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n// Parse CSSObject to style content\nvar parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n return (trans === null || trans === void 0 || (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style);\n\n // Normal CSSObject\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false;\n\n // 当成嵌套对象来处理\n var mergedKey = key.trim();\n // Whether treat child as root. In most case it is false.\n var nextRoot = false;\n\n // 拆分多个选择器\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n effectStyle = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n function appendStyle(cssKey, cssValue) {\n if ( true && ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [_linters__WEBPACK_IMPORTED_MODULE_10__.contentQuotesLinter, _linters__WEBPACK_IMPORTED_MODULE_10__.hashedAnimationLinter].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(linters)).forEach(function (linter) {\n return linter(cssKey, cssValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n }\n\n // 如果是样式则直接插入\n var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n });\n\n // Auto suffix with px\n var formatValue = cssValue;\n if (!_emotion_unitless__WEBPACK_IMPORTED_MODULE_9__[\"default\"][cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n }\n\n // handle animationName & Keyframe value\n if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n parseKeyframes(cssValue);\n formatValue = cssValue.getName(hashId);\n }\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n actualValue.forEach(function (item) {\n appendStyle(key, item);\n });\n } else {\n appendStyle(key, actualValue);\n }\n }\n });\n }\n });\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer) {\n styleStr = \"@layer \".concat(layer.name, \" {\").concat(styleStr, \"}\");\n if (layer.dependencies) {\n effectStyle[\"@layer \".concat(layer.name)] = layer.dependencies.map(function (deps) {\n return \"@layer \".concat(deps, \", \").concat(layer.name, \";\");\n }).join('\\n');\n }\n }\n return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// == Register ==\n// ============================================================================\nfunction uniqueHash(path, styleStr) {\n return (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n return null;\n}\nvar STYLE_PREFIX = 'style';\n/**\n * Register a style to the global style sheet.\n */\nfunction useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer,\n nonce = info.nonce,\n clientOnly = info.clientOnly,\n _info$order = info.order,\n order = _info$order === void 0 ? 0 : _info$order;\n var _React$useContext = react__WEBPACK_IMPORTED_MODULE_8__.useContext(_StyleContext__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters,\n cache = _React$useContext.cache,\n enableLayer = _React$useContext.layer;\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey];\n if (enableLayer) {\n fullPath.push('layer');\n }\n fullPath.push.apply(fullPath, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path));\n\n // Check if need insert style\n var isMergedClientSide = _util__WEBPACK_IMPORTED_MODULE_12__.isClientSide;\n if ( true && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n var _useGlobalCache = (0,_useGlobalCache__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(STYLE_PREFIX, fullPath,\n // Create cache if needed\n function () {\n var cachePath = fullPath.join('|');\n\n // Get style from SSR inline style directly\n if ((0,_util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.existPath)(cachePath)) {\n var _getStyleAndHash = (0,_util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.getStyleAndHash)(cachePath),\n _getStyleAndHash2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_getStyleAndHash, 2),\n inlineCacheStyleStr = _getStyleAndHash2[0],\n styleHash = _getStyleAndHash2[1];\n if (inlineCacheStyleStr) {\n return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n }\n }\n\n // Generate style\n var styleObj = styleFn();\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: enableLayer ? layer : undefined,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n },\n // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref2, 3),\n styleId = _ref3[2];\n if ((fromHMR || autoClear) && _util__WEBPACK_IMPORTED_MODULE_12__.isClientSide) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.removeCSS)(styleId, {\n mark: _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK\n });\n }\n },\n // Effect: Inject style here\n function (_ref4) {\n var _ref5 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref4, 4),\n styleStr = _ref5[0],\n _ = _ref5[1],\n styleId = _ref5[2],\n effectStyle = _ref5[3];\n if (isMergedClientSide && styleStr !== _util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.CSS_FILE_STYLE) {\n var mergedCSSConfig = {\n mark: _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK,\n prepend: enableLayer ? false : 'queue',\n attachTo: container,\n priority: order\n };\n var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n if (nonceStr) {\n mergedCSSConfig.csp = {\n nonce: nonceStr\n };\n }\n\n // ================= Split Effect Style =================\n // We will split effectStyle here since @layer should be at the top level\n var effectLayerKeys = [];\n var effectRestKeys = [];\n Object.keys(effectStyle).forEach(function (key) {\n if (key.startsWith('@layer')) {\n effectLayerKeys.push(key);\n } else {\n effectRestKeys.push(key);\n }\n });\n\n // ================= Inject Layer Style =================\n // Inject layer style\n effectLayerKeys.forEach(function (effectKey) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(normalizeStyle(effectStyle[effectKey]), \"_layer-\".concat(effectKey), (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, mergedCSSConfig), {}, {\n prepend: true\n }));\n });\n\n // ==================== Inject Style ====================\n // Inject style\n var style = (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(styleStr, styleId, mergedCSSConfig);\n style[_StyleContext__WEBPACK_IMPORTED_MODULE_11__.CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(_StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_TOKEN, tokenKey);\n\n // Debug usage. Dev only\n if (true) {\n style.setAttribute(_StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_CACHE_PATH, fullPath.join('|'));\n }\n\n // ================ Inject Effect Style =================\n // Inject client side effect style\n effectRestKeys.forEach(function (effectKey) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n });\n }\n }),\n _useGlobalCache2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n return function (node) {\n var styleNode;\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Empty, null);\n } else {\n var _ref6;\n styleNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(\"style\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, (_ref6 = {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref6, _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_TOKEN, cachedTokenKey), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref6, _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK, cachedStyleId), _ref6), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(react__WEBPACK_IMPORTED_MODULE_8__.Fragment, null, styleNode, node);\n };\n}\nvar extract = function extract(cache, effectStyles, options) {\n var _cache = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(cache, 6),\n styleStr = _cache[0],\n tokenKey = _cache[1],\n styleId = _cache[2],\n effectStyle = _cache[3],\n clientOnly = _cache[4],\n order = _cache[5];\n var _ref7 = options || {},\n plain = _ref7.plain;\n\n // Skip client only style\n if (clientOnly) {\n return null;\n }\n var keyStyleText = styleStr;\n\n // ====================== Share ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n\n // ====================== Style ======================\n keyStyleText = (0,_util__WEBPACK_IMPORTED_MODULE_12__.toStyleStr)(styleStr, tokenKey, styleId, sharedAttrs, plain);\n\n // =============== Create effect style ===============\n if (effectStyle) {\n Object.keys(effectStyle).forEach(function (effectKey) {\n // Effect style can be reused\n if (!effectStyles[effectKey]) {\n effectStyles[effectKey] = true;\n var effectStyleStr = normalizeStyle(effectStyle[effectKey]);\n var effectStyleHTML = (0,_util__WEBPACK_IMPORTED_MODULE_12__.toStyleStr)(effectStyleStr, tokenKey, \"_effect-\".concat(effectKey), sharedAttrs, plain);\n if (effectKey.startsWith('@layer')) {\n keyStyleText = effectStyleHTML + keyStyleText;\n } else {\n keyStyleText += effectStyleHTML;\n }\n }\n });\n }\n return [order, styleId, keyStyleText];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9ob29rcy91c2VTdHlsZVJlZ2lzdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ2M7QUFDSDtBQUNDO0FBQ1E7QUFDdEI7QUFDdkI7QUFDZ0M7QUFDbEM7QUFDL0I7QUFDeUM7QUFDYztBQUNpQjtBQUNtQztBQUN4RDtBQUMrQjtBQUNwQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLG1CQUFtQixrREFBUyxDQUFDLGdEQUFPLFlBQVksOENBQVM7QUFDekQsK0JBQStCLFFBQVEsR0FBRyxNQUFNO0FBQ2hEO0FBQ0E7QUFDQSxTQUFTLDZFQUFPO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHdGQUFrQjtBQUNoRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCx1QkFBdUIsb0ZBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDtBQUM5RDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZFQUFPO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaLDZCQUE2QixPQUFPLEtBQUssa0JBQWtCLFFBQVEsTUFBTSxLQUFLLGtCQUFrQjtBQUNoRyw4QkFBOEIsR0FBRyxZQUFZLE9BQU8sR0FBRyxZQUFZO0FBQ25FO0FBQ0EseUNBQXlDLFdBQVc7QUFDcEQsb0VBQW9FLEtBQUssZ0JBQWdCO0FBQ3pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyx3RkFBa0I7QUFDM0QsYUFBYTtBQUNiLDJCQUEyQixvRkFBYztBQUN6QztBQUNBO0FBQ0Esd0JBQXdCLG9GQUFhLENBQUMsb0ZBQWEsR0FBRztBQUN0RDtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsZ0JBQWdCLEtBQXFDLEtBQUssNkVBQU87QUFDakUsZUFBZSwwREFBbUIsRUFBRSw0REFBcUIsU0FBUyx3RkFBa0I7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsZUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7O0FBRWI7QUFDQTtBQUNBLGlCQUFpQix5REFBUTtBQUN6QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3RUFBd0U7QUFDeEU7QUFDQTtBQUNBLGNBQWMsNkVBQU87QUFDckI7QUFDQTtBQUNBLGFBQWE7QUFDYixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUJBQWlCLHFCQUFxQjtBQUN0QyxJQUFJO0FBQ0osK0NBQStDLHNCQUFzQjtBQUNyRTtBQUNBO0FBQ0EsaUVBQWlFO0FBQ2pFLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDTztBQUNQLFNBQVMseURBQUk7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDZDQUFnQixDQUFDLHNEQUFZO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBa0I7O0FBRWxEO0FBQ0EsMkJBQTJCLGdEQUFZO0FBQ3ZDLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBLHdCQUF3Qiw0REFBYztBQUN0QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVLDhEQUFTO0FBQ25CLCtCQUErQixvRUFBZTtBQUM5Qyw4QkFBOEIsb0ZBQWM7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsOERBQThEO0FBQzlEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULHVCQUF1QixvRkFBYztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxrQkFBa0Isb0ZBQWM7QUFDaEM7QUFDQSxvQ0FBb0MsZ0RBQVk7QUFDaEQsUUFBUSxvRUFBUztBQUNqQixnQkFBZ0IscURBQVM7QUFDekIsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxrQkFBa0Isb0ZBQWM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsK0RBQWM7QUFDM0Q7QUFDQSxnQkFBZ0IscURBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0EsVUFBVSxvRUFBUyxzRUFBc0Usb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLHNCQUFzQjtBQUM3STtBQUNBLFdBQVc7QUFDWCxTQUFTOztBQUVUO0FBQ0E7QUFDQSxvQkFBb0Isb0VBQVM7QUFDN0IsY0FBYyw4REFBa0I7O0FBRWhDO0FBQ0EsMkJBQTJCLHNEQUFVOztBQUVyQztBQUNBLFlBQVksSUFBcUM7QUFDakQsNkJBQTZCLDJEQUFlO0FBQzVDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsb0VBQVM7QUFDbkIsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMLHVCQUF1QixvRkFBYztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsZ0RBQW1CO0FBQ2xELE1BQU07QUFDTjtBQUNBLCtCQUErQixnREFBbUIsVUFBVSw4RUFBUSxHQUFHLGFBQWEsRUFBRSxxRkFBZSxRQUFRLHNEQUFVLG1CQUFtQixxRkFBZSxRQUFRLHFEQUFTO0FBQzFLO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHdCQUF3QixnREFBbUIsQ0FBQywyQ0FBYztBQUMxRDtBQUNBO0FBQ087QUFDUCxlQUFlLG9GQUFjO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixrREFBVTs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsa0RBQVU7QUFDeEM7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzL2VzL2hvb2tzL3VzZVN0eWxlUmVnaXN0ZXIuanM/ZGNlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheVwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IGhhc2ggZnJvbSAnQGVtb3Rpb24vaGFzaCc7XG5pbXBvcnQgeyByZW1vdmVDU1MsIHVwZGF0ZUNTUyB9IGZyb20gXCJyYy11dGlsL2VzL0RvbS9keW5hbWljQ1NTXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgdW5pdGxlc3MgZnJvbSAnQGVtb3Rpb24vdW5pdGxlc3MnO1xuaW1wb3J0IHsgY29tcGlsZSwgc2VyaWFsaXplLCBzdHJpbmdpZnkgfSBmcm9tICdzdHlsaXMnO1xuaW1wb3J0IHsgY29udGVudFF1b3Rlc0xpbnRlciwgaGFzaGVkQW5pbWF0aW9uTGludGVyIH0gZnJvbSBcIi4uL2xpbnRlcnNcIjtcbmltcG9ydCBTdHlsZUNvbnRleHQsIHsgQVRUUl9DQUNIRV9QQVRILCBBVFRSX01BUkssIEFUVFJfVE9LRU4sIENTU19JTl9KU19JTlNUQU5DRSB9IGZyb20gXCIuLi9TdHlsZUNvbnRleHRcIjtcbmltcG9ydCB7IGlzQ2xpZW50U2lkZSwgdG9TdHlsZVN0ciB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBDU1NfRklMRV9TVFlMRSwgZXhpc3RQYXRoLCBnZXRTdHlsZUFuZEhhc2ggfSBmcm9tIFwiLi4vdXRpbC9jYWNoZU1hcFV0aWxcIjtcbmltcG9ydCB1c2VHbG9iYWxDYWNoZSBmcm9tIFwiLi91c2VHbG9iYWxDYWNoZVwiO1xudmFyIFNLSVBfQ0hFQ0sgPSAnX3NraXBfY2hlY2tfJztcbnZhciBNVUxUSV9WQUxVRSA9ICdfbXVsdGlfdmFsdWVfJztcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFByZXByb2Nlc3NvciBzdHlsZSBjb250ZW50IHRvIGJyb3dzZXIgc3VwcG9ydCBvbmVcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTdHlsZShzdHlsZVN0cikge1xuICB2YXIgc2VyaWFsaXplZCA9IHNlcmlhbGl6ZShjb21waWxlKHN0eWxlU3RyKSwgc3RyaW5naWZ5KTtcbiAgcmV0dXJuIHNlcmlhbGl6ZWQucmVwbGFjZSgvXFx7JSUlXFw6W147XTt9L2csICc7Jyk7XG59XG5mdW5jdGlvbiBpc0NvbXBvdW5kQ1NTUHJvcGVydHkodmFsdWUpIHtcbiAgcmV0dXJuIF90eXBlb2YodmFsdWUpID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiAoU0tJUF9DSEVDSyBpbiB2YWx1ZSB8fCBNVUxUSV9WQUxVRSBpbiB2YWx1ZSk7XG59XG5cbi8vIOazqOWFpSBoYXNoIOWAvFxuZnVuY3Rpb24gaW5qZWN0U2VsZWN0b3JIYXNoKGtleSwgaGFzaElkLCBoYXNoUHJpb3JpdHkpIHtcbiAgaWYgKCFoYXNoSWQpIHtcbiAgICByZXR1cm4ga2V5O1xuICB9XG4gIHZhciBoYXNoQ2xhc3NOYW1lID0gXCIuXCIuY29uY2F0KGhhc2hJZCk7XG4gIHZhciBoYXNoU2VsZWN0b3IgPSBoYXNoUHJpb3JpdHkgPT09ICdsb3cnID8gXCI6d2hlcmUoXCIuY29uY2F0KGhhc2hDbGFzc05hbWUsIFwiKVwiKSA6IGhhc2hDbGFzc05hbWU7XG5cbiAgLy8g5rOo5YWlIGhhc2hJZFxuICB2YXIga2V5cyA9IGtleS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaykge1xuICAgIHZhciBfZmlyc3RQYXRoJG1hdGNoO1xuICAgIHZhciBmdWxsUGF0aCA9IGsudHJpbSgpLnNwbGl0KC9cXHMrLyk7XG5cbiAgICAvLyDlpoLmnpwgU2VsZWN0b3Ig56ys5LiA5Liq5pivIEhUTUwgRWxlbWVudO+8jOmCo+aIkeS7rOWwseaPkuWIsOWug+eahOWQjumdouOAguWPjeS5i++8jOWwseaPkuWIsOacgOWJjemdouOAglxuICAgIHZhciBmaXJzdFBhdGggPSBmdWxsUGF0aFswXSB8fCAnJztcbiAgICB2YXIgaHRtbEVsZW1lbnQgPSAoKF9maXJzdFBhdGgkbWF0Y2ggPSBmaXJzdFBhdGgubWF0Y2goL15cXHcrLykpID09PSBudWxsIHx8IF9maXJzdFBhdGgkbWF0Y2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9maXJzdFBhdGgkbWF0Y2hbMF0pIHx8ICcnO1xuICAgIGZpcnN0UGF0aCA9IFwiXCIuY29uY2F0KGh0bWxFbGVtZW50KS5jb25jYXQoaGFzaFNlbGVjdG9yKS5jb25jYXQoZmlyc3RQYXRoLnNsaWNlKGh0bWxFbGVtZW50Lmxlbmd0aCkpO1xuICAgIHJldHVybiBbZmlyc3RQYXRoXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGZ1bGxQYXRoLnNsaWNlKDEpKSkuam9pbignICcpO1xuICB9KTtcbiAgcmV0dXJuIGtleXMuam9pbignLCcpO1xufVxuLy8gUGFyc2UgQ1NTT2JqZWN0IHRvIHN0eWxlIGNvbnRlbnRcbmV4cG9ydCB2YXIgcGFyc2VTdHlsZSA9IGZ1bmN0aW9uIHBhcnNlU3R5bGUoaW50ZXJwb2xhdGlvbikge1xuICB2YXIgY29uZmlnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHtcbiAgICAgIHJvb3Q6IHRydWUsXG4gICAgICBwYXJlbnRTZWxlY3RvcnM6IFtdXG4gICAgfSxcbiAgICByb290ID0gX3JlZi5yb290LFxuICAgIGluamVjdEhhc2ggPSBfcmVmLmluamVjdEhhc2gsXG4gICAgcGFyZW50U2VsZWN0b3JzID0gX3JlZi5wYXJlbnRTZWxlY3RvcnM7XG4gIHZhciBoYXNoSWQgPSBjb25maWcuaGFzaElkLFxuICAgIGxheWVyID0gY29uZmlnLmxheWVyLFxuICAgIHBhdGggPSBjb25maWcucGF0aCxcbiAgICBoYXNoUHJpb3JpdHkgPSBjb25maWcuaGFzaFByaW9yaXR5LFxuICAgIF9jb25maWckdHJhbnNmb3JtZXJzID0gY29uZmlnLnRyYW5zZm9ybWVycyxcbiAgICB0cmFuc2Zvcm1lcnMgPSBfY29uZmlnJHRyYW5zZm9ybWVycyA9PT0gdm9pZCAwID8gW10gOiBfY29uZmlnJHRyYW5zZm9ybWVycyxcbiAgICBfY29uZmlnJGxpbnRlcnMgPSBjb25maWcubGludGVycyxcbiAgICBsaW50ZXJzID0gX2NvbmZpZyRsaW50ZXJzID09PSB2b2lkIDAgPyBbXSA6IF9jb25maWckbGludGVycztcbiAgdmFyIHN0eWxlU3RyID0gJyc7XG4gIHZhciBlZmZlY3RTdHlsZSA9IHt9O1xuICBmdW5jdGlvbiBwYXJzZUtleWZyYW1lcyhrZXlmcmFtZXMpIHtcbiAgICB2YXIgYW5pbWF0aW9uTmFtZSA9IGtleWZyYW1lcy5nZXROYW1lKGhhc2hJZCk7XG4gICAgaWYgKCFlZmZlY3RTdHlsZVthbmltYXRpb25OYW1lXSkge1xuICAgICAgdmFyIF9wYXJzZVN0eWxlID0gcGFyc2VTdHlsZShrZXlmcmFtZXMuc3R5bGUsIGNvbmZpZywge1xuICAgICAgICAgIHJvb3Q6IGZhbHNlLFxuICAgICAgICAgIHBhcmVudFNlbGVjdG9yczogcGFyZW50U2VsZWN0b3JzXG4gICAgICAgIH0pLFxuICAgICAgICBfcGFyc2VTdHlsZTIgPSBfc2xpY2VkVG9BcnJheShfcGFyc2VTdHlsZSwgMSksXG4gICAgICAgIF9wYXJzZWRTdHIgPSBfcGFyc2VTdHlsZTJbMF07XG4gICAgICBlZmZlY3RTdHlsZVthbmltYXRpb25OYW1lXSA9IFwiQGtleWZyYW1lcyBcIi5jb25jYXQoa2V5ZnJhbWVzLmdldE5hbWUoaGFzaElkKSkuY29uY2F0KF9wYXJzZWRTdHIpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBmbGF0dGVuTGlzdChsaXN0KSB7XG4gICAgdmFyIGZ1bGxMaXN0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBbXTtcbiAgICBsaXN0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgICAgIGZsYXR0ZW5MaXN0KGl0ZW0sIGZ1bGxMaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSkge1xuICAgICAgICBmdWxsTGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmdWxsTGlzdDtcbiAgfVxuICB2YXIgZmxhdHRlblN0eWxlTGlzdCA9IGZsYXR0ZW5MaXN0KEFycmF5LmlzQXJyYXkoaW50ZXJwb2xhdGlvbikgPyBpbnRlcnBvbGF0aW9uIDogW2ludGVycG9sYXRpb25dKTtcbiAgZmxhdHRlblN0eWxlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChvcmlnaW5TdHlsZSkge1xuICAgIC8vIE9ubHkgcm9vdCBsZXZlbCBjYW4gdXNlIHJhdyBzdHJpbmdcbiAgICB2YXIgc3R5bGUgPSB0eXBlb2Ygb3JpZ2luU3R5bGUgPT09ICdzdHJpbmcnICYmICFyb290ID8ge30gOiBvcmlnaW5TdHlsZTtcbiAgICBpZiAodHlwZW9mIHN0eWxlID09PSAnc3RyaW5nJykge1xuICAgICAgc3R5bGVTdHIgKz0gXCJcIi5jb25jYXQoc3R5bGUsIFwiXFxuXCIpO1xuICAgIH0gZWxzZSBpZiAoc3R5bGUuX2tleWZyYW1lKSB7XG4gICAgICAvLyBLZXlmcmFtZVxuICAgICAgcGFyc2VLZXlmcmFtZXMoc3R5bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWVyZ2VkU3R5bGUgPSB0cmFuc2Zvcm1lcnMucmVkdWNlKGZ1bmN0aW9uIChwcmV2LCB0cmFucykge1xuICAgICAgICB2YXIgX3RyYW5zJHZpc2l0O1xuICAgICAgICByZXR1cm4gKHRyYW5zID09PSBudWxsIHx8IHRyYW5zID09PSB2b2lkIDAgfHwgKF90cmFucyR2aXNpdCA9IHRyYW5zLnZpc2l0KSA9PT0gbnVsbCB8fCBfdHJhbnMkdmlzaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmFucyR2aXNpdC5jYWxsKHRyYW5zLCBwcmV2KSkgfHwgcHJldjtcbiAgICAgIH0sIHN0eWxlKTtcblxuICAgICAgLy8gTm9ybWFsIENTU09iamVjdFxuICAgICAgT2JqZWN0LmtleXMobWVyZ2VkU3R5bGUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBtZXJnZWRTdHlsZVtrZXldO1xuICAgICAgICBpZiAoX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIChrZXkgIT09ICdhbmltYXRpb25OYW1lJyB8fCAhdmFsdWUuX2tleWZyYW1lKSAmJiAhaXNDb21wb3VuZENTU1Byb3BlcnR5KHZhbHVlKSkge1xuICAgICAgICAgIHZhciBzdWJJbmplY3RIYXNoID0gZmFsc2U7XG5cbiAgICAgICAgICAvLyDlvZPmiJDltYzlpZflr7nosaHmnaXlpITnkIZcbiAgICAgICAgICB2YXIgbWVyZ2VkS2V5ID0ga2V5LnRyaW0oKTtcbiAgICAgICAgICAvLyBXaGV0aGVyIHRyZWF0IGNoaWxkIGFzIHJvb3QuIEluIG1vc3QgY2FzZSBpdCBpcyBmYWxzZS5cbiAgICAgICAgICB2YXIgbmV4dFJvb3QgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIOaLhuWIhuWkmuS4qumAieaLqeWZqFxuICAgICAgICAgIGlmICgocm9vdCB8fCBpbmplY3RIYXNoKSAmJiBoYXNoSWQpIHtcbiAgICAgICAgICAgIGlmIChtZXJnZWRLZXkuc3RhcnRzV2l0aCgnQCcpKSB7XG4gICAgICAgICAgICAgIC8vIOeVpei/h+WqkuS9k+afpeivou+8jOS6pOe7meWtkOiKgueCuee7p+e7reaPkuWFpSBoYXNoSWRcbiAgICAgICAgICAgICAgc3ViSW5qZWN0SGFzaCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyDms6jlhaUgaGFzaElkXG4gICAgICAgICAgICAgIG1lcmdlZEtleSA9IGluamVjdFNlbGVjdG9ySGFzaChrZXksIGhhc2hJZCwgaGFzaFByaW9yaXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHJvb3QgJiYgIWhhc2hJZCAmJiAobWVyZ2VkS2V5ID09PSAnJicgfHwgbWVyZ2VkS2V5ID09PSAnJykpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2Ugb2YgYHsgJyYnOiB7IGE6IHsgY29sb3I6ICdyZWQnIH0gfSB9YCBvciBgeyAnJzogeyBhOiB7IGNvbG9yOiAncmVkJyB9IH0gfWAgd2l0aG91dCBoYXNoSWQsXG4gICAgICAgICAgICAvLyB3ZSB3aWxsIGdldCBgJnthOntjb2xvcjpyZWQ7fX1gIG9yIGB7YTp7Y29sb3I6cmVkO319YCBzdHJpbmcgZm9yIHN0eWxpcyB0byBjb21waWxlLlxuICAgICAgICAgICAgLy8gQnV0IGl0IGRvZXMgbm90IGNvbmZvcm0gdG8gc3R5bGlzIHN5bnRheCxcbiAgICAgICAgICAgIC8vIGFuZCBmaW5hbGx5IHdlIHdpbGwgZ2V0IGB7Y29sb3I6cmVkO31gIGFzIGNzcywgd2hpY2ggaXMgd3JvbmcuXG4gICAgICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHJlbW92ZSBrZXkgaW4gcm9vdCwgYW5kIHRyZWF0IGNoaWxkIGB7IGE6IHsgY29sb3I6ICdyZWQnIH0gfWAgYXMgcm9vdC5cbiAgICAgICAgICAgIG1lcmdlZEtleSA9ICcnO1xuICAgICAgICAgICAgbmV4dFJvb3QgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgX3BhcnNlU3R5bGUzID0gcGFyc2VTdHlsZSh2YWx1ZSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgIHJvb3Q6IG5leHRSb290LFxuICAgICAgICAgICAgICBpbmplY3RIYXNoOiBzdWJJbmplY3RIYXNoLFxuICAgICAgICAgICAgICBwYXJlbnRTZWxlY3RvcnM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkocGFyZW50U2VsZWN0b3JzKSwgW21lcmdlZEtleV0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF9wYXJzZVN0eWxlNCA9IF9zbGljZWRUb0FycmF5KF9wYXJzZVN0eWxlMywgMiksXG4gICAgICAgICAgICBfcGFyc2VkU3RyMiA9IF9wYXJzZVN0eWxlNFswXSxcbiAgICAgICAgICAgIGNoaWxkRWZmZWN0U3R5bGUgPSBfcGFyc2VTdHlsZTRbMV07XG4gICAgICAgICAgZWZmZWN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGVmZmVjdFN0eWxlKSwgY2hpbGRFZmZlY3RTdHlsZSk7XG4gICAgICAgICAgc3R5bGVTdHIgKz0gXCJcIi5jb25jYXQobWVyZ2VkS2V5KS5jb25jYXQoX3BhcnNlZFN0cjIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBfdmFsdWU7XG4gICAgICAgICAgZnVuY3Rpb24gYXBwZW5kU3R5bGUoY3NzS2V5LCBjc3NWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgKF90eXBlb2YodmFsdWUpICE9PSAnb2JqZWN0JyB8fCAhKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgJiYgdmFsdWVbU0tJUF9DSEVDS10pKSkge1xuICAgICAgICAgICAgICBbY29udGVudFF1b3Rlc0xpbnRlciwgaGFzaGVkQW5pbWF0aW9uTGludGVyXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGxpbnRlcnMpKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW50ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGludGVyKGNzc0tleSwgY3NzVmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgICAgICAgICAgICBoYXNoSWQ6IGhhc2hJZCxcbiAgICAgICAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yczogcGFyZW50U2VsZWN0b3JzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDlpoLmnpzmmK/moLflvI/liJnnm7TmjqXmj5LlhaVcbiAgICAgICAgICAgIHZhciBzdHlsZU5hbWUgPSBjc3NLZXkucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcIi1cIi5jb25jYXQobWF0Y2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQXV0byBzdWZmaXggd2l0aCBweFxuICAgICAgICAgICAgdmFyIGZvcm1hdFZhbHVlID0gY3NzVmFsdWU7XG4gICAgICAgICAgICBpZiAoIXVuaXRsZXNzW2Nzc0tleV0gJiYgdHlwZW9mIGZvcm1hdFZhbHVlID09PSAnbnVtYmVyJyAmJiBmb3JtYXRWYWx1ZSAhPT0gMCkge1xuICAgICAgICAgICAgICBmb3JtYXRWYWx1ZSA9IFwiXCIuY29uY2F0KGZvcm1hdFZhbHVlLCBcInB4XCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBoYW5kbGUgYW5pbWF0aW9uTmFtZSAmIEtleWZyYW1lIHZhbHVlXG4gICAgICAgICAgICBpZiAoY3NzS2V5ID09PSAnYW5pbWF0aW9uTmFtZScgJiYgY3NzVmFsdWUgIT09IG51bGwgJiYgY3NzVmFsdWUgIT09IHZvaWQgMCAmJiBjc3NWYWx1ZS5fa2V5ZnJhbWUpIHtcbiAgICAgICAgICAgICAgcGFyc2VLZXlmcmFtZXMoY3NzVmFsdWUpO1xuICAgICAgICAgICAgICBmb3JtYXRWYWx1ZSA9IGNzc1ZhbHVlLmdldE5hbWUoaGFzaElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0eWxlU3RyICs9IFwiXCIuY29uY2F0KHN0eWxlTmFtZSwgXCI6XCIpLmNvbmNhdChmb3JtYXRWYWx1ZSwgXCI7XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgYWN0dWFsVmFsdWUgPSAoX3ZhbHVlID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbHVlLnZhbHVlKSAhPT0gbnVsbCAmJiBfdmFsdWUgIT09IHZvaWQgMCA/IF92YWx1ZSA6IHZhbHVlO1xuICAgICAgICAgIGlmIChfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCAmJiB2YWx1ZVtNVUxUSV9WQUxVRV0gJiYgQXJyYXkuaXNBcnJheShhY3R1YWxWYWx1ZSkpIHtcbiAgICAgICAgICAgIGFjdHVhbFZhbHVlLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgYXBwZW5kU3R5bGUoa2V5LCBpdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBlbmRTdHlsZShrZXksIGFjdHVhbFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIGlmICghcm9vdCkge1xuICAgIHN0eWxlU3RyID0gXCJ7XCIuY29uY2F0KHN0eWxlU3RyLCBcIn1cIik7XG4gIH0gZWxzZSBpZiAobGF5ZXIpIHtcbiAgICBzdHlsZVN0ciA9IFwiQGxheWVyIFwiLmNvbmNhdChsYXllci5uYW1lLCBcIiB7XCIpLmNvbmNhdChzdHlsZVN0ciwgXCJ9XCIpO1xuICAgIGlmIChsYXllci5kZXBlbmRlbmNpZXMpIHtcbiAgICAgIGVmZmVjdFN0eWxlW1wiQGxheWVyIFwiLmNvbmNhdChsYXllci5uYW1lKV0gPSBsYXllci5kZXBlbmRlbmNpZXMubWFwKGZ1bmN0aW9uIChkZXBzKSB7XG4gICAgICAgIHJldHVybiBcIkBsYXllciBcIi5jb25jYXQoZGVwcywgXCIsIFwiKS5jb25jYXQobGF5ZXIubmFtZSwgXCI7XCIpO1xuICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbc3R5bGVTdHIsIGVmZmVjdFN0eWxlXTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVIYXNoKHBhdGgsIHN0eWxlU3RyKSB7XG4gIHJldHVybiBoYXNoKFwiXCIuY29uY2F0KHBhdGguam9pbignJScpKS5jb25jYXQoc3R5bGVTdHIpKTtcbn1cbmZ1bmN0aW9uIEVtcHR5KCkge1xuICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydCB2YXIgU1RZTEVfUFJFRklYID0gJ3N0eWxlJztcbi8qKlxuICogUmVnaXN0ZXIgYSBzdHlsZSB0byB0aGUgZ2xvYmFsIHN0eWxlIHNoZWV0LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTdHlsZVJlZ2lzdGVyKGluZm8sIHN0eWxlRm4pIHtcbiAgdmFyIHRva2VuID0gaW5mby50b2tlbixcbiAgICBwYXRoID0gaW5mby5wYXRoLFxuICAgIGhhc2hJZCA9IGluZm8uaGFzaElkLFxuICAgIGxheWVyID0gaW5mby5sYXllcixcbiAgICBub25jZSA9IGluZm8ubm9uY2UsXG4gICAgY2xpZW50T25seSA9IGluZm8uY2xpZW50T25seSxcbiAgICBfaW5mbyRvcmRlciA9IGluZm8ub3JkZXIsXG4gICAgb3JkZXIgPSBfaW5mbyRvcmRlciA9PT0gdm9pZCAwID8gMCA6IF9pbmZvJG9yZGVyO1xuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFN0eWxlQ29udGV4dCksXG4gICAgYXV0b0NsZWFyID0gX1JlYWN0JHVzZUNvbnRleHQuYXV0b0NsZWFyLFxuICAgIG1vY2sgPSBfUmVhY3QkdXNlQ29udGV4dC5tb2NrLFxuICAgIGRlZmF1bHRDYWNoZSA9IF9SZWFjdCR1c2VDb250ZXh0LmRlZmF1bHRDYWNoZSxcbiAgICBoYXNoUHJpb3JpdHkgPSBfUmVhY3QkdXNlQ29udGV4dC5oYXNoUHJpb3JpdHksXG4gICAgY29udGFpbmVyID0gX1JlYWN0JHVzZUNvbnRleHQuY29udGFpbmVyLFxuICAgIHNzcklubGluZSA9IF9SZWFjdCR1c2VDb250ZXh0LnNzcklubGluZSxcbiAgICB0cmFuc2Zvcm1lcnMgPSBfUmVhY3QkdXNlQ29udGV4dC50cmFuc2Zvcm1lcnMsXG4gICAgbGludGVycyA9IF9SZWFjdCR1c2VDb250ZXh0LmxpbnRlcnMsXG4gICAgY2FjaGUgPSBfUmVhY3QkdXNlQ29udGV4dC5jYWNoZSxcbiAgICBlbmFibGVMYXllciA9IF9SZWFjdCR1c2VDb250ZXh0LmxheWVyO1xuICB2YXIgdG9rZW5LZXkgPSB0b2tlbi5fdG9rZW5LZXk7XG4gIHZhciBmdWxsUGF0aCA9IFt0b2tlbktleV07XG4gIGlmIChlbmFibGVMYXllcikge1xuICAgIGZ1bGxQYXRoLnB1c2goJ2xheWVyJyk7XG4gIH1cbiAgZnVsbFBhdGgucHVzaC5hcHBseShmdWxsUGF0aCwgX3RvQ29uc3VtYWJsZUFycmF5KHBhdGgpKTtcblxuICAvLyBDaGVjayBpZiBuZWVkIGluc2VydCBzdHlsZVxuICB2YXIgaXNNZXJnZWRDbGllbnRTaWRlID0gaXNDbGllbnRTaWRlO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBtb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICBpc01lcmdlZENsaWVudFNpZGUgPSBtb2NrID09PSAnY2xpZW50JztcbiAgfVxuICB2YXIgX3VzZUdsb2JhbENhY2hlID0gdXNlR2xvYmFsQ2FjaGUoU1RZTEVfUFJFRklYLCBmdWxsUGF0aCxcbiAgICAvLyBDcmVhdGUgY2FjaGUgaWYgbmVlZGVkXG4gICAgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNhY2hlUGF0aCA9IGZ1bGxQYXRoLmpvaW4oJ3wnKTtcblxuICAgICAgLy8gR2V0IHN0eWxlIGZyb20gU1NSIGlubGluZSBzdHlsZSBkaXJlY3RseVxuICAgICAgaWYgKGV4aXN0UGF0aChjYWNoZVBhdGgpKSB7XG4gICAgICAgIHZhciBfZ2V0U3R5bGVBbmRIYXNoID0gZ2V0U3R5bGVBbmRIYXNoKGNhY2hlUGF0aCksXG4gICAgICAgICAgX2dldFN0eWxlQW5kSGFzaDIgPSBfc2xpY2VkVG9BcnJheShfZ2V0U3R5bGVBbmRIYXNoLCAyKSxcbiAgICAgICAgICBpbmxpbmVDYWNoZVN0eWxlU3RyID0gX2dldFN0eWxlQW5kSGFzaDJbMF0sXG4gICAgICAgICAgc3R5bGVIYXNoID0gX2dldFN0eWxlQW5kSGFzaDJbMV07XG4gICAgICAgIGlmIChpbmxpbmVDYWNoZVN0eWxlU3RyKSB7XG4gICAgICAgICAgcmV0dXJuIFtpbmxpbmVDYWNoZVN0eWxlU3RyLCB0b2tlbktleSwgc3R5bGVIYXNoLCB7fSwgY2xpZW50T25seSwgb3JkZXJdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEdlbmVyYXRlIHN0eWxlXG4gICAgICB2YXIgc3R5bGVPYmogPSBzdHlsZUZuKCk7XG4gICAgICB2YXIgX3BhcnNlU3R5bGU1ID0gcGFyc2VTdHlsZShzdHlsZU9iaiwge1xuICAgICAgICAgIGhhc2hJZDogaGFzaElkLFxuICAgICAgICAgIGhhc2hQcmlvcml0eTogaGFzaFByaW9yaXR5LFxuICAgICAgICAgIGxheWVyOiBlbmFibGVMYXllciA/IGxheWVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHBhdGg6IHBhdGguam9pbignLScpLFxuICAgICAgICAgIHRyYW5zZm9ybWVyczogdHJhbnNmb3JtZXJzLFxuICAgICAgICAgIGxpbnRlcnM6IGxpbnRlcnNcbiAgICAgICAgfSksXG4gICAgICAgIF9wYXJzZVN0eWxlNiA9IF9zbGljZWRUb0FycmF5KF9wYXJzZVN0eWxlNSwgMiksXG4gICAgICAgIHBhcnNlZFN0eWxlID0gX3BhcnNlU3R5bGU2WzBdLFxuICAgICAgICBlZmZlY3RTdHlsZSA9IF9wYXJzZVN0eWxlNlsxXTtcbiAgICAgIHZhciBzdHlsZVN0ciA9IG5vcm1hbGl6ZVN0eWxlKHBhcnNlZFN0eWxlKTtcbiAgICAgIHZhciBzdHlsZUlkID0gdW5pcXVlSGFzaChmdWxsUGF0aCwgc3R5bGVTdHIpO1xuICAgICAgcmV0dXJuIFtzdHlsZVN0ciwgdG9rZW5LZXksIHN0eWxlSWQsIGVmZmVjdFN0eWxlLCBjbGllbnRPbmx5LCBvcmRlcl07XG4gICAgfSxcbiAgICAvLyBSZW1vdmUgY2FjaGUgaWYgbm8gbmVlZFxuICAgIGZ1bmN0aW9uIChfcmVmMiwgZnJvbUhNUikge1xuICAgICAgdmFyIF9yZWYzID0gX3NsaWNlZFRvQXJyYXkoX3JlZjIsIDMpLFxuICAgICAgICBzdHlsZUlkID0gX3JlZjNbMl07XG4gICAgICBpZiAoKGZyb21ITVIgfHwgYXV0b0NsZWFyKSAmJiBpc0NsaWVudFNpZGUpIHtcbiAgICAgICAgcmVtb3ZlQ1NTKHN0eWxlSWQsIHtcbiAgICAgICAgICBtYXJrOiBBVFRSX01BUktcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAvLyBFZmZlY3Q6IEluamVjdCBzdHlsZSBoZXJlXG4gICAgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICB2YXIgX3JlZjUgPSBfc2xpY2VkVG9BcnJheShfcmVmNCwgNCksXG4gICAgICAgIHN0eWxlU3RyID0gX3JlZjVbMF0sXG4gICAgICAgIF8gPSBfcmVmNVsxXSxcbiAgICAgICAgc3R5bGVJZCA9IF9yZWY1WzJdLFxuICAgICAgICBlZmZlY3RTdHlsZSA9IF9yZWY1WzNdO1xuICAgICAgaWYgKGlzTWVyZ2VkQ2xpZW50U2lkZSAmJiBzdHlsZVN0ciAhPT0gQ1NTX0ZJTEVfU1RZTEUpIHtcbiAgICAgICAgdmFyIG1lcmdlZENTU0NvbmZpZyA9IHtcbiAgICAgICAgICBtYXJrOiBBVFRSX01BUkssXG4gICAgICAgICAgcHJlcGVuZDogZW5hYmxlTGF5ZXIgPyBmYWxzZSA6ICdxdWV1ZScsXG4gICAgICAgICAgYXR0YWNoVG86IGNvbnRhaW5lcixcbiAgICAgICAgICBwcmlvcml0eTogb3JkZXJcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG5vbmNlU3RyID0gdHlwZW9mIG5vbmNlID09PSAnZnVuY3Rpb24nID8gbm9uY2UoKSA6IG5vbmNlO1xuICAgICAgICBpZiAobm9uY2VTdHIpIHtcbiAgICAgICAgICBtZXJnZWRDU1NDb25maWcuY3NwID0ge1xuICAgICAgICAgICAgbm9uY2U6IG5vbmNlU3RyXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PT09PT09PT09PT09PT09IFNwbGl0IEVmZmVjdCBTdHlsZSA9PT09PT09PT09PT09PT09PVxuICAgICAgICAvLyBXZSB3aWxsIHNwbGl0IGVmZmVjdFN0eWxlIGhlcmUgc2luY2UgQGxheWVyIHNob3VsZCBiZSBhdCB0aGUgdG9wIGxldmVsXG4gICAgICAgIHZhciBlZmZlY3RMYXllcktleXMgPSBbXTtcbiAgICAgICAgdmFyIGVmZmVjdFJlc3RLZXlzID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKGVmZmVjdFN0eWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0BsYXllcicpKSB7XG4gICAgICAgICAgICBlZmZlY3RMYXllcktleXMucHVzaChrZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZmZlY3RSZXN0S2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyA9PT09PT09PT09PT09PT09PSBJbmplY3QgTGF5ZXIgU3R5bGUgPT09PT09PT09PT09PT09PT1cbiAgICAgICAgLy8gSW5qZWN0IGxheWVyIHN0eWxlXG4gICAgICAgIGVmZmVjdExheWVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChlZmZlY3RLZXkpIHtcbiAgICAgICAgICB1cGRhdGVDU1Mobm9ybWFsaXplU3R5bGUoZWZmZWN0U3R5bGVbZWZmZWN0S2V5XSksIFwiX2xheWVyLVwiLmNvbmNhdChlZmZlY3RLZXkpLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lcmdlZENTU0NvbmZpZyksIHt9LCB7XG4gICAgICAgICAgICBwcmVwZW5kOiB0cnVlXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBJbmplY3QgU3R5bGUgPT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgLy8gSW5qZWN0IHN0eWxlXG4gICAgICAgIHZhciBzdHlsZSA9IHVwZGF0ZUNTUyhzdHlsZVN0ciwgc3R5bGVJZCwgbWVyZ2VkQ1NTQ29uZmlnKTtcbiAgICAgICAgc3R5bGVbQ1NTX0lOX0pTX0lOU1RBTkNFXSA9IGNhY2hlLmluc3RhbmNlSWQ7XG5cbiAgICAgICAgLy8gVXNlZCBmb3IgYHVzZUNhY2hlVG9rZW5gIHRvIHJlbW92ZSBvbiBiYXRjaCB3aGVuIHRva2VuIHJlbW92ZWRcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKEFUVFJfVE9LRU4sIHRva2VuS2V5KTtcblxuICAgICAgICAvLyBEZWJ1ZyB1c2FnZS4gRGV2IG9ubHlcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoQVRUUl9DQUNIRV9QQVRILCBmdWxsUGF0aC5qb2luKCd8JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gPT09PT09PT09PT09PT09PSBJbmplY3QgRWZmZWN0IFN0eWxlID09PT09PT09PT09PT09PT09XG4gICAgICAgIC8vIEluamVjdCBjbGllbnQgc2lkZSBlZmZlY3Qgc3R5bGVcbiAgICAgICAgZWZmZWN0UmVzdEtleXMuZm9yRWFjaChmdW5jdGlvbiAoZWZmZWN0S2V5KSB7XG4gICAgICAgICAgdXBkYXRlQ1NTKG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pLCBcIl9lZmZlY3QtXCIuY29uY2F0KGVmZmVjdEtleSksIG1lcmdlZENTU0NvbmZpZyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLFxuICAgIF91c2VHbG9iYWxDYWNoZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlR2xvYmFsQ2FjaGUsIDMpLFxuICAgIGNhY2hlZFN0eWxlU3RyID0gX3VzZUdsb2JhbENhY2hlMlswXSxcbiAgICBjYWNoZWRUb2tlbktleSA9IF91c2VHbG9iYWxDYWNoZTJbMV0sXG4gICAgY2FjaGVkU3R5bGVJZCA9IF91c2VHbG9iYWxDYWNoZTJbMl07XG4gIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgIHZhciBzdHlsZU5vZGU7XG4gICAgaWYgKCFzc3JJbmxpbmUgfHwgaXNNZXJnZWRDbGllbnRTaWRlIHx8ICFkZWZhdWx0Q2FjaGUpIHtcbiAgICAgIHN0eWxlTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEVtcHR5LCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9yZWY2O1xuICAgICAgc3R5bGVOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCBfZXh0ZW5kcyh7fSwgKF9yZWY2ID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfcmVmNiwgQVRUUl9UT0tFTiwgY2FjaGVkVG9rZW5LZXkpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjYsIEFUVFJfTUFSSywgY2FjaGVkU3R5bGVJZCksIF9yZWY2KSwge1xuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgIF9faHRtbDogY2FjaGVkU3R5bGVTdHJcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIHN0eWxlTm9kZSwgbm9kZSk7XG4gIH07XG59XG5leHBvcnQgdmFyIGV4dHJhY3QgPSBmdW5jdGlvbiBleHRyYWN0KGNhY2hlLCBlZmZlY3RTdHlsZXMsIG9wdGlvbnMpIHtcbiAgdmFyIF9jYWNoZSA9IF9zbGljZWRUb0FycmF5KGNhY2hlLCA2KSxcbiAgICBzdHlsZVN0ciA9IF9jYWNoZVswXSxcbiAgICB0b2tlbktleSA9IF9jYWNoZVsxXSxcbiAgICBzdHlsZUlkID0gX2NhY2hlWzJdLFxuICAgIGVmZmVjdFN0eWxlID0gX2NhY2hlWzNdLFxuICAgIGNsaWVudE9ubHkgPSBfY2FjaGVbNF0sXG4gICAgb3JkZXIgPSBfY2FjaGVbNV07XG4gIHZhciBfcmVmNyA9IG9wdGlvbnMgfHwge30sXG4gICAgcGxhaW4gPSBfcmVmNy5wbGFpbjtcblxuICAvLyBTa2lwIGNsaWVudCBvbmx5IHN0eWxlXG4gIGlmIChjbGllbnRPbmx5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmFyIGtleVN0eWxlVGV4dCA9IHN0eWxlU3RyO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT0gU2hhcmUgPT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVc2VkIGZvciByYy11dGlsXG4gIHZhciBzaGFyZWRBdHRycyA9IHtcbiAgICAnZGF0YS1yYy1vcmRlcic6ICdwcmVwZW5kUXVldWUnLFxuICAgICdkYXRhLXJjLXByaW9yaXR5JzogXCJcIi5jb25jYXQob3JkZXIpXG4gIH07XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBTdHlsZSA9PT09PT09PT09PT09PT09PT09PT09XG4gIGtleVN0eWxlVGV4dCA9IHRvU3R5bGVTdHIoc3R5bGVTdHIsIHRva2VuS2V5LCBzdHlsZUlkLCBzaGFyZWRBdHRycywgcGxhaW4pO1xuXG4gIC8vID09PT09PT09PT09PT09PSBDcmVhdGUgZWZmZWN0IHN0eWxlID09PT09PT09PT09PT09PVxuICBpZiAoZWZmZWN0U3R5bGUpIHtcbiAgICBPYmplY3Qua2V5cyhlZmZlY3RTdHlsZSkuZm9yRWFjaChmdW5jdGlvbiAoZWZmZWN0S2V5KSB7XG4gICAgICAvLyBFZmZlY3Qgc3R5bGUgY2FuIGJlIHJldXNlZFxuICAgICAgaWYgKCFlZmZlY3RTdHlsZXNbZWZmZWN0S2V5XSkge1xuICAgICAgICBlZmZlY3RTdHlsZXNbZWZmZWN0S2V5XSA9IHRydWU7XG4gICAgICAgIHZhciBlZmZlY3RTdHlsZVN0ciA9IG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pO1xuICAgICAgICB2YXIgZWZmZWN0U3R5bGVIVE1MID0gdG9TdHlsZVN0cihlZmZlY3RTdHlsZVN0ciwgdG9rZW5LZXksIFwiX2VmZmVjdC1cIi5jb25jYXQoZWZmZWN0S2V5KSwgc2hhcmVkQXR0cnMsIHBsYWluKTtcbiAgICAgICAgaWYgKGVmZmVjdEtleS5zdGFydHNXaXRoKCdAbGF5ZXInKSkge1xuICAgICAgICAgIGtleVN0eWxlVGV4dCA9IGVmZmVjdFN0eWxlSFRNTCArIGtleVN0eWxlVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBrZXlTdHlsZVRleHQgKz0gZWZmZWN0U3R5bGVIVE1MO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIFtvcmRlciwgc3R5bGVJZCwga2V5U3R5bGVUZXh0XTtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ STYLE_PREFIX: () => (/* binding */ STYLE_PREFIX),\n/* harmony export */ \"default\": () => (/* binding */ useStyleRegister),\n/* harmony export */ extract: () => (/* binding */ extract),\n/* harmony export */ normalizeStyle: () => (/* binding */ normalizeStyle),\n/* harmony export */ parseStyle: () => (/* binding */ parseStyle),\n/* harmony export */ uniqueHash: () => (/* binding */ uniqueHash)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.browser.esm.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@emotion/unitless/dist/unitless.browser.esm.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! stylis */ \"./node_modules/stylis/src/Serializer.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! stylis */ \"./node_modules/stylis/src/Parser.js\");\n/* harmony import */ var _linters__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../linters */ \"./node_modules/@ant-design/cssinjs/es/linters/index.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util */ \"./node_modules/@ant-design/cssinjs/es/util/index.js\");\n/* harmony import */ var _util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../util/cacheMapUtil */ \"./node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js\");\n/* harmony import */ var _useGlobalCache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./useGlobalCache */ \"./node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js\");\n\n\n\n\n\n\n\n\n\n// @ts-ignore\n\n\n\n\n\n\n\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nfunction normalizeStyle(styleStr) {\n var serialized = (0,stylis__WEBPACK_IMPORTED_MODULE_15__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_16__.compile)(styleStr), stylis__WEBPACK_IMPORTED_MODULE_15__.stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n return (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n // 注入 hashId\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n var fullPath = k.trim().split(/\\s+/);\n\n // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n// Parse CSSObject to style content\nvar parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n return (trans === null || trans === void 0 || (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style);\n\n // Normal CSSObject\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false;\n\n // 当成嵌套对象来处理\n var mergedKey = key.trim();\n // Whether treat child as root. In most case it is false.\n var nextRoot = false;\n\n // 拆分多个选择器\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else if (mergedKey === '&') {\n // 抹掉 root selector 上的单个 &\n mergedKey = injectSelectorHash('', hashId, hashPriority);\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n effectStyle = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n function appendStyle(cssKey, cssValue) {\n if ( true && ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [_linters__WEBPACK_IMPORTED_MODULE_10__.contentQuotesLinter, _linters__WEBPACK_IMPORTED_MODULE_10__.hashedAnimationLinter].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(linters)).forEach(function (linter) {\n return linter(cssKey, cssValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n }\n\n // 如果是样式则直接插入\n var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n });\n\n // Auto suffix with px\n var formatValue = cssValue;\n if (!_emotion_unitless__WEBPACK_IMPORTED_MODULE_9__[\"default\"][cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n }\n\n // handle animationName & Keyframe value\n if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n parseKeyframes(cssValue);\n formatValue = cssValue.getName(hashId);\n }\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n actualValue.forEach(function (item) {\n appendStyle(key, item);\n });\n } else {\n appendStyle(key, actualValue);\n }\n }\n });\n }\n });\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer) {\n // fixme: https://github.com/thysultan/stylis/pull/339\n if (styleStr) {\n styleStr = \"@layer \".concat(layer.name, \" {\").concat(styleStr, \"}\");\n }\n if (layer.dependencies) {\n effectStyle[\"@layer \".concat(layer.name)] = layer.dependencies.map(function (deps) {\n return \"@layer \".concat(deps, \", \").concat(layer.name, \";\");\n }).join('\\n');\n }\n }\n return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// == Register ==\n// ============================================================================\nfunction uniqueHash(path, styleStr) {\n return (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n return null;\n}\nvar STYLE_PREFIX = 'style';\n/**\n * Register a style to the global style sheet.\n */\nfunction useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer,\n nonce = info.nonce,\n clientOnly = info.clientOnly,\n _info$order = info.order,\n order = _info$order === void 0 ? 0 : _info$order;\n var _React$useContext = react__WEBPACK_IMPORTED_MODULE_8__.useContext(_StyleContext__WEBPACK_IMPORTED_MODULE_11__[\"default\"]),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters,\n cache = _React$useContext.cache,\n enableLayer = _React$useContext.layer;\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey];\n if (enableLayer) {\n fullPath.push('layer');\n }\n fullPath.push.apply(fullPath, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path));\n\n // Check if need insert style\n var isMergedClientSide = _util__WEBPACK_IMPORTED_MODULE_12__.isClientSide;\n if ( true && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n var _useGlobalCache = (0,_useGlobalCache__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(STYLE_PREFIX, fullPath,\n // Create cache if needed\n function () {\n var cachePath = fullPath.join('|');\n\n // Get style from SSR inline style directly\n if ((0,_util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.existPath)(cachePath)) {\n var _getStyleAndHash = (0,_util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.getStyleAndHash)(cachePath),\n _getStyleAndHash2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_getStyleAndHash, 2),\n inlineCacheStyleStr = _getStyleAndHash2[0],\n styleHash = _getStyleAndHash2[1];\n if (inlineCacheStyleStr) {\n return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n }\n }\n\n // Generate style\n var styleObj = styleFn();\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: enableLayer ? layer : undefined,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n },\n // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref2, 3),\n styleId = _ref3[2];\n if ((fromHMR || autoClear) && _util__WEBPACK_IMPORTED_MODULE_12__.isClientSide) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.removeCSS)(styleId, {\n mark: _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK\n });\n }\n },\n // Effect: Inject style here\n function (_ref4) {\n var _ref5 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref4, 4),\n styleStr = _ref5[0],\n _ = _ref5[1],\n styleId = _ref5[2],\n effectStyle = _ref5[3];\n if (isMergedClientSide && styleStr !== _util_cacheMapUtil__WEBPACK_IMPORTED_MODULE_13__.CSS_FILE_STYLE) {\n var mergedCSSConfig = {\n mark: _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK,\n prepend: enableLayer ? false : 'queue',\n attachTo: container,\n priority: order\n };\n var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n if (nonceStr) {\n mergedCSSConfig.csp = {\n nonce: nonceStr\n };\n }\n\n // ================= Split Effect Style =================\n // We will split effectStyle here since @layer should be at the top level\n var effectLayerKeys = [];\n var effectRestKeys = [];\n Object.keys(effectStyle).forEach(function (key) {\n if (key.startsWith('@layer')) {\n effectLayerKeys.push(key);\n } else {\n effectRestKeys.push(key);\n }\n });\n\n // ================= Inject Layer Style =================\n // Inject layer style\n effectLayerKeys.forEach(function (effectKey) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(normalizeStyle(effectStyle[effectKey]), \"_layer-\".concat(effectKey), (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, mergedCSSConfig), {}, {\n prepend: true\n }));\n });\n\n // ==================== Inject Style ====================\n // Inject style\n var style = (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(styleStr, styleId, mergedCSSConfig);\n style[_StyleContext__WEBPACK_IMPORTED_MODULE_11__.CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(_StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_TOKEN, tokenKey);\n\n // Debug usage. Dev only\n if (true) {\n style.setAttribute(_StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_CACHE_PATH, fullPath.join('|'));\n }\n\n // ================ Inject Effect Style =================\n // Inject client side effect style\n effectRestKeys.forEach(function (effectKey) {\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_7__.updateCSS)(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n });\n }\n }),\n _useGlobalCache2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n return function (node) {\n var styleNode;\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Empty, null);\n } else {\n var _ref6;\n styleNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(\"style\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, (_ref6 = {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref6, _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_TOKEN, cachedTokenKey), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref6, _StyleContext__WEBPACK_IMPORTED_MODULE_11__.ATTR_MARK, cachedStyleId), _ref6), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(react__WEBPACK_IMPORTED_MODULE_8__.Fragment, null, styleNode, node);\n };\n}\nvar extract = function extract(cache, effectStyles, options) {\n var _cache = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(cache, 6),\n styleStr = _cache[0],\n tokenKey = _cache[1],\n styleId = _cache[2],\n effectStyle = _cache[3],\n clientOnly = _cache[4],\n order = _cache[5];\n var _ref7 = options || {},\n plain = _ref7.plain;\n\n // Skip client only style\n if (clientOnly) {\n return null;\n }\n var keyStyleText = styleStr;\n\n // ====================== Share ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n\n // ====================== Style ======================\n keyStyleText = (0,_util__WEBPACK_IMPORTED_MODULE_12__.toStyleStr)(styleStr, tokenKey, styleId, sharedAttrs, plain);\n\n // =============== Create effect style ===============\n if (effectStyle) {\n Object.keys(effectStyle).forEach(function (effectKey) {\n // Effect style can be reused\n if (!effectStyles[effectKey]) {\n effectStyles[effectKey] = true;\n var effectStyleStr = normalizeStyle(effectStyle[effectKey]);\n var effectStyleHTML = (0,_util__WEBPACK_IMPORTED_MODULE_12__.toStyleStr)(effectStyleStr, tokenKey, \"_effect-\".concat(effectKey), sharedAttrs, plain);\n if (effectKey.startsWith('@layer')) {\n keyStyleText = effectStyleHTML + keyStyleText;\n } else {\n keyStyleText += effectStyleHTML;\n }\n }\n });\n }\n return [order, styleId, keyStyleText];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9ob29rcy91c2VTdHlsZVJlZ2lzdGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ2M7QUFDSDtBQUNDO0FBQ1E7QUFDdEI7QUFDdkI7QUFDZ0M7QUFDbEM7QUFDL0I7QUFDeUM7QUFDYztBQUNpQjtBQUNtQztBQUN4RDtBQUMrQjtBQUNwQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLG1CQUFtQixrREFBUyxDQUFDLGdEQUFPLFlBQVksOENBQVM7QUFDekQsK0JBQStCLFFBQVEsR0FBRyxNQUFNO0FBQ2hEO0FBQ0E7QUFDQSxTQUFTLDZFQUFPO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHdGQUFrQjtBQUNoRCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCx1QkFBdUIsb0ZBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDtBQUM5RDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZFQUFPO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1osNkJBQTZCLE9BQU8sS0FBSyxrQkFBa0IsUUFBUSxNQUFNLEtBQUssa0JBQWtCO0FBQ2hHLDhCQUE4QixHQUFHLFlBQVksT0FBTyxHQUFHLFlBQVk7QUFDbkU7QUFDQSx5Q0FBeUMsV0FBVztBQUNwRCxvRUFBb0UsS0FBSyxnQkFBZ0I7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLHdGQUFrQjtBQUMzRCxhQUFhO0FBQ2IsMkJBQTJCLG9GQUFjO0FBQ3pDO0FBQ0E7QUFDQSx3QkFBd0Isb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHO0FBQ3REO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxnQkFBZ0IsS0FBcUMsS0FBSyw2RUFBTztBQUNqRSxlQUFlLDBEQUFtQixFQUFFLDREQUFxQixTQUFTLHdGQUFrQjtBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixlQUFlO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYjtBQUNBO0FBQ0EsaUJBQWlCLHlEQUFRO0FBQ3pCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdFQUF3RTtBQUN4RTtBQUNBO0FBQ0EsY0FBYyw2RUFBTztBQUNyQjtBQUNBO0FBQ0EsYUFBYTtBQUNiLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQkFBaUIscUJBQXFCO0FBQ3RDLElBQUk7QUFDSjtBQUNBO0FBQ0EsaURBQWlELHNCQUFzQjtBQUN2RTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUU7QUFDakUsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsU0FBUyx5REFBSTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNkNBQWdCLENBQUMsc0RBQVk7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHdGQUFrQjs7QUFFbEQ7QUFDQSwyQkFBMkIsZ0RBQVk7QUFDdkMsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0Esd0JBQXdCLDREQUFjO0FBQ3RDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsOERBQVM7QUFDbkIsK0JBQStCLG9FQUFlO0FBQzlDLDhCQUE4QixvRkFBYztBQUM1QztBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7QUFDOUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsdUJBQXVCLG9GQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGtCQUFrQixvRkFBYztBQUNoQztBQUNBLG9DQUFvQyxnREFBWTtBQUNoRCxRQUFRLG9FQUFTO0FBQ2pCLGdCQUFnQixxREFBUztBQUN6QixTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGtCQUFrQixvRkFBYztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QywrREFBYztBQUMzRDtBQUNBLGdCQUFnQixxREFBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQSxVQUFVLG9FQUFTLHNFQUFzRSxvRkFBYSxDQUFDLG9GQUFhLEdBQUcsc0JBQXNCO0FBQzdJO0FBQ0EsV0FBVztBQUNYLFNBQVM7O0FBRVQ7QUFDQTtBQUNBLG9CQUFvQixvRUFBUztBQUM3QixjQUFjLDhEQUFrQjs7QUFFaEM7QUFDQSwyQkFBMkIsc0RBQVU7O0FBRXJDO0FBQ0EsWUFBWSxJQUFxQztBQUNqRCw2QkFBNkIsMkRBQWU7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVSxvRUFBUztBQUNuQixTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0wsdUJBQXVCLG9GQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixnREFBbUI7QUFDbEQsTUFBTTtBQUNOO0FBQ0EsK0JBQStCLGdEQUFtQixVQUFVLDhFQUFRLEdBQUcsYUFBYSxFQUFFLHFGQUFlLFFBQVEsc0RBQVUsbUJBQW1CLHFGQUFlLFFBQVEscURBQVM7QUFDMUs7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esd0JBQXdCLGdEQUFtQixDQUFDLDJDQUFjO0FBQzFEO0FBQ0E7QUFDTztBQUNQLGVBQWUsb0ZBQWM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLGtEQUFVOztBQUUzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrREFBVTtBQUN4QztBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvaG9va3MvdXNlU3R5bGVSZWdpc3Rlci5qcz9kY2U0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCBfdG9Db25zdW1hYmxlQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5XCI7XG5pbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgaGFzaCBmcm9tICdAZW1vdGlvbi9oYXNoJztcbmltcG9ydCB7IHJlbW92ZUNTUywgdXBkYXRlQ1NTIH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2R5bmFtaWNDU1NcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB1bml0bGVzcyBmcm9tICdAZW1vdGlvbi91bml0bGVzcyc7XG5pbXBvcnQgeyBjb21waWxlLCBzZXJpYWxpemUsIHN0cmluZ2lmeSB9IGZyb20gJ3N0eWxpcyc7XG5pbXBvcnQgeyBjb250ZW50UXVvdGVzTGludGVyLCBoYXNoZWRBbmltYXRpb25MaW50ZXIgfSBmcm9tIFwiLi4vbGludGVyc1wiO1xuaW1wb3J0IFN0eWxlQ29udGV4dCwgeyBBVFRSX0NBQ0hFX1BBVEgsIEFUVFJfTUFSSywgQVRUUl9UT0tFTiwgQ1NTX0lOX0pTX0lOU1RBTkNFIH0gZnJvbSBcIi4uL1N0eWxlQ29udGV4dFwiO1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlLCB0b1N0eWxlU3RyIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IENTU19GSUxFX1NUWUxFLCBleGlzdFBhdGgsIGdldFN0eWxlQW5kSGFzaCB9IGZyb20gXCIuLi91dGlsL2NhY2hlTWFwVXRpbFwiO1xuaW1wb3J0IHVzZUdsb2JhbENhY2hlIGZyb20gXCIuL3VzZUdsb2JhbENhY2hlXCI7XG52YXIgU0tJUF9DSEVDSyA9ICdfc2tpcF9jaGVja18nO1xudmFyIE1VTFRJX1ZBTFVFID0gJ19tdWx0aV92YWx1ZV8nO1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHJlcHJvY2Vzc29yIHN0eWxlIGNvbnRlbnQgdG8gYnJvd3NlciBzdXBwb3J0IG9uZVxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlKHN0eWxlU3RyKSB7XG4gIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplKGNvbXBpbGUoc3R5bGVTdHIpLCBzdHJpbmdpZnkpO1xuICByZXR1cm4gc2VyaWFsaXplZC5yZXBsYWNlKC9cXHslJSVcXDpbXjtdO30vZywgJzsnKTtcbn1cbmZ1bmN0aW9uIGlzQ29tcG91bmRDU1NQcm9wZXJ0eSh2YWx1ZSkge1xuICByZXR1cm4gX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIChTS0lQX0NIRUNLIGluIHZhbHVlIHx8IE1VTFRJX1ZBTFVFIGluIHZhbHVlKTtcbn1cblxuLy8g5rOo5YWlIGhhc2gg5YC8XG5mdW5jdGlvbiBpbmplY3RTZWxlY3Rvckhhc2goa2V5LCBoYXNoSWQsIGhhc2hQcmlvcml0eSkge1xuICBpZiAoIWhhc2hJZCkge1xuICAgIHJldHVybiBrZXk7XG4gIH1cbiAgdmFyIGhhc2hDbGFzc05hbWUgPSBcIi5cIi5jb25jYXQoaGFzaElkKTtcbiAgdmFyIGhhc2hTZWxlY3RvciA9IGhhc2hQcmlvcml0eSA9PT0gJ2xvdycgPyBcIjp3aGVyZShcIi5jb25jYXQoaGFzaENsYXNzTmFtZSwgXCIpXCIpIDogaGFzaENsYXNzTmFtZTtcblxuICAvLyDms6jlhaUgaGFzaElkXG4gIHZhciBrZXlzID0ga2V5LnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgdmFyIF9maXJzdFBhdGgkbWF0Y2g7XG4gICAgdmFyIGZ1bGxQYXRoID0gay50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICAgIC8vIOWmguaenCBTZWxlY3RvciDnrKzkuIDkuKrmmK8gSFRNTCBFbGVtZW5077yM6YKj5oiR5Lus5bCx5o+S5Yiw5a6D55qE5ZCO6Z2i44CC5Y+N5LmL77yM5bCx5o+S5Yiw5pyA5YmN6Z2i44CCXG4gICAgdmFyIGZpcnN0UGF0aCA9IGZ1bGxQYXRoWzBdIHx8ICcnO1xuICAgIHZhciBodG1sRWxlbWVudCA9ICgoX2ZpcnN0UGF0aCRtYXRjaCA9IGZpcnN0UGF0aC5tYXRjaCgvXlxcdysvKSkgPT09IG51bGwgfHwgX2ZpcnN0UGF0aCRtYXRjaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2ZpcnN0UGF0aCRtYXRjaFswXSkgfHwgJyc7XG4gICAgZmlyc3RQYXRoID0gXCJcIi5jb25jYXQoaHRtbEVsZW1lbnQpLmNvbmNhdChoYXNoU2VsZWN0b3IpLmNvbmNhdChmaXJzdFBhdGguc2xpY2UoaHRtbEVsZW1lbnQubGVuZ3RoKSk7XG4gICAgcmV0dXJuIFtmaXJzdFBhdGhdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoZnVsbFBhdGguc2xpY2UoMSkpKS5qb2luKCcgJyk7XG4gIH0pO1xuICByZXR1cm4ga2V5cy5qb2luKCcsJyk7XG59XG4vLyBQYXJzZSBDU1NPYmplY3QgdG8gc3R5bGUgY29udGVudFxuZXhwb3J0IHZhciBwYXJzZVN0eWxlID0gZnVuY3Rpb24gcGFyc2VTdHlsZShpbnRlcnBvbGF0aW9uKSB7XG4gIHZhciBjb25maWcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge1xuICAgICAgcm9vdDogdHJ1ZSxcbiAgICAgIHBhcmVudFNlbGVjdG9yczogW11cbiAgICB9LFxuICAgIHJvb3QgPSBfcmVmLnJvb3QsXG4gICAgaW5qZWN0SGFzaCA9IF9yZWYuaW5qZWN0SGFzaCxcbiAgICBwYXJlbnRTZWxlY3RvcnMgPSBfcmVmLnBhcmVudFNlbGVjdG9ycztcbiAgdmFyIGhhc2hJZCA9IGNvbmZpZy5oYXNoSWQsXG4gICAgbGF5ZXIgPSBjb25maWcubGF5ZXIsXG4gICAgcGF0aCA9IGNvbmZpZy5wYXRoLFxuICAgIGhhc2hQcmlvcml0eSA9IGNvbmZpZy5oYXNoUHJpb3JpdHksXG4gICAgX2NvbmZpZyR0cmFuc2Zvcm1lcnMgPSBjb25maWcudHJhbnNmb3JtZXJzLFxuICAgIHRyYW5zZm9ybWVycyA9IF9jb25maWckdHJhbnNmb3JtZXJzID09PSB2b2lkIDAgPyBbXSA6IF9jb25maWckdHJhbnNmb3JtZXJzLFxuICAgIF9jb25maWckbGludGVycyA9IGNvbmZpZy5saW50ZXJzLFxuICAgIGxpbnRlcnMgPSBfY29uZmlnJGxpbnRlcnMgPT09IHZvaWQgMCA/IFtdIDogX2NvbmZpZyRsaW50ZXJzO1xuICB2YXIgc3R5bGVTdHIgPSAnJztcbiAgdmFyIGVmZmVjdFN0eWxlID0ge307XG4gIGZ1bmN0aW9uIHBhcnNlS2V5ZnJhbWVzKGtleWZyYW1lcykge1xuICAgIHZhciBhbmltYXRpb25OYW1lID0ga2V5ZnJhbWVzLmdldE5hbWUoaGFzaElkKTtcbiAgICBpZiAoIWVmZmVjdFN0eWxlW2FuaW1hdGlvbk5hbWVdKSB7XG4gICAgICB2YXIgX3BhcnNlU3R5bGUgPSBwYXJzZVN0eWxlKGtleWZyYW1lcy5zdHlsZSwgY29uZmlnLCB7XG4gICAgICAgICAgcm9vdDogZmFsc2UsXG4gICAgICAgICAgcGFyZW50U2VsZWN0b3JzOiBwYXJlbnRTZWxlY3RvcnNcbiAgICAgICAgfSksXG4gICAgICAgIF9wYXJzZVN0eWxlMiA9IF9zbGljZWRUb0FycmF5KF9wYXJzZVN0eWxlLCAxKSxcbiAgICAgICAgX3BhcnNlZFN0ciA9IF9wYXJzZVN0eWxlMlswXTtcbiAgICAgIGVmZmVjdFN0eWxlW2FuaW1hdGlvbk5hbWVdID0gXCJAa2V5ZnJhbWVzIFwiLmNvbmNhdChrZXlmcmFtZXMuZ2V0TmFtZShoYXNoSWQpKS5jb25jYXQoX3BhcnNlZFN0cik7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGZsYXR0ZW5MaXN0KGxpc3QpIHtcbiAgICB2YXIgZnVsbExpc3QgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFtdO1xuICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgZmxhdHRlbkxpc3QoaXRlbSwgZnVsbExpc3QpO1xuICAgICAgfSBlbHNlIGlmIChpdGVtKSB7XG4gICAgICAgIGZ1bGxMaXN0LnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bGxMaXN0O1xuICB9XG4gIHZhciBmbGF0dGVuU3R5bGVMaXN0ID0gZmxhdHRlbkxpc3QoQXJyYXkuaXNBcnJheShpbnRlcnBvbGF0aW9uKSA/IGludGVycG9sYXRpb24gOiBbaW50ZXJwb2xhdGlvbl0pO1xuICBmbGF0dGVuU3R5bGVMaXN0LmZvckVhY2goZnVuY3Rpb24gKG9yaWdpblN0eWxlKSB7XG4gICAgLy8gT25seSByb290IGxldmVsIGNhbiB1c2UgcmF3IHN0cmluZ1xuICAgIHZhciBzdHlsZSA9IHR5cGVvZiBvcmlnaW5TdHlsZSA9PT0gJ3N0cmluZycgJiYgIXJvb3QgPyB7fSA6IG9yaWdpblN0eWxlO1xuICAgIGlmICh0eXBlb2Ygc3R5bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzdHlsZVN0ciArPSBcIlwiLmNvbmNhdChzdHlsZSwgXCJcXG5cIik7XG4gICAgfSBlbHNlIGlmIChzdHlsZS5fa2V5ZnJhbWUpIHtcbiAgICAgIC8vIEtleWZyYW1lXG4gICAgICBwYXJzZUtleWZyYW1lcyhzdHlsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBtZXJnZWRTdHlsZSA9IHRyYW5zZm9ybWVycy5yZWR1Y2UoZnVuY3Rpb24gKHByZXYsIHRyYW5zKSB7XG4gICAgICAgIHZhciBfdHJhbnMkdmlzaXQ7XG4gICAgICAgIHJldHVybiAodHJhbnMgPT09IG51bGwgfHwgdHJhbnMgPT09IHZvaWQgMCB8fCAoX3RyYW5zJHZpc2l0ID0gdHJhbnMudmlzaXQpID09PSBudWxsIHx8IF90cmFucyR2aXNpdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RyYW5zJHZpc2l0LmNhbGwodHJhbnMsIHByZXYpKSB8fCBwcmV2O1xuICAgICAgfSwgc3R5bGUpO1xuXG4gICAgICAvLyBOb3JtYWwgQ1NTT2JqZWN0XG4gICAgICBPYmplY3Qua2V5cyhtZXJnZWRTdHlsZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IG1lcmdlZFN0eWxlW2tleV07XG4gICAgICAgIGlmIChfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgKGtleSAhPT0gJ2FuaW1hdGlvbk5hbWUnIHx8ICF2YWx1ZS5fa2V5ZnJhbWUpICYmICFpc0NvbXBvdW5kQ1NTUHJvcGVydHkodmFsdWUpKSB7XG4gICAgICAgICAgdmFyIHN1YkluamVjdEhhc2ggPSBmYWxzZTtcblxuICAgICAgICAgIC8vIOW9k+aIkOW1jOWll+WvueixoeadpeWkhOeQhlxuICAgICAgICAgIHZhciBtZXJnZWRLZXkgPSBrZXkudHJpbSgpO1xuICAgICAgICAgIC8vIFdoZXRoZXIgdHJlYXQgY2hpbGQgYXMgcm9vdC4gSW4gbW9zdCBjYXNlIGl0IGlzIGZhbHNlLlxuICAgICAgICAgIHZhciBuZXh0Um9vdCA9IGZhbHNlO1xuXG4gICAgICAgICAgLy8g5ouG5YiG5aSa5Liq6YCJ5oup5ZmoXG4gICAgICAgICAgaWYgKChyb290IHx8IGluamVjdEhhc2gpICYmIGhhc2hJZCkge1xuICAgICAgICAgICAgaWYgKG1lcmdlZEtleS5zdGFydHNXaXRoKCdAJykpIHtcbiAgICAgICAgICAgICAgLy8g55Wl6L+H5aqS5L2T5p+l6K+i77yM5Lqk57uZ5a2Q6IqC54K557un57ut5o+S5YWlIGhhc2hJZFxuICAgICAgICAgICAgICBzdWJJbmplY3RIYXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyZ2VkS2V5ID09PSAnJicpIHtcbiAgICAgICAgICAgICAgLy8g5oq55o6JIHJvb3Qgc2VsZWN0b3Ig5LiK55qE5Y2V5LiqICZcbiAgICAgICAgICAgICAgbWVyZ2VkS2V5ID0gaW5qZWN0U2VsZWN0b3JIYXNoKCcnLCBoYXNoSWQsIGhhc2hQcmlvcml0eSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyDms6jlhaUgaGFzaElkXG4gICAgICAgICAgICAgIG1lcmdlZEtleSA9IGluamVjdFNlbGVjdG9ySGFzaChrZXksIGhhc2hJZCwgaGFzaFByaW9yaXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHJvb3QgJiYgIWhhc2hJZCAmJiAobWVyZ2VkS2V5ID09PSAnJicgfHwgbWVyZ2VkS2V5ID09PSAnJykpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2Ugb2YgYHsgJyYnOiB7IGE6IHsgY29sb3I6ICdyZWQnIH0gfSB9YCBvciBgeyAnJzogeyBhOiB7IGNvbG9yOiAncmVkJyB9IH0gfWAgd2l0aG91dCBoYXNoSWQsXG4gICAgICAgICAgICAvLyB3ZSB3aWxsIGdldCBgJnthOntjb2xvcjpyZWQ7fX1gIG9yIGB7YTp7Y29sb3I6cmVkO319YCBzdHJpbmcgZm9yIHN0eWxpcyB0byBjb21waWxlLlxuICAgICAgICAgICAgLy8gQnV0IGl0IGRvZXMgbm90IGNvbmZvcm0gdG8gc3R5bGlzIHN5bnRheCxcbiAgICAgICAgICAgIC8vIGFuZCBmaW5hbGx5IHdlIHdpbGwgZ2V0IGB7Y29sb3I6cmVkO31gIGFzIGNzcywgd2hpY2ggaXMgd3JvbmcuXG4gICAgICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHJlbW92ZSBrZXkgaW4gcm9vdCwgYW5kIHRyZWF0IGNoaWxkIGB7IGE6IHsgY29sb3I6ICdyZWQnIH0gfWAgYXMgcm9vdC5cbiAgICAgICAgICAgIG1lcmdlZEtleSA9ICcnO1xuICAgICAgICAgICAgbmV4dFJvb3QgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgX3BhcnNlU3R5bGUzID0gcGFyc2VTdHlsZSh2YWx1ZSwgY29uZmlnLCB7XG4gICAgICAgICAgICAgIHJvb3Q6IG5leHRSb290LFxuICAgICAgICAgICAgICBpbmplY3RIYXNoOiBzdWJJbmplY3RIYXNoLFxuICAgICAgICAgICAgICBwYXJlbnRTZWxlY3RvcnM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkocGFyZW50U2VsZWN0b3JzKSwgW21lcmdlZEtleV0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF9wYXJzZVN0eWxlNCA9IF9zbGljZWRUb0FycmF5KF9wYXJzZVN0eWxlMywgMiksXG4gICAgICAgICAgICBfcGFyc2VkU3RyMiA9IF9wYXJzZVN0eWxlNFswXSxcbiAgICAgICAgICAgIGNoaWxkRWZmZWN0U3R5bGUgPSBfcGFyc2VTdHlsZTRbMV07XG4gICAgICAgICAgZWZmZWN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGVmZmVjdFN0eWxlKSwgY2hpbGRFZmZlY3RTdHlsZSk7XG4gICAgICAgICAgc3R5bGVTdHIgKz0gXCJcIi5jb25jYXQobWVyZ2VkS2V5KS5jb25jYXQoX3BhcnNlZFN0cjIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBfdmFsdWU7XG4gICAgICAgICAgZnVuY3Rpb24gYXBwZW5kU3R5bGUoY3NzS2V5LCBjc3NWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgKF90eXBlb2YodmFsdWUpICE9PSAnb2JqZWN0JyB8fCAhKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgJiYgdmFsdWVbU0tJUF9DSEVDS10pKSkge1xuICAgICAgICAgICAgICBbY29udGVudFF1b3Rlc0xpbnRlciwgaGFzaGVkQW5pbWF0aW9uTGludGVyXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGxpbnRlcnMpKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW50ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGludGVyKGNzc0tleSwgY3NzVmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgICAgICAgICAgICBoYXNoSWQ6IGhhc2hJZCxcbiAgICAgICAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yczogcGFyZW50U2VsZWN0b3JzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDlpoLmnpzmmK/moLflvI/liJnnm7TmjqXmj5LlhaVcbiAgICAgICAgICAgIHZhciBzdHlsZU5hbWUgPSBjc3NLZXkucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcIi1cIi5jb25jYXQobWF0Y2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQXV0byBzdWZmaXggd2l0aCBweFxuICAgICAgICAgICAgdmFyIGZvcm1hdFZhbHVlID0gY3NzVmFsdWU7XG4gICAgICAgICAgICBpZiAoIXVuaXRsZXNzW2Nzc0tleV0gJiYgdHlwZW9mIGZvcm1hdFZhbHVlID09PSAnbnVtYmVyJyAmJiBmb3JtYXRWYWx1ZSAhPT0gMCkge1xuICAgICAgICAgICAgICBmb3JtYXRWYWx1ZSA9IFwiXCIuY29uY2F0KGZvcm1hdFZhbHVlLCBcInB4XCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBoYW5kbGUgYW5pbWF0aW9uTmFtZSAmIEtleWZyYW1lIHZhbHVlXG4gICAgICAgICAgICBpZiAoY3NzS2V5ID09PSAnYW5pbWF0aW9uTmFtZScgJiYgY3NzVmFsdWUgIT09IG51bGwgJiYgY3NzVmFsdWUgIT09IHZvaWQgMCAmJiBjc3NWYWx1ZS5fa2V5ZnJhbWUpIHtcbiAgICAgICAgICAgICAgcGFyc2VLZXlmcmFtZXMoY3NzVmFsdWUpO1xuICAgICAgICAgICAgICBmb3JtYXRWYWx1ZSA9IGNzc1ZhbHVlLmdldE5hbWUoaGFzaElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0eWxlU3RyICs9IFwiXCIuY29uY2F0KHN0eWxlTmFtZSwgXCI6XCIpLmNvbmNhdChmb3JtYXRWYWx1ZSwgXCI7XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgYWN0dWFsVmFsdWUgPSAoX3ZhbHVlID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbHVlLnZhbHVlKSAhPT0gbnVsbCAmJiBfdmFsdWUgIT09IHZvaWQgMCA/IF92YWx1ZSA6IHZhbHVlO1xuICAgICAgICAgIGlmIChfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCAmJiB2YWx1ZVtNVUxUSV9WQUxVRV0gJiYgQXJyYXkuaXNBcnJheShhY3R1YWxWYWx1ZSkpIHtcbiAgICAgICAgICAgIGFjdHVhbFZhbHVlLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgYXBwZW5kU3R5bGUoa2V5LCBpdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBlbmRTdHlsZShrZXksIGFjdHVhbFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIGlmICghcm9vdCkge1xuICAgIHN0eWxlU3RyID0gXCJ7XCIuY29uY2F0KHN0eWxlU3RyLCBcIn1cIik7XG4gIH0gZWxzZSBpZiAobGF5ZXIpIHtcbiAgICAvLyBmaXhtZTogaHR0cHM6Ly9naXRodWIuY29tL3RoeXN1bHRhbi9zdHlsaXMvcHVsbC8zMzlcbiAgICBpZiAoc3R5bGVTdHIpIHtcbiAgICAgIHN0eWxlU3RyID0gXCJAbGF5ZXIgXCIuY29uY2F0KGxheWVyLm5hbWUsIFwiIHtcIikuY29uY2F0KHN0eWxlU3RyLCBcIn1cIik7XG4gICAgfVxuICAgIGlmIChsYXllci5kZXBlbmRlbmNpZXMpIHtcbiAgICAgIGVmZmVjdFN0eWxlW1wiQGxheWVyIFwiLmNvbmNhdChsYXllci5uYW1lKV0gPSBsYXllci5kZXBlbmRlbmNpZXMubWFwKGZ1bmN0aW9uIChkZXBzKSB7XG4gICAgICAgIHJldHVybiBcIkBsYXllciBcIi5jb25jYXQoZGVwcywgXCIsIFwiKS5jb25jYXQobGF5ZXIubmFtZSwgXCI7XCIpO1xuICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbc3R5bGVTdHIsIGVmZmVjdFN0eWxlXTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVIYXNoKHBhdGgsIHN0eWxlU3RyKSB7XG4gIHJldHVybiBoYXNoKFwiXCIuY29uY2F0KHBhdGguam9pbignJScpKS5jb25jYXQoc3R5bGVTdHIpKTtcbn1cbmZ1bmN0aW9uIEVtcHR5KCkge1xuICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydCB2YXIgU1RZTEVfUFJFRklYID0gJ3N0eWxlJztcbi8qKlxuICogUmVnaXN0ZXIgYSBzdHlsZSB0byB0aGUgZ2xvYmFsIHN0eWxlIHNoZWV0LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTdHlsZVJlZ2lzdGVyKGluZm8sIHN0eWxlRm4pIHtcbiAgdmFyIHRva2VuID0gaW5mby50b2tlbixcbiAgICBwYXRoID0gaW5mby5wYXRoLFxuICAgIGhhc2hJZCA9IGluZm8uaGFzaElkLFxuICAgIGxheWVyID0gaW5mby5sYXllcixcbiAgICBub25jZSA9IGluZm8ubm9uY2UsXG4gICAgY2xpZW50T25seSA9IGluZm8uY2xpZW50T25seSxcbiAgICBfaW5mbyRvcmRlciA9IGluZm8ub3JkZXIsXG4gICAgb3JkZXIgPSBfaW5mbyRvcmRlciA9PT0gdm9pZCAwID8gMCA6IF9pbmZvJG9yZGVyO1xuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFN0eWxlQ29udGV4dCksXG4gICAgYXV0b0NsZWFyID0gX1JlYWN0JHVzZUNvbnRleHQuYXV0b0NsZWFyLFxuICAgIG1vY2sgPSBfUmVhY3QkdXNlQ29udGV4dC5tb2NrLFxuICAgIGRlZmF1bHRDYWNoZSA9IF9SZWFjdCR1c2VDb250ZXh0LmRlZmF1bHRDYWNoZSxcbiAgICBoYXNoUHJpb3JpdHkgPSBfUmVhY3QkdXNlQ29udGV4dC5oYXNoUHJpb3JpdHksXG4gICAgY29udGFpbmVyID0gX1JlYWN0JHVzZUNvbnRleHQuY29udGFpbmVyLFxuICAgIHNzcklubGluZSA9IF9SZWFjdCR1c2VDb250ZXh0LnNzcklubGluZSxcbiAgICB0cmFuc2Zvcm1lcnMgPSBfUmVhY3QkdXNlQ29udGV4dC50cmFuc2Zvcm1lcnMsXG4gICAgbGludGVycyA9IF9SZWFjdCR1c2VDb250ZXh0LmxpbnRlcnMsXG4gICAgY2FjaGUgPSBfUmVhY3QkdXNlQ29udGV4dC5jYWNoZSxcbiAgICBlbmFibGVMYXllciA9IF9SZWFjdCR1c2VDb250ZXh0LmxheWVyO1xuICB2YXIgdG9rZW5LZXkgPSB0b2tlbi5fdG9rZW5LZXk7XG4gIHZhciBmdWxsUGF0aCA9IFt0b2tlbktleV07XG4gIGlmIChlbmFibGVMYXllcikge1xuICAgIGZ1bGxQYXRoLnB1c2goJ2xheWVyJyk7XG4gIH1cbiAgZnVsbFBhdGgucHVzaC5hcHBseShmdWxsUGF0aCwgX3RvQ29uc3VtYWJsZUFycmF5KHBhdGgpKTtcblxuICAvLyBDaGVjayBpZiBuZWVkIGluc2VydCBzdHlsZVxuICB2YXIgaXNNZXJnZWRDbGllbnRTaWRlID0gaXNDbGllbnRTaWRlO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBtb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICBpc01lcmdlZENsaWVudFNpZGUgPSBtb2NrID09PSAnY2xpZW50JztcbiAgfVxuICB2YXIgX3VzZUdsb2JhbENhY2hlID0gdXNlR2xvYmFsQ2FjaGUoU1RZTEVfUFJFRklYLCBmdWxsUGF0aCxcbiAgICAvLyBDcmVhdGUgY2FjaGUgaWYgbmVlZGVkXG4gICAgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNhY2hlUGF0aCA9IGZ1bGxQYXRoLmpvaW4oJ3wnKTtcblxuICAgICAgLy8gR2V0IHN0eWxlIGZyb20gU1NSIGlubGluZSBzdHlsZSBkaXJlY3RseVxuICAgICAgaWYgKGV4aXN0UGF0aChjYWNoZVBhdGgpKSB7XG4gICAgICAgIHZhciBfZ2V0U3R5bGVBbmRIYXNoID0gZ2V0U3R5bGVBbmRIYXNoKGNhY2hlUGF0aCksXG4gICAgICAgICAgX2dldFN0eWxlQW5kSGFzaDIgPSBfc2xpY2VkVG9BcnJheShfZ2V0U3R5bGVBbmRIYXNoLCAyKSxcbiAgICAgICAgICBpbmxpbmVDYWNoZVN0eWxlU3RyID0gX2dldFN0eWxlQW5kSGFzaDJbMF0sXG4gICAgICAgICAgc3R5bGVIYXNoID0gX2dldFN0eWxlQW5kSGFzaDJbMV07XG4gICAgICAgIGlmIChpbmxpbmVDYWNoZVN0eWxlU3RyKSB7XG4gICAgICAgICAgcmV0dXJuIFtpbmxpbmVDYWNoZVN0eWxlU3RyLCB0b2tlbktleSwgc3R5bGVIYXNoLCB7fSwgY2xpZW50T25seSwgb3JkZXJdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEdlbmVyYXRlIHN0eWxlXG4gICAgICB2YXIgc3R5bGVPYmogPSBzdHlsZUZuKCk7XG4gICAgICB2YXIgX3BhcnNlU3R5bGU1ID0gcGFyc2VTdHlsZShzdHlsZU9iaiwge1xuICAgICAgICAgIGhhc2hJZDogaGFzaElkLFxuICAgICAgICAgIGhhc2hQcmlvcml0eTogaGFzaFByaW9yaXR5LFxuICAgICAgICAgIGxheWVyOiBlbmFibGVMYXllciA/IGxheWVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHBhdGg6IHBhdGguam9pbignLScpLFxuICAgICAgICAgIHRyYW5zZm9ybWVyczogdHJhbnNmb3JtZXJzLFxuICAgICAgICAgIGxpbnRlcnM6IGxpbnRlcnNcbiAgICAgICAgfSksXG4gICAgICAgIF9wYXJzZVN0eWxlNiA9IF9zbGljZWRUb0FycmF5KF9wYXJzZVN0eWxlNSwgMiksXG4gICAgICAgIHBhcnNlZFN0eWxlID0gX3BhcnNlU3R5bGU2WzBdLFxuICAgICAgICBlZmZlY3RTdHlsZSA9IF9wYXJzZVN0eWxlNlsxXTtcbiAgICAgIHZhciBzdHlsZVN0ciA9IG5vcm1hbGl6ZVN0eWxlKHBhcnNlZFN0eWxlKTtcbiAgICAgIHZhciBzdHlsZUlkID0gdW5pcXVlSGFzaChmdWxsUGF0aCwgc3R5bGVTdHIpO1xuICAgICAgcmV0dXJuIFtzdHlsZVN0ciwgdG9rZW5LZXksIHN0eWxlSWQsIGVmZmVjdFN0eWxlLCBjbGllbnRPbmx5LCBvcmRlcl07XG4gICAgfSxcbiAgICAvLyBSZW1vdmUgY2FjaGUgaWYgbm8gbmVlZFxuICAgIGZ1bmN0aW9uIChfcmVmMiwgZnJvbUhNUikge1xuICAgICAgdmFyIF9yZWYzID0gX3NsaWNlZFRvQXJyYXkoX3JlZjIsIDMpLFxuICAgICAgICBzdHlsZUlkID0gX3JlZjNbMl07XG4gICAgICBpZiAoKGZyb21ITVIgfHwgYXV0b0NsZWFyKSAmJiBpc0NsaWVudFNpZGUpIHtcbiAgICAgICAgcmVtb3ZlQ1NTKHN0eWxlSWQsIHtcbiAgICAgICAgICBtYXJrOiBBVFRSX01BUktcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAvLyBFZmZlY3Q6IEluamVjdCBzdHlsZSBoZXJlXG4gICAgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICB2YXIgX3JlZjUgPSBfc2xpY2VkVG9BcnJheShfcmVmNCwgNCksXG4gICAgICAgIHN0eWxlU3RyID0gX3JlZjVbMF0sXG4gICAgICAgIF8gPSBfcmVmNVsxXSxcbiAgICAgICAgc3R5bGVJZCA9IF9yZWY1WzJdLFxuICAgICAgICBlZmZlY3RTdHlsZSA9IF9yZWY1WzNdO1xuICAgICAgaWYgKGlzTWVyZ2VkQ2xpZW50U2lkZSAmJiBzdHlsZVN0ciAhPT0gQ1NTX0ZJTEVfU1RZTEUpIHtcbiAgICAgICAgdmFyIG1lcmdlZENTU0NvbmZpZyA9IHtcbiAgICAgICAgICBtYXJrOiBBVFRSX01BUkssXG4gICAgICAgICAgcHJlcGVuZDogZW5hYmxlTGF5ZXIgPyBmYWxzZSA6ICdxdWV1ZScsXG4gICAgICAgICAgYXR0YWNoVG86IGNvbnRhaW5lcixcbiAgICAgICAgICBwcmlvcml0eTogb3JkZXJcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG5vbmNlU3RyID0gdHlwZW9mIG5vbmNlID09PSAnZnVuY3Rpb24nID8gbm9uY2UoKSA6IG5vbmNlO1xuICAgICAgICBpZiAobm9uY2VTdHIpIHtcbiAgICAgICAgICBtZXJnZWRDU1NDb25maWcuY3NwID0ge1xuICAgICAgICAgICAgbm9uY2U6IG5vbmNlU3RyXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PT09PT09PT09PT09PT09IFNwbGl0IEVmZmVjdCBTdHlsZSA9PT09PT09PT09PT09PT09PVxuICAgICAgICAvLyBXZSB3aWxsIHNwbGl0IGVmZmVjdFN0eWxlIGhlcmUgc2luY2UgQGxheWVyIHNob3VsZCBiZSBhdCB0aGUgdG9wIGxldmVsXG4gICAgICAgIHZhciBlZmZlY3RMYXllcktleXMgPSBbXTtcbiAgICAgICAgdmFyIGVmZmVjdFJlc3RLZXlzID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKGVmZmVjdFN0eWxlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0BsYXllcicpKSB7XG4gICAgICAgICAgICBlZmZlY3RMYXllcktleXMucHVzaChrZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZmZlY3RSZXN0S2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyA9PT09PT09PT09PT09PT09PSBJbmplY3QgTGF5ZXIgU3R5bGUgPT09PT09PT09PT09PT09PT1cbiAgICAgICAgLy8gSW5qZWN0IGxheWVyIHN0eWxlXG4gICAgICAgIGVmZmVjdExheWVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChlZmZlY3RLZXkpIHtcbiAgICAgICAgICB1cGRhdGVDU1Mobm9ybWFsaXplU3R5bGUoZWZmZWN0U3R5bGVbZWZmZWN0S2V5XSksIFwiX2xheWVyLVwiLmNvbmNhdChlZmZlY3RLZXkpLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lcmdlZENTU0NvbmZpZyksIHt9LCB7XG4gICAgICAgICAgICBwcmVwZW5kOiB0cnVlXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBJbmplY3QgU3R5bGUgPT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgLy8gSW5qZWN0IHN0eWxlXG4gICAgICAgIHZhciBzdHlsZSA9IHVwZGF0ZUNTUyhzdHlsZVN0ciwgc3R5bGVJZCwgbWVyZ2VkQ1NTQ29uZmlnKTtcbiAgICAgICAgc3R5bGVbQ1NTX0lOX0pTX0lOU1RBTkNFXSA9IGNhY2hlLmluc3RhbmNlSWQ7XG5cbiAgICAgICAgLy8gVXNlZCBmb3IgYHVzZUNhY2hlVG9rZW5gIHRvIHJlbW92ZSBvbiBiYXRjaCB3aGVuIHRva2VuIHJlbW92ZWRcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKEFUVFJfVE9LRU4sIHRva2VuS2V5KTtcblxuICAgICAgICAvLyBEZWJ1ZyB1c2FnZS4gRGV2IG9ubHlcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoQVRUUl9DQUNIRV9QQVRILCBmdWxsUGF0aC5qb2luKCd8JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gPT09PT09PT09PT09PT09PSBJbmplY3QgRWZmZWN0IFN0eWxlID09PT09PT09PT09PT09PT09XG4gICAgICAgIC8vIEluamVjdCBjbGllbnQgc2lkZSBlZmZlY3Qgc3R5bGVcbiAgICAgICAgZWZmZWN0UmVzdEtleXMuZm9yRWFjaChmdW5jdGlvbiAoZWZmZWN0S2V5KSB7XG4gICAgICAgICAgdXBkYXRlQ1NTKG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pLCBcIl9lZmZlY3QtXCIuY29uY2F0KGVmZmVjdEtleSksIG1lcmdlZENTU0NvbmZpZyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLFxuICAgIF91c2VHbG9iYWxDYWNoZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlR2xvYmFsQ2FjaGUsIDMpLFxuICAgIGNhY2hlZFN0eWxlU3RyID0gX3VzZUdsb2JhbENhY2hlMlswXSxcbiAgICBjYWNoZWRUb2tlbktleSA9IF91c2VHbG9iYWxDYWNoZTJbMV0sXG4gICAgY2FjaGVkU3R5bGVJZCA9IF91c2VHbG9iYWxDYWNoZTJbMl07XG4gIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgIHZhciBzdHlsZU5vZGU7XG4gICAgaWYgKCFzc3JJbmxpbmUgfHwgaXNNZXJnZWRDbGllbnRTaWRlIHx8ICFkZWZhdWx0Q2FjaGUpIHtcbiAgICAgIHN0eWxlTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEVtcHR5LCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9yZWY2O1xuICAgICAgc3R5bGVOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCBfZXh0ZW5kcyh7fSwgKF9yZWY2ID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfcmVmNiwgQVRUUl9UT0tFTiwgY2FjaGVkVG9rZW5LZXkpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjYsIEFUVFJfTUFSSywgY2FjaGVkU3R5bGVJZCksIF9yZWY2KSwge1xuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgIF9faHRtbDogY2FjaGVkU3R5bGVTdHJcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIHN0eWxlTm9kZSwgbm9kZSk7XG4gIH07XG59XG5leHBvcnQgdmFyIGV4dHJhY3QgPSBmdW5jdGlvbiBleHRyYWN0KGNhY2hlLCBlZmZlY3RTdHlsZXMsIG9wdGlvbnMpIHtcbiAgdmFyIF9jYWNoZSA9IF9zbGljZWRUb0FycmF5KGNhY2hlLCA2KSxcbiAgICBzdHlsZVN0ciA9IF9jYWNoZVswXSxcbiAgICB0b2tlbktleSA9IF9jYWNoZVsxXSxcbiAgICBzdHlsZUlkID0gX2NhY2hlWzJdLFxuICAgIGVmZmVjdFN0eWxlID0gX2NhY2hlWzNdLFxuICAgIGNsaWVudE9ubHkgPSBfY2FjaGVbNF0sXG4gICAgb3JkZXIgPSBfY2FjaGVbNV07XG4gIHZhciBfcmVmNyA9IG9wdGlvbnMgfHwge30sXG4gICAgcGxhaW4gPSBfcmVmNy5wbGFpbjtcblxuICAvLyBTa2lwIGNsaWVudCBvbmx5IHN0eWxlXG4gIGlmIChjbGllbnRPbmx5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmFyIGtleVN0eWxlVGV4dCA9IHN0eWxlU3RyO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT0gU2hhcmUgPT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVc2VkIGZvciByYy11dGlsXG4gIHZhciBzaGFyZWRBdHRycyA9IHtcbiAgICAnZGF0YS1yYy1vcmRlcic6ICdwcmVwZW5kUXVldWUnLFxuICAgICdkYXRhLXJjLXByaW9yaXR5JzogXCJcIi5jb25jYXQob3JkZXIpXG4gIH07XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBTdHlsZSA9PT09PT09PT09PT09PT09PT09PT09XG4gIGtleVN0eWxlVGV4dCA9IHRvU3R5bGVTdHIoc3R5bGVTdHIsIHRva2VuS2V5LCBzdHlsZUlkLCBzaGFyZWRBdHRycywgcGxhaW4pO1xuXG4gIC8vID09PT09PT09PT09PT09PSBDcmVhdGUgZWZmZWN0IHN0eWxlID09PT09PT09PT09PT09PVxuICBpZiAoZWZmZWN0U3R5bGUpIHtcbiAgICBPYmplY3Qua2V5cyhlZmZlY3RTdHlsZSkuZm9yRWFjaChmdW5jdGlvbiAoZWZmZWN0S2V5KSB7XG4gICAgICAvLyBFZmZlY3Qgc3R5bGUgY2FuIGJlIHJldXNlZFxuICAgICAgaWYgKCFlZmZlY3RTdHlsZXNbZWZmZWN0S2V5XSkge1xuICAgICAgICBlZmZlY3RTdHlsZXNbZWZmZWN0S2V5XSA9IHRydWU7XG4gICAgICAgIHZhciBlZmZlY3RTdHlsZVN0ciA9IG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pO1xuICAgICAgICB2YXIgZWZmZWN0U3R5bGVIVE1MID0gdG9TdHlsZVN0cihlZmZlY3RTdHlsZVN0ciwgdG9rZW5LZXksIFwiX2VmZmVjdC1cIi5jb25jYXQoZWZmZWN0S2V5KSwgc2hhcmVkQXR0cnMsIHBsYWluKTtcbiAgICAgICAgaWYgKGVmZmVjdEtleS5zdGFydHNXaXRoKCdAbGF5ZXInKSkge1xuICAgICAgICAgIGtleVN0eWxlVGV4dCA9IGVmZmVjdFN0eWxlSFRNTCArIGtleVN0eWxlVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBrZXlTdHlsZVRleHQgKz0gZWZmZWN0U3R5bGVIVE1MO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIFtvcmRlciwgc3R5bGVJZCwga2V5U3R5bGVUZXh0XTtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js\n"); /***/ }), @@ -159,7 +325,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ Keyframes: () => (/* reexport safe */ _Keyframes__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ NaNLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.NaNLinter),\n/* harmony export */ StyleProvider: () => (/* reexport safe */ _StyleContext__WEBPACK_IMPORTED_MODULE_6__.StyleProvider),\n/* harmony export */ Theme: () => (/* reexport safe */ _theme__WEBPACK_IMPORTED_MODULE_7__.Theme),\n/* harmony export */ _experimental: () => (/* binding */ _experimental),\n/* harmony export */ createCache: () => (/* reexport safe */ _StyleContext__WEBPACK_IMPORTED_MODULE_6__.createCache),\n/* harmony export */ createTheme: () => (/* reexport safe */ _theme__WEBPACK_IMPORTED_MODULE_7__.createTheme),\n/* harmony export */ extractStyle: () => (/* reexport safe */ _extractStyle__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ getComputedToken: () => (/* reexport safe */ _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__.getComputedToken),\n/* harmony export */ legacyLogicalPropertiesTransformer: () => (/* reexport safe */ _transformers_legacyLogicalProperties__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ legacyNotSelectorLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.legacyNotSelectorLinter),\n/* harmony export */ logicalPropertiesLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.logicalPropertiesLinter),\n/* harmony export */ parentSelectorLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.parentSelectorLinter),\n/* harmony export */ px2remTransformer: () => (/* reexport safe */ _transformers_px2rem__WEBPACK_IMPORTED_MODULE_9__[\"default\"]),\n/* harmony export */ token2CSSVar: () => (/* reexport safe */ _util_css_variables__WEBPACK_IMPORTED_MODULE_11__.token2CSSVar),\n/* harmony export */ unit: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_10__.unit),\n/* harmony export */ useCSSVarRegister: () => (/* reexport safe */ _hooks_useCSSVarRegister__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ useCacheToken: () => (/* reexport safe */ _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ useStyleRegister: () => (/* reexport safe */ _hooks_useStyleRegister__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _extractStyle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extractStyle */ \"./node_modules/@ant-design/cssinjs/es/extractStyle.js\");\n/* harmony import */ var _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/useCacheToken */ \"./node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js\");\n/* harmony import */ var _hooks_useCSSVarRegister__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hooks/useCSSVarRegister */ \"./node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js\");\n/* harmony import */ var _hooks_useStyleRegister__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/useStyleRegister */ \"./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js\");\n/* harmony import */ var _Keyframes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Keyframes */ \"./node_modules/@ant-design/cssinjs/es/Keyframes.js\");\n/* harmony import */ var _linters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./linters */ \"./node_modules/@ant-design/cssinjs/es/linters/index.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./theme */ \"./node_modules/@ant-design/cssinjs/es/theme/index.js\");\n/* harmony import */ var _transformers_legacyLogicalProperties__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./transformers/legacyLogicalProperties */ \"./node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js\");\n/* harmony import */ var _transformers_px2rem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./transformers/px2rem */ \"./node_modules/@ant-design/cssinjs/es/transformers/px2rem.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./util */ \"./node_modules/@ant-design/cssinjs/es/util/index.js\");\n/* harmony import */ var _util_css_variables__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./util/css-variables */ \"./node_modules/@ant-design/cssinjs/es/util/css-variables.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _experimental = {\n supportModernCSS: function supportModernCSS() {\n return (0,_util__WEBPACK_IMPORTED_MODULE_10__.supportWhere)() && (0,_util__WEBPACK_IMPORTED_MODULE_10__.supportLogicProps)();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBDO0FBQzhCO0FBQ2Q7QUFDRjtBQUNwQjtBQUMwRTtBQUNsRDtBQUNmO0FBQzJDO0FBQ2xDO0FBQ1M7QUFDWDtBQU8vQjtBQUNkO0FBQ1A7QUFDQSxXQUFXLG9EQUFZLE1BQU0seURBQWlCO0FBQzlDO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvaW5kZXguanM/MTI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXh0cmFjdFN0eWxlIGZyb20gXCIuL2V4dHJhY3RTdHlsZVwiO1xuaW1wb3J0IHVzZUNhY2hlVG9rZW4sIHsgZ2V0Q29tcHV0ZWRUb2tlbiB9IGZyb20gXCIuL2hvb2tzL3VzZUNhY2hlVG9rZW5cIjtcbmltcG9ydCB1c2VDU1NWYXJSZWdpc3RlciBmcm9tIFwiLi9ob29rcy91c2VDU1NWYXJSZWdpc3RlclwiO1xuaW1wb3J0IHVzZVN0eWxlUmVnaXN0ZXIgZnJvbSBcIi4vaG9va3MvdXNlU3R5bGVSZWdpc3RlclwiO1xuaW1wb3J0IEtleWZyYW1lcyBmcm9tIFwiLi9LZXlmcmFtZXNcIjtcbmltcG9ydCB7IGxlZ2FjeU5vdFNlbGVjdG9yTGludGVyLCBsb2dpY2FsUHJvcGVydGllc0xpbnRlciwgTmFOTGludGVyLCBwYXJlbnRTZWxlY3RvckxpbnRlciB9IGZyb20gXCIuL2xpbnRlcnNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhY2hlLCBTdHlsZVByb3ZpZGVyIH0gZnJvbSBcIi4vU3R5bGVDb250ZXh0XCI7XG5pbXBvcnQgeyBjcmVhdGVUaGVtZSwgVGhlbWUgfSBmcm9tIFwiLi90aGVtZVwiO1xuaW1wb3J0IGxlZ2FjeUxvZ2ljYWxQcm9wZXJ0aWVzVHJhbnNmb3JtZXIgZnJvbSBcIi4vdHJhbnNmb3JtZXJzL2xlZ2FjeUxvZ2ljYWxQcm9wZXJ0aWVzXCI7XG5pbXBvcnQgcHgycmVtVHJhbnNmb3JtZXIgZnJvbSBcIi4vdHJhbnNmb3JtZXJzL3B4MnJlbVwiO1xuaW1wb3J0IHsgc3VwcG9ydExvZ2ljUHJvcHMsIHN1cHBvcnRXaGVyZSwgdW5pdCB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IHRva2VuMkNTU1ZhciB9IGZyb20gXCIuL3V0aWwvY3NzLXZhcmlhYmxlc1wiO1xuZXhwb3J0IHsgVGhlbWUsIGNyZWF0ZVRoZW1lLCB1c2VTdHlsZVJlZ2lzdGVyLCB1c2VDU1NWYXJSZWdpc3RlciwgdXNlQ2FjaGVUb2tlbiwgY3JlYXRlQ2FjaGUsIFN0eWxlUHJvdmlkZXIsIEtleWZyYW1lcywgZXh0cmFjdFN0eWxlLCBnZXRDb21wdXRlZFRva2VuLFxuLy8gVHJhbnNmb3JtZXJcbmxlZ2FjeUxvZ2ljYWxQcm9wZXJ0aWVzVHJhbnNmb3JtZXIsIHB4MnJlbVRyYW5zZm9ybWVyLFxuLy8gTGludGVyc1xubG9naWNhbFByb3BlcnRpZXNMaW50ZXIsIGxlZ2FjeU5vdFNlbGVjdG9yTGludGVyLCBwYXJlbnRTZWxlY3RvckxpbnRlciwgTmFOTGludGVyLFxuLy8gdXRpbFxudG9rZW4yQ1NTVmFyLCB1bml0IH07XG5leHBvcnQgdmFyIF9leHBlcmltZW50YWwgPSB7XG4gIHN1cHBvcnRNb2Rlcm5DU1M6IGZ1bmN0aW9uIHN1cHBvcnRNb2Rlcm5DU1MoKSB7XG4gICAgcmV0dXJuIHN1cHBvcnRXaGVyZSgpICYmIHN1cHBvcnRMb2dpY1Byb3BzKCk7XG4gIH1cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Keyframes: () => (/* reexport safe */ _Keyframes__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ NaNLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.NaNLinter),\n/* harmony export */ StyleProvider: () => (/* reexport safe */ _StyleContext__WEBPACK_IMPORTED_MODULE_6__.StyleProvider),\n/* harmony export */ Theme: () => (/* reexport safe */ _theme__WEBPACK_IMPORTED_MODULE_7__.Theme),\n/* harmony export */ _experimental: () => (/* binding */ _experimental),\n/* harmony export */ createCache: () => (/* reexport safe */ _StyleContext__WEBPACK_IMPORTED_MODULE_6__.createCache),\n/* harmony export */ createTheme: () => (/* reexport safe */ _theme__WEBPACK_IMPORTED_MODULE_7__.createTheme),\n/* harmony export */ extractStyle: () => (/* reexport safe */ _extractStyle__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ genCalc: () => (/* reexport safe */ _theme__WEBPACK_IMPORTED_MODULE_7__.genCalc),\n/* harmony export */ getComputedToken: () => (/* reexport safe */ _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__.getComputedToken),\n/* harmony export */ legacyLogicalPropertiesTransformer: () => (/* reexport safe */ _transformers_legacyLogicalProperties__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ legacyNotSelectorLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.legacyNotSelectorLinter),\n/* harmony export */ logicalPropertiesLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.logicalPropertiesLinter),\n/* harmony export */ parentSelectorLinter: () => (/* reexport safe */ _linters__WEBPACK_IMPORTED_MODULE_5__.parentSelectorLinter),\n/* harmony export */ px2remTransformer: () => (/* reexport safe */ _transformers_px2rem__WEBPACK_IMPORTED_MODULE_9__[\"default\"]),\n/* harmony export */ token2CSSVar: () => (/* reexport safe */ _util_css_variables__WEBPACK_IMPORTED_MODULE_11__.token2CSSVar),\n/* harmony export */ unit: () => (/* reexport safe */ _util__WEBPACK_IMPORTED_MODULE_10__.unit),\n/* harmony export */ useCSSVarRegister: () => (/* reexport safe */ _hooks_useCSSVarRegister__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ useCacheToken: () => (/* reexport safe */ _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ useStyleRegister: () => (/* reexport safe */ _hooks_useStyleRegister__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _extractStyle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extractStyle */ \"./node_modules/@ant-design/cssinjs/es/extractStyle.js\");\n/* harmony import */ var _hooks_useCacheToken__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/useCacheToken */ \"./node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js\");\n/* harmony import */ var _hooks_useCSSVarRegister__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hooks/useCSSVarRegister */ \"./node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js\");\n/* harmony import */ var _hooks_useStyleRegister__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/useStyleRegister */ \"./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js\");\n/* harmony import */ var _Keyframes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Keyframes */ \"./node_modules/@ant-design/cssinjs/es/Keyframes.js\");\n/* harmony import */ var _linters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./linters */ \"./node_modules/@ant-design/cssinjs/es/linters/index.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./theme */ \"./node_modules/@ant-design/cssinjs/es/theme/index.js\");\n/* harmony import */ var _transformers_legacyLogicalProperties__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./transformers/legacyLogicalProperties */ \"./node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js\");\n/* harmony import */ var _transformers_px2rem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./transformers/px2rem */ \"./node_modules/@ant-design/cssinjs/es/transformers/px2rem.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./util */ \"./node_modules/@ant-design/cssinjs/es/util/index.js\");\n/* harmony import */ var _util_css_variables__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./util/css-variables */ \"./node_modules/@ant-design/cssinjs/es/util/css-variables.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _experimental = {\n supportModernCSS: function supportModernCSS() {\n return (0,_util__WEBPACK_IMPORTED_MODULE_10__.supportWhere)() && (0,_util__WEBPACK_IMPORTED_MODULE_10__.supportLogicProps)();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwQztBQUM4QjtBQUNkO0FBQ0Y7QUFDcEI7QUFDMEU7QUFDbEQ7QUFDTjtBQUNrQztBQUNsQztBQUNTO0FBQ1g7QUFPdEI7QUFDdkI7QUFDUDtBQUNBLFdBQVcsb0RBQVksTUFBTSx5REFBaUI7QUFDOUM7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy9pbmRleC5qcz8xMjgzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBleHRyYWN0U3R5bGUgZnJvbSBcIi4vZXh0cmFjdFN0eWxlXCI7XG5pbXBvcnQgdXNlQ2FjaGVUb2tlbiwgeyBnZXRDb21wdXRlZFRva2VuIH0gZnJvbSBcIi4vaG9va3MvdXNlQ2FjaGVUb2tlblwiO1xuaW1wb3J0IHVzZUNTU1ZhclJlZ2lzdGVyIGZyb20gXCIuL2hvb2tzL3VzZUNTU1ZhclJlZ2lzdGVyXCI7XG5pbXBvcnQgdXNlU3R5bGVSZWdpc3RlciBmcm9tIFwiLi9ob29rcy91c2VTdHlsZVJlZ2lzdGVyXCI7XG5pbXBvcnQgS2V5ZnJhbWVzIGZyb20gXCIuL0tleWZyYW1lc1wiO1xuaW1wb3J0IHsgbGVnYWN5Tm90U2VsZWN0b3JMaW50ZXIsIGxvZ2ljYWxQcm9wZXJ0aWVzTGludGVyLCBOYU5MaW50ZXIsIHBhcmVudFNlbGVjdG9yTGludGVyIH0gZnJvbSBcIi4vbGludGVyc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FjaGUsIFN0eWxlUHJvdmlkZXIgfSBmcm9tIFwiLi9TdHlsZUNvbnRleHRcIjtcbmltcG9ydCB7IGNyZWF0ZVRoZW1lLCBnZW5DYWxjLCBUaGVtZSB9IGZyb20gXCIuL3RoZW1lXCI7XG5pbXBvcnQgbGVnYWN5TG9naWNhbFByb3BlcnRpZXNUcmFuc2Zvcm1lciBmcm9tIFwiLi90cmFuc2Zvcm1lcnMvbGVnYWN5TG9naWNhbFByb3BlcnRpZXNcIjtcbmltcG9ydCBweDJyZW1UcmFuc2Zvcm1lciBmcm9tIFwiLi90cmFuc2Zvcm1lcnMvcHgycmVtXCI7XG5pbXBvcnQgeyBzdXBwb3J0TG9naWNQcm9wcywgc3VwcG9ydFdoZXJlLCB1bml0IH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgdG9rZW4yQ1NTVmFyIH0gZnJvbSBcIi4vdXRpbC9jc3MtdmFyaWFibGVzXCI7XG5leHBvcnQgeyBUaGVtZSwgY3JlYXRlVGhlbWUsIHVzZVN0eWxlUmVnaXN0ZXIsIHVzZUNTU1ZhclJlZ2lzdGVyLCB1c2VDYWNoZVRva2VuLCBjcmVhdGVDYWNoZSwgU3R5bGVQcm92aWRlciwgS2V5ZnJhbWVzLCBleHRyYWN0U3R5bGUsIGdldENvbXB1dGVkVG9rZW4sXG4vLyBUcmFuc2Zvcm1lclxubGVnYWN5TG9naWNhbFByb3BlcnRpZXNUcmFuc2Zvcm1lciwgcHgycmVtVHJhbnNmb3JtZXIsXG4vLyBMaW50ZXJzXG5sb2dpY2FsUHJvcGVydGllc0xpbnRlciwgbGVnYWN5Tm90U2VsZWN0b3JMaW50ZXIsIHBhcmVudFNlbGVjdG9yTGludGVyLCBOYU5MaW50ZXIsXG4vLyB1dGlsXG50b2tlbjJDU1NWYXIsIHVuaXQsIGdlbkNhbGMgfTtcbmV4cG9ydCB2YXIgX2V4cGVyaW1lbnRhbCA9IHtcbiAgc3VwcG9ydE1vZGVybkNTUzogZnVuY3Rpb24gc3VwcG9ydE1vZGVybkNTUygpIHtcbiAgICByZXR1cm4gc3VwcG9ydFdoZXJlKCkgJiYgc3VwcG9ydExvZ2ljUHJvcHMoKTtcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/index.js\n"); /***/ }), @@ -273,6 +439,50 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.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 */ CSSCalculator)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _calculator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./calculator */ \"./node_modules/@ant-design/cssinjs/es/theme/calc/calculator.js\");\n\n\n\n\n\n\n\n\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n if (typeof value === 'number') {\n return \"\".concat(value).concat(CALC_UNIT);\n }\n return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(CSSCalculator, _AbstractCalculator);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(CSSCalculator);\n function CSSCalculator(num, unitlessCssVar) {\n var _this;\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, CSSCalculator);\n _this = _super.call(this);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"result\", '');\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"unitlessCssVar\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_this), \"lowPriority\", void 0);\n var numType = (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(num);\n _this.unitlessCssVar = unitlessCssVar;\n if (num instanceof CSSCalculator) {\n _this.result = \"(\".concat(num.result, \")\");\n } else if (numType === 'number') {\n _this.result = unit(num);\n } else if (numType === 'string') {\n _this.result = num;\n }\n return _this;\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(CSSCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" * \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" / \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"getResult\",\n value: function getResult(force) {\n return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n }\n }, {\n key: \"equal\",\n value: function equal(options) {\n var _this2 = this;\n var _ref = options || {},\n cssUnit = _ref.unit;\n var mergedUnit = true;\n if (typeof cssUnit === 'boolean') {\n mergedUnit = cssUnit;\n } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n return _this2.result.includes(cssVar);\n })) {\n mergedUnit = false;\n }\n this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n if (typeof this.lowPriority !== 'undefined') {\n return \"calc(\".concat(this.result, \")\");\n }\n return this.result;\n }\n }]);\n return CSSCalculator;\n}(_calculator__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL0NTU0NhbGN1bGF0b3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXdEO0FBQ2dCO0FBQ047QUFDb0I7QUFDMUI7QUFDTTtBQUNNO0FBQzFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0VBQVM7QUFDWCxlQUFlLGtGQUFZO0FBQzNCO0FBQ0E7QUFDQSxJQUFJLHFGQUFlO0FBQ25CO0FBQ0EsSUFBSSxxRkFBZSxDQUFDLDRGQUFzQjtBQUMxQyxJQUFJLHFGQUFlLENBQUMsNEZBQXNCO0FBQzFDLElBQUkscUZBQWUsQ0FBQyw0RkFBc0I7QUFDMUMsa0JBQWtCLDZFQUFPO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0ZBQVk7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQyxDQUFDLG1EQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL0NTU0NhbGN1bGF0b3IuanM/NzcyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBBYnN0cmFjdENhbGN1bGF0b3IgZnJvbSBcIi4vY2FsY3VsYXRvclwiO1xudmFyIENBTENfVU5JVCA9ICdDQUxDX1VOSVQnO1xudmFyIHJlZ2V4cCA9IG5ldyBSZWdFeHAoQ0FMQ19VTklULCAnZycpO1xuZnVuY3Rpb24gdW5pdCh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBcIlwiLmNvbmNhdCh2YWx1ZSkuY29uY2F0KENBTENfVU5JVCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxudmFyIENTU0NhbGN1bGF0b3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9BYnN0cmFjdENhbGN1bGF0b3IpIHtcbiAgX2luaGVyaXRzKENTU0NhbGN1bGF0b3IsIF9BYnN0cmFjdENhbGN1bGF0b3IpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENTU0NhbGN1bGF0b3IpO1xuICBmdW5jdGlvbiBDU1NDYWxjdWxhdG9yKG51bSwgdW5pdGxlc3NDc3NWYXIpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENTU0NhbGN1bGF0b3IpO1xuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcyk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlc3VsdFwiLCAnJyk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInVuaXRsZXNzQ3NzVmFyXCIsIHZvaWQgMCk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImxvd1ByaW9yaXR5XCIsIHZvaWQgMCk7XG4gICAgdmFyIG51bVR5cGUgPSBfdHlwZW9mKG51bSk7XG4gICAgX3RoaXMudW5pdGxlc3NDc3NWYXIgPSB1bml0bGVzc0Nzc1ZhcjtcbiAgICBpZiAobnVtIGluc3RhbmNlb2YgQ1NTQ2FsY3VsYXRvcikge1xuICAgICAgX3RoaXMucmVzdWx0ID0gXCIoXCIuY29uY2F0KG51bS5yZXN1bHQsIFwiKVwiKTtcbiAgICB9IGVsc2UgaWYgKG51bVR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBfdGhpcy5yZXN1bHQgPSB1bml0KG51bSk7XG4gICAgfSBlbHNlIGlmIChudW1UeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgX3RoaXMucmVzdWx0ID0gbnVtO1xuICAgIH1cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cbiAgX2NyZWF0ZUNsYXNzKENTU0NhbGN1bGF0b3IsIFt7XG4gICAga2V5OiBcImFkZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGQobnVtKSB7XG4gICAgICBpZiAobnVtIGluc3RhbmNlb2YgQ1NTQ2FsY3VsYXRvcikge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIiArIFwiKS5jb25jYXQobnVtLmdldFJlc3VsdCgpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG51bSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgKyBcIikuY29uY2F0KHVuaXQobnVtKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvd1ByaW9yaXR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzdWJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3ViKG51bSkge1xuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgLSBcIikuY29uY2F0KG51bS5nZXRSZXN1bHQoKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInIHx8IHR5cGVvZiBudW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCJcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiIC0gXCIpLmNvbmNhdCh1bml0KG51bSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb3dQcmlvcml0eSA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibXVsXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG11bChudW0pIHtcbiAgICAgIGlmICh0aGlzLmxvd1ByaW9yaXR5KSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCIoXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIilcIik7XG4gICAgICB9XG4gICAgICBpZiAobnVtIGluc3RhbmNlb2YgQ1NTQ2FsY3VsYXRvcikge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIiAqIFwiKS5jb25jYXQobnVtLmdldFJlc3VsdCh0cnVlKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInIHx8IHR5cGVvZiBudW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gXCJcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiICogXCIpLmNvbmNhdChudW0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sb3dQcmlvcml0eSA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImRpdlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkaXYobnVtKSB7XG4gICAgICBpZiAodGhpcy5sb3dQcmlvcml0eSkge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiKFwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIpXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIgLyBcIikuY29uY2F0KG51bS5nZXRSZXN1bHQodHJ1ZSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbnVtID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnJlc3VsdCA9IFwiXCIuY29uY2F0KHRoaXMucmVzdWx0LCBcIiAvIFwiKS5jb25jYXQobnVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG93UHJpb3JpdHkgPSBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXN1bHRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UmVzdWx0KGZvcmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb3dQcmlvcml0eSB8fCBmb3JjZSA/IFwiKFwiLmNvbmNhdCh0aGlzLnJlc3VsdCwgXCIpXCIpIDogdGhpcy5yZXN1bHQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImVxdWFsXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGVxdWFsKG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgdmFyIF9yZWYgPSBvcHRpb25zIHx8IHt9LFxuICAgICAgICBjc3NVbml0ID0gX3JlZi51bml0O1xuICAgICAgdmFyIG1lcmdlZFVuaXQgPSB0cnVlO1xuICAgICAgaWYgKHR5cGVvZiBjc3NVbml0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgbWVyZ2VkVW5pdCA9IGNzc1VuaXQ7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmZyb20odGhpcy51bml0bGVzc0Nzc1Zhcikuc29tZShmdW5jdGlvbiAoY3NzVmFyKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIucmVzdWx0LmluY2x1ZGVzKGNzc1Zhcik7XG4gICAgICB9KSkge1xuICAgICAgICBtZXJnZWRVbml0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnJlc3VsdCA9IHRoaXMucmVzdWx0LnJlcGxhY2UocmVnZXhwLCBtZXJnZWRVbml0ID8gJ3B4JyA6ICcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5sb3dQcmlvcml0eSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIFwiY2FsYyhcIi5jb25jYXQodGhpcy5yZXN1bHQsIFwiKVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJlc3VsdDtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIENTU0NhbGN1bGF0b3I7XG59KEFic3RyYWN0Q2FsY3VsYXRvcik7XG5leHBvcnQgeyBDU1NDYWxjdWxhdG9yIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs/es/theme/calc/NumCalculator.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs/es/theme/calc/NumCalculator.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 */ NumCalculator)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _calculator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./calculator */ \"./node_modules/@ant-design/cssinjs/es/theme/calc/calculator.js\");\n\n\n\n\n\n\n\nvar NumCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(NumCalculator, _AbstractCalculator);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(NumCalculator);\n function NumCalculator(num) {\n var _this;\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, NumCalculator);\n _this = _super.call(this);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"result\", 0);\n if (num instanceof NumCalculator) {\n _this.result = num.result;\n } else if (typeof num === 'number') {\n _this.result = num;\n }\n return _this;\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(NumCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof NumCalculator) {\n this.result += num.result;\n } else if (typeof num === 'number') {\n this.result += num;\n }\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof NumCalculator) {\n this.result -= num.result;\n } else if (typeof num === 'number') {\n this.result -= num;\n }\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (num instanceof NumCalculator) {\n this.result *= num.result;\n } else if (typeof num === 'number') {\n this.result *= num;\n }\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (num instanceof NumCalculator) {\n this.result /= num.result;\n } else if (typeof num === 'number') {\n this.result /= num;\n }\n return this;\n }\n }, {\n key: \"equal\",\n value: function equal() {\n return this.result;\n }\n }]);\n return NumCalculator;\n}(_calculator__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL051bUNhbGN1bGF0b3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBd0U7QUFDTjtBQUNvQjtBQUMxQjtBQUNNO0FBQ007QUFDMUI7QUFDOUM7QUFDQSxFQUFFLCtFQUFTO0FBQ1gsZUFBZSxrRkFBWTtBQUMzQjtBQUNBO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQjtBQUNBLElBQUkscUZBQWUsQ0FBQyw0RkFBc0I7QUFDMUM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0ZBQVk7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLENBQUMsQ0FBQyxtREFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdGhlbWUvY2FsYy9OdW1DYWxjdWxhdG9yLmpzP2U2MjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgQWJzdHJhY3RDYWxjdWxhdG9yIGZyb20gXCIuL2NhbGN1bGF0b3JcIjtcbnZhciBOdW1DYWxjdWxhdG9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQWJzdHJhY3RDYWxjdWxhdG9yKSB7XG4gIF9pbmhlcml0cyhOdW1DYWxjdWxhdG9yLCBfQWJzdHJhY3RDYWxjdWxhdG9yKTtcbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihOdW1DYWxjdWxhdG9yKTtcbiAgZnVuY3Rpb24gTnVtQ2FsY3VsYXRvcihudW0pIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE51bUNhbGN1bGF0b3IpO1xuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcyk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlc3VsdFwiLCAwKTtcbiAgICBpZiAobnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcikge1xuICAgICAgX3RoaXMucmVzdWx0ID0gbnVtLnJlc3VsdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICBfdGhpcy5yZXN1bHQgPSBudW07XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoTnVtQ2FsY3VsYXRvciwgW3tcbiAgICBrZXk6IFwiYWRkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZChudW0pIHtcbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBOdW1DYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ICs9IG51bS5yZXN1bHQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMucmVzdWx0ICs9IG51bTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzdWJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3ViKG51bSkge1xuICAgICAgaWYgKG51bSBpbnN0YW5jZW9mIE51bUNhbGN1bGF0b3IpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgLT0gbnVtLnJlc3VsdDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5yZXN1bHQgLT0gbnVtO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm11bFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBtdWwobnVtKSB7XG4gICAgICBpZiAobnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcikge1xuICAgICAgICB0aGlzLnJlc3VsdCAqPSBudW0ucmVzdWx0O1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLnJlc3VsdCAqPSBudW07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGl2XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRpdihudW0pIHtcbiAgICAgIGlmIChudW0gaW5zdGFuY2VvZiBOdW1DYWxjdWxhdG9yKSB7XG4gICAgICAgIHRoaXMucmVzdWx0IC89IG51bS5yZXN1bHQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMucmVzdWx0IC89IG51bTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlcXVhbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlcXVhbCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc3VsdDtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIE51bUNhbGN1bGF0b3I7XG59KEFic3RyYWN0Q2FsY3VsYXRvcik7XG5leHBvcnQgeyBOdW1DYWxjdWxhdG9yIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/calc/NumCalculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs/es/theme/calc/calculator.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs/es/theme/calc/calculator.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_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n\n\nvar AbstractCalculator = /*#__PURE__*/(0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function AbstractCalculator() {\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, AbstractCalculator);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AbstractCalculator);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL2NhbGN1bGF0b3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtFO0FBQ007QUFDeEUsc0NBQXNDLGtGQUFZO0FBQ2xELEVBQUUscUZBQWU7QUFDakIsQ0FBQztBQUNELGlFQUFlLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL2NhbGN1bGF0b3IuanM/YmZiYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbnZhciBBYnN0cmFjdENhbGN1bGF0b3IgPSAvKiNfX1BVUkVfXyovX2NyZWF0ZUNsYXNzKGZ1bmN0aW9uIEFic3RyYWN0Q2FsY3VsYXRvcigpIHtcbiAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFic3RyYWN0Q2FsY3VsYXRvcik7XG59KTtcbmV4cG9ydCBkZWZhdWx0IEFic3RyYWN0Q2FsY3VsYXRvcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/calc/calculator.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/cssinjs/es/theme/calc/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@ant-design/cssinjs/es/theme/calc/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 _CSSCalculator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CSSCalculator */ \"./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js\");\n/* harmony import */ var _NumCalculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumCalculator */ \"./node_modules/@ant-design/cssinjs/es/theme/calc/NumCalculator.js\");\n\n\nvar genCalc = function genCalc(type, unitlessCssVar) {\n var Calculator = type === 'css' ? _CSSCalculator__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : _NumCalculator__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n return function (num) {\n return new Calculator(num, unitlessCssVar);\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genCalc);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9jYWxjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNBO0FBQzVDO0FBQ0Esb0NBQW9DLHNEQUFhLEdBQUcsc0RBQWE7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jc3NpbmpzL2VzL3RoZW1lL2NhbGMvaW5kZXguanM/NTg0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ1NTQ2FsY3VsYXRvciBmcm9tIFwiLi9DU1NDYWxjdWxhdG9yXCI7XG5pbXBvcnQgTnVtQ2FsY3VsYXRvciBmcm9tIFwiLi9OdW1DYWxjdWxhdG9yXCI7XG52YXIgZ2VuQ2FsYyA9IGZ1bmN0aW9uIGdlbkNhbGModHlwZSwgdW5pdGxlc3NDc3NWYXIpIHtcbiAgdmFyIENhbGN1bGF0b3IgPSB0eXBlID09PSAnY3NzJyA/IENTU0NhbGN1bGF0b3IgOiBOdW1DYWxjdWxhdG9yO1xuICByZXR1cm4gZnVuY3Rpb24gKG51bSkge1xuICAgIHJldHVybiBuZXcgQ2FsY3VsYXRvcihudW0sIHVuaXRsZXNzQ3NzVmFyKTtcbiAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBnZW5DYWxjOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/calc/index.js\n"); + +/***/ }), + /***/ "./node_modules/@ant-design/cssinjs/es/theme/createTheme.js": /*!******************************************************************!*\ !*** ./node_modules/@ant-design/cssinjs/es/theme/createTheme.js ***! @@ -291,7 +501,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ Theme: () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ ThemeCache: () => (/* reexport safe */ _ThemeCache__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ createTheme: () => (/* reexport safe */ _createTheme__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createTheme */ \"./node_modules/@ant-design/cssinjs/es/theme/createTheme.js\");\n/* harmony import */ var _Theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Theme */ \"./node_modules/@ant-design/cssinjs/es/theme/Theme.js\");\n/* harmony import */ var _ThemeCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ThemeCache */ \"./node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js\");\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUQ7QUFDWiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9pbmRleC5qcz80NjI0Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgY3JlYXRlVGhlbWUgfSBmcm9tIFwiLi9jcmVhdGVUaGVtZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaGVtZSB9IGZyb20gXCIuL1RoZW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRoZW1lQ2FjaGUgfSBmcm9tIFwiLi9UaGVtZUNhY2hlXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Theme: () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ ThemeCache: () => (/* reexport safe */ _ThemeCache__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ createTheme: () => (/* reexport safe */ _createTheme__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ genCalc: () => (/* reexport safe */ _calc__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _calc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calc */ \"./node_modules/@ant-design/cssinjs/es/theme/calc/index.js\");\n/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createTheme */ \"./node_modules/@ant-design/cssinjs/es/theme/createTheme.js\");\n/* harmony import */ var _Theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Theme */ \"./node_modules/@ant-design/cssinjs/es/theme/Theme.js\");\n/* harmony import */ var _ThemeCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ThemeCache */ \"./node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90aGVtZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUE0QztBQUNXO0FBQ1oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdGhlbWUvaW5kZXguanM/NDYyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGdlbkNhbGMgfSBmcm9tIFwiLi9jYWxjXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVRoZW1lIH0gZnJvbSBcIi4vY3JlYXRlVGhlbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGhlbWUgfSBmcm9tIFwiLi9UaGVtZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaGVtZUNhY2hlIH0gZnJvbSBcIi4vVGhlbWVDYWNoZVwiOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/theme/index.js\n"); /***/ }), @@ -313,7 +523,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js\");\n\n\n/**\n * respect https://github.com/cuth/postcss-pxtorem\n */\n// @ts-ignore\n\nvar pxRegex = /url\\([^)]+\\)|var\\([^)]+\\)|(\\d*\\.?\\d+)px/g;\nfunction toFixed(number, precision) {\n var multiplier = Math.pow(10, precision + 1),\n wholeNumber = Math.floor(number * multiplier);\n return Math.round(wholeNumber / 10) * 10 / multiplier;\n}\nvar transform = function transform() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$rootValue = options.rootValue,\n rootValue = _options$rootValue === void 0 ? 16 : _options$rootValue,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 5 : _options$precision,\n _options$mediaQuery = options.mediaQuery,\n mediaQuery = _options$mediaQuery === void 0 ? false : _options$mediaQuery;\n var pxReplace = function pxReplace(m, $1) {\n if (!$1) return m;\n var pixels = parseFloat($1);\n // covenant: pixels <= 1, not transform to rem @zombieJ\n if (pixels <= 1) return m;\n var fixedVal = toFixed(pixels / rootValue, precision);\n return \"\".concat(fixedVal, \"rem\");\n };\n var visit = function visit(cssObj) {\n var clone = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, cssObj);\n Object.entries(cssObj).forEach(function (_ref) {\n var _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (typeof value === 'string' && value.includes('px')) {\n var newValue = value.replace(pxRegex, pxReplace);\n clone[key] = newValue;\n }\n\n // no unit\n if (!_emotion_unitless__WEBPACK_IMPORTED_MODULE_2__[\"default\"][key] && typeof value === 'number' && value !== 0) {\n clone[key] = \"\".concat(value, \"px\").replace(pxRegex, pxReplace);\n }\n\n // Media queries\n var mergedKey = key.trim();\n if (mergedKey.startsWith('@') && mergedKey.includes('px') && mediaQuery) {\n var newKey = key.replace(pxRegex, pxReplace);\n clone[newKey] = clone[key];\n delete clone[key];\n }\n });\n return clone;\n };\n return {\n visit: visit\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (transform);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90cmFuc2Zvcm1lcnMvcHgycmVtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBc0U7QUFDRDtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUN5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9GQUFhLEdBQUc7QUFDaEM7QUFDQSxrQkFBa0Isb0ZBQWM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsV0FBVyx5REFBUTtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdHJhbnNmb3JtZXJzL3B4MnJlbS5qcz83ZTVhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbi8qKlxuICogcmVzcGVjdCBodHRwczovL2dpdGh1Yi5jb20vY3V0aC9wb3N0Y3NzLXB4dG9yZW1cbiAqL1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHVuaXRsZXNzIGZyb20gJ0BlbW90aW9uL3VuaXRsZXNzJztcbnZhciBweFJlZ2V4ID0gL3VybFxcKFteKV0rXFwpfHZhclxcKFteKV0rXFwpfChcXGQqXFwuP1xcZCspcHgvZztcbmZ1bmN0aW9uIHRvRml4ZWQobnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgdmFyIG11bHRpcGxpZXIgPSBNYXRoLnBvdygxMCwgcHJlY2lzaW9uICsgMSksXG4gICAgd2hvbGVOdW1iZXIgPSBNYXRoLmZsb29yKG51bWJlciAqIG11bHRpcGxpZXIpO1xuICByZXR1cm4gTWF0aC5yb3VuZCh3aG9sZU51bWJlciAvIDEwKSAqIDEwIC8gbXVsdGlwbGllcjtcbn1cbnZhciB0cmFuc2Zvcm0gPSBmdW5jdGlvbiB0cmFuc2Zvcm0oKSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgdmFyIF9vcHRpb25zJHJvb3RWYWx1ZSA9IG9wdGlvbnMucm9vdFZhbHVlLFxuICAgIHJvb3RWYWx1ZSA9IF9vcHRpb25zJHJvb3RWYWx1ZSA9PT0gdm9pZCAwID8gMTYgOiBfb3B0aW9ucyRyb290VmFsdWUsXG4gICAgX29wdGlvbnMkcHJlY2lzaW9uID0gb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgcHJlY2lzaW9uID0gX29wdGlvbnMkcHJlY2lzaW9uID09PSB2b2lkIDAgPyA1IDogX29wdGlvbnMkcHJlY2lzaW9uLFxuICAgIF9vcHRpb25zJG1lZGlhUXVlcnkgPSBvcHRpb25zLm1lZGlhUXVlcnksXG4gICAgbWVkaWFRdWVyeSA9IF9vcHRpb25zJG1lZGlhUXVlcnkgPT09IHZvaWQgMCA/IGZhbHNlIDogX29wdGlvbnMkbWVkaWFRdWVyeTtcbiAgdmFyIHB4UmVwbGFjZSA9IGZ1bmN0aW9uIHB4UmVwbGFjZShtLCAkMSkge1xuICAgIGlmICghJDEpIHJldHVybiBtO1xuICAgIHZhciBwaXhlbHMgPSBwYXJzZUZsb2F0KCQxKTtcbiAgICAvLyBjb3ZlbmFudDogcGl4ZWxzIDw9IDEsIG5vdCB0cmFuc2Zvcm0gdG8gcmVtIEB6b21iaWVKXG4gICAgaWYgKHBpeGVscyA8PSAxKSByZXR1cm4gbTtcbiAgICB2YXIgZml4ZWRWYWwgPSB0b0ZpeGVkKHBpeGVscyAvIHJvb3RWYWx1ZSwgcHJlY2lzaW9uKTtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoZml4ZWRWYWwsIFwicmVtXCIpO1xuICB9O1xuICB2YXIgdmlzaXQgPSBmdW5jdGlvbiB2aXNpdChjc3NPYmopIHtcbiAgICB2YXIgY2xvbmUgPSBfb2JqZWN0U3ByZWFkKHt9LCBjc3NPYmopO1xuICAgIE9iamVjdC5lbnRyaWVzKGNzc09iaikuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIF9yZWYyID0gX3NsaWNlZFRvQXJyYXkoX3JlZiwgMiksXG4gICAgICAgIGtleSA9IF9yZWYyWzBdLFxuICAgICAgICB2YWx1ZSA9IF9yZWYyWzFdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5jbHVkZXMoJ3B4JykpIHtcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gdmFsdWUucmVwbGFjZShweFJlZ2V4LCBweFJlcGxhY2UpO1xuICAgICAgICBjbG9uZVtrZXldID0gbmV3VmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vIHVuaXRcbiAgICAgIGlmICghdW5pdGxlc3Nba2V5XSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSAwKSB7XG4gICAgICAgIGNsb25lW2tleV0gPSBcIlwiLmNvbmNhdCh2YWx1ZSwgXCJweFwiKS5yZXBsYWNlKHB4UmVnZXgsIHB4UmVwbGFjZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1lZGlhIHF1ZXJpZXNcbiAgICAgIHZhciBtZXJnZWRLZXkgPSBrZXkudHJpbSgpO1xuICAgICAgaWYgKG1lcmdlZEtleS5zdGFydHNXaXRoKCdAJykgJiYgbWVyZ2VkS2V5LmluY2x1ZGVzKCdweCcpICYmIG1lZGlhUXVlcnkpIHtcbiAgICAgICAgdmFyIG5ld0tleSA9IGtleS5yZXBsYWNlKHB4UmVnZXgsIHB4UmVwbGFjZSk7XG4gICAgICAgIGNsb25lW25ld0tleV0gPSBjbG9uZVtrZXldO1xuICAgICAgICBkZWxldGUgY2xvbmVba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdmlzaXQ6IHZpc2l0XG4gIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgdHJhbnNmb3JtOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/transformers/px2rem.js\n"); +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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@emotion/unitless/dist/unitless.browser.esm.js\");\n\n\n/**\n * respect https://github.com/cuth/postcss-pxtorem\n */\n// @ts-ignore\n\nvar pxRegex = /url\\([^)]+\\)|var\\([^)]+\\)|(\\d*\\.?\\d+)px/g;\nfunction toFixed(number, precision) {\n var multiplier = Math.pow(10, precision + 1),\n wholeNumber = Math.floor(number * multiplier);\n return Math.round(wholeNumber / 10) * 10 / multiplier;\n}\nvar transform = function transform() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$rootValue = options.rootValue,\n rootValue = _options$rootValue === void 0 ? 16 : _options$rootValue,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 5 : _options$precision,\n _options$mediaQuery = options.mediaQuery,\n mediaQuery = _options$mediaQuery === void 0 ? false : _options$mediaQuery;\n var pxReplace = function pxReplace(m, $1) {\n if (!$1) return m;\n var pixels = parseFloat($1);\n // covenant: pixels <= 1, not transform to rem @zombieJ\n if (pixels <= 1) return m;\n var fixedVal = toFixed(pixels / rootValue, precision);\n return \"\".concat(fixedVal, \"rem\");\n };\n var visit = function visit(cssObj) {\n var clone = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, cssObj);\n Object.entries(cssObj).forEach(function (_ref) {\n var _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (typeof value === 'string' && value.includes('px')) {\n var newValue = value.replace(pxRegex, pxReplace);\n clone[key] = newValue;\n }\n\n // no unit\n if (!_emotion_unitless__WEBPACK_IMPORTED_MODULE_2__[\"default\"][key] && typeof value === 'number' && value !== 0) {\n clone[key] = \"\".concat(value, \"px\").replace(pxRegex, pxReplace);\n }\n\n // Media queries\n var mergedKey = key.trim();\n if (mergedKey.startsWith('@') && mergedKey.includes('px') && mediaQuery) {\n var newKey = key.replace(pxRegex, pxReplace);\n clone[newKey] = clone[key];\n delete clone[key];\n }\n });\n return clone;\n };\n return {\n visit: visit\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (transform);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy90cmFuc2Zvcm1lcnMvcHgycmVtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBc0U7QUFDRDtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUN5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9GQUFhLEdBQUc7QUFDaEM7QUFDQSxrQkFBa0Isb0ZBQWM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsV0FBVyx5REFBUTtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdHJhbnNmb3JtZXJzL3B4MnJlbS5qcz83ZTVhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbi8qKlxuICogcmVzcGVjdCBodHRwczovL2dpdGh1Yi5jb20vY3V0aC9wb3N0Y3NzLXB4dG9yZW1cbiAqL1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHVuaXRsZXNzIGZyb20gJ0BlbW90aW9uL3VuaXRsZXNzJztcbnZhciBweFJlZ2V4ID0gL3VybFxcKFteKV0rXFwpfHZhclxcKFteKV0rXFwpfChcXGQqXFwuP1xcZCspcHgvZztcbmZ1bmN0aW9uIHRvRml4ZWQobnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgdmFyIG11bHRpcGxpZXIgPSBNYXRoLnBvdygxMCwgcHJlY2lzaW9uICsgMSksXG4gICAgd2hvbGVOdW1iZXIgPSBNYXRoLmZsb29yKG51bWJlciAqIG11bHRpcGxpZXIpO1xuICByZXR1cm4gTWF0aC5yb3VuZCh3aG9sZU51bWJlciAvIDEwKSAqIDEwIC8gbXVsdGlwbGllcjtcbn1cbnZhciB0cmFuc2Zvcm0gPSBmdW5jdGlvbiB0cmFuc2Zvcm0oKSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgdmFyIF9vcHRpb25zJHJvb3RWYWx1ZSA9IG9wdGlvbnMucm9vdFZhbHVlLFxuICAgIHJvb3RWYWx1ZSA9IF9vcHRpb25zJHJvb3RWYWx1ZSA9PT0gdm9pZCAwID8gMTYgOiBfb3B0aW9ucyRyb290VmFsdWUsXG4gICAgX29wdGlvbnMkcHJlY2lzaW9uID0gb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgcHJlY2lzaW9uID0gX29wdGlvbnMkcHJlY2lzaW9uID09PSB2b2lkIDAgPyA1IDogX29wdGlvbnMkcHJlY2lzaW9uLFxuICAgIF9vcHRpb25zJG1lZGlhUXVlcnkgPSBvcHRpb25zLm1lZGlhUXVlcnksXG4gICAgbWVkaWFRdWVyeSA9IF9vcHRpb25zJG1lZGlhUXVlcnkgPT09IHZvaWQgMCA/IGZhbHNlIDogX29wdGlvbnMkbWVkaWFRdWVyeTtcbiAgdmFyIHB4UmVwbGFjZSA9IGZ1bmN0aW9uIHB4UmVwbGFjZShtLCAkMSkge1xuICAgIGlmICghJDEpIHJldHVybiBtO1xuICAgIHZhciBwaXhlbHMgPSBwYXJzZUZsb2F0KCQxKTtcbiAgICAvLyBjb3ZlbmFudDogcGl4ZWxzIDw9IDEsIG5vdCB0cmFuc2Zvcm0gdG8gcmVtIEB6b21iaWVKXG4gICAgaWYgKHBpeGVscyA8PSAxKSByZXR1cm4gbTtcbiAgICB2YXIgZml4ZWRWYWwgPSB0b0ZpeGVkKHBpeGVscyAvIHJvb3RWYWx1ZSwgcHJlY2lzaW9uKTtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoZml4ZWRWYWwsIFwicmVtXCIpO1xuICB9O1xuICB2YXIgdmlzaXQgPSBmdW5jdGlvbiB2aXNpdChjc3NPYmopIHtcbiAgICB2YXIgY2xvbmUgPSBfb2JqZWN0U3ByZWFkKHt9LCBjc3NPYmopO1xuICAgIE9iamVjdC5lbnRyaWVzKGNzc09iaikuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIF9yZWYyID0gX3NsaWNlZFRvQXJyYXkoX3JlZiwgMiksXG4gICAgICAgIGtleSA9IF9yZWYyWzBdLFxuICAgICAgICB2YWx1ZSA9IF9yZWYyWzFdO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5jbHVkZXMoJ3B4JykpIHtcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gdmFsdWUucmVwbGFjZShweFJlZ2V4LCBweFJlcGxhY2UpO1xuICAgICAgICBjbG9uZVtrZXldID0gbmV3VmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vIHVuaXRcbiAgICAgIGlmICghdW5pdGxlc3Nba2V5XSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSAwKSB7XG4gICAgICAgIGNsb25lW2tleV0gPSBcIlwiLmNvbmNhdCh2YWx1ZSwgXCJweFwiKS5yZXBsYWNlKHB4UmVnZXgsIHB4UmVwbGFjZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1lZGlhIHF1ZXJpZXNcbiAgICAgIHZhciBtZXJnZWRLZXkgPSBrZXkudHJpbSgpO1xuICAgICAgaWYgKG1lcmdlZEtleS5zdGFydHNXaXRoKCdAJykgJiYgbWVyZ2VkS2V5LmluY2x1ZGVzKCdweCcpICYmIG1lZGlhUXVlcnkpIHtcbiAgICAgICAgdmFyIG5ld0tleSA9IGtleS5yZXBsYWNlKHB4UmVnZXgsIHB4UmVwbGFjZSk7XG4gICAgICAgIGNsb25lW25ld0tleV0gPSBjbG9uZVtrZXldO1xuICAgICAgICBkZWxldGUgY2xvbmVba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdmlzaXQ6IHZpc2l0XG4gIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgdHJhbnNmb3JtOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/transformers/px2rem.js\n"); /***/ }), @@ -346,18 +556,41 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ flattenToken: () => (/* binding */ flattenToken),\n/* harmony export */ isClientSide: () => (/* binding */ isClientSide),\n/* harmony export */ memoResult: () => (/* binding */ memoResult),\n/* harmony export */ supportLayer: () => (/* binding */ supportLayer),\n/* harmony export */ supportLogicProps: () => (/* binding */ supportLogicProps),\n/* harmony export */ supportWhere: () => (/* binding */ supportWhere),\n/* harmony export */ toStyleStr: () => (/* binding */ toStyleStr),\n/* harmony export */ token2key: () => (/* binding */ token2key),\n/* harmony export */ unit: () => (/* binding */ unit)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.browser.esm.js\");\n/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/Dom/canUseDom */ \"./node_modules/rc-util/es/Dom/canUseDom.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../theme */ \"./node_modules/@ant-design/cssinjs/es/theme/index.js\");\n\n\n\n\n\n\n\n\n\n// Create a cache for memo concat\n\nvar resultCache = new WeakMap();\nvar RESULT_VALUE = {};\nfunction memoResult(callback, deps) {\n var current = resultCache;\n for (var i = 0; i < deps.length; i += 1) {\n var dep = deps[i];\n if (!current.has(dep)) {\n current.set(dep, new WeakMap());\n }\n current = current.get(dep);\n }\n if (!current.has(RESULT_VALUE)) {\n current.set(RESULT_VALUE, callback());\n }\n return current.get(RESULT_VALUE);\n}\n\n// Create a cache here to avoid always loop generate\nvar flattenTokenCache = new WeakMap();\n\n/**\n * Flatten token to string, this will auto cache the result when token not change\n */\nfunction flattenToken(token) {\n var str = flattenTokenCache.get(token) || '';\n if (!str) {\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n if (value instanceof _theme__WEBPACK_IMPORTED_MODULE_7__.Theme) {\n str += value.id;\n } else if (value && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n\n // Put in cache\n flattenTokenCache.set(token, str);\n }\n return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nfunction token2key(token, salt) {\n return (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n if ((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__[\"default\"])()) {\n var _getComputedStyle$con, _ele$parentNode;\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__.updateCSS)(styleStr, randomSelectorKey);\n var _ele = document.createElement('div');\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 || handleElement(_ele);\n document.body.appendChild(_ele);\n if (true) {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 || _ele$parentNode.removeChild(_ele);\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__.removeCSS)(randomSelectorKey);\n return support;\n }\n return false;\n}\nvar canLayer = undefined;\nfunction supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nvar canWhere = undefined;\nfunction supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nvar canLogic = undefined;\nfunction supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n }, function (ele) {\n return getComputedStyle(ele).bottom === '93px';\n });\n }\n return canLogic;\n}\nvar isClientSide = (0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__[\"default\"])();\nfunction unit(num) {\n if (typeof num === 'number') {\n return \"\".concat(num, \"px\");\n }\n return num;\n}\nfunction toStyleStr(style, tokenKey, styleId) {\n var _objectSpread2;\n var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var plain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (plain) {\n return style;\n }\n var attrs = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, customizeAttrs), {}, (_objectSpread2 = {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_objectSpread2, _StyleContext__WEBPACK_IMPORTED_MODULE_6__.ATTR_TOKEN, tokenKey), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_objectSpread2, _StyleContext__WEBPACK_IMPORTED_MODULE_6__.ATTR_MARK, styleId), _objectSpread2));\n var attrStr = Object.keys(attrs).map(function (attr) {\n var val = attrs[attr];\n return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n }).filter(function (v) {\n return v;\n }).join(' ');\n return \"\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy91dGlsL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXdFO0FBQ0g7QUFDYjtBQUN2QjtBQUNnQjtBQUNnQjtBQUNUO0FBQ3ZCOztBQUVqQzs7QUFFQTtBQUNBO0FBQ087QUFDUDtBQUNBLGtCQUFrQixpQkFBaUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQix5Q0FBSztBQUNoQztBQUNBLFFBQVEsa0JBQWtCLDZFQUFPO0FBQ2pDO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ087QUFDUCxTQUFTLHlEQUFJO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9FQUFTO0FBQ2Y7QUFDQSxJQUFJLG9FQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxvRUFBUztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0EsdUVBQXVFLGtDQUFrQyxxREFBcUQ7QUFDOUo7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0EseUVBQXlFLG1EQUFtRDtBQUM1SDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxpRUFBaUUsK0JBQStCO0FBQ2hHO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNPLG1CQUFtQixvRUFBUztBQUM1QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLHFCQUFxQixzQkFBc0IsRUFBRSxxRkFBZSxpQkFBaUIscURBQVUsYUFBYSxxRkFBZSxpQkFBaUIsb0RBQVM7QUFDekw7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdXRpbC9pbmRleC5qcz9iNjM4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IGhhc2ggZnJvbSAnQGVtb3Rpb24vaGFzaCc7XG5pbXBvcnQgY2FuVXNlRG9tIGZyb20gXCJyYy11dGlsL2VzL0RvbS9jYW5Vc2VEb21cIjtcbmltcG9ydCB7IHJlbW92ZUNTUywgdXBkYXRlQ1NTIH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2R5bmFtaWNDU1NcIjtcbmltcG9ydCB7IEFUVFJfTUFSSywgQVRUUl9UT0tFTiB9IGZyb20gXCIuLi9TdHlsZUNvbnRleHRcIjtcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4uL3RoZW1lXCI7XG5cbi8vIENyZWF0ZSBhIGNhY2hlIGZvciBtZW1vIGNvbmNhdFxuXG52YXIgcmVzdWx0Q2FjaGUgPSBuZXcgV2Vha01hcCgpO1xudmFyIFJFU1VMVF9WQUxVRSA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW9SZXN1bHQoY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGN1cnJlbnQgPSByZXN1bHRDYWNoZTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXBzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgdmFyIGRlcCA9IGRlcHNbaV07XG4gICAgaWYgKCFjdXJyZW50LmhhcyhkZXApKSB7XG4gICAgICBjdXJyZW50LnNldChkZXAsIG5ldyBXZWFrTWFwKCkpO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudC5nZXQoZGVwKTtcbiAgfVxuICBpZiAoIWN1cnJlbnQuaGFzKFJFU1VMVF9WQUxVRSkpIHtcbiAgICBjdXJyZW50LnNldChSRVNVTFRfVkFMVUUsIGNhbGxiYWNrKCkpO1xuICB9XG4gIHJldHVybiBjdXJyZW50LmdldChSRVNVTFRfVkFMVUUpO1xufVxuXG4vLyBDcmVhdGUgYSBjYWNoZSBoZXJlIHRvIGF2b2lkIGFsd2F5cyBsb29wIGdlbmVyYXRlXG52YXIgZmxhdHRlblRva2VuQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuXG4vKipcbiAqIEZsYXR0ZW4gdG9rZW4gdG8gc3RyaW5nLCB0aGlzIHdpbGwgYXV0byBjYWNoZSB0aGUgcmVzdWx0IHdoZW4gdG9rZW4gbm90IGNoYW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlblRva2VuKHRva2VuKSB7XG4gIHZhciBzdHIgPSBmbGF0dGVuVG9rZW5DYWNoZS5nZXQodG9rZW4pIHx8ICcnO1xuICBpZiAoIXN0cikge1xuICAgIE9iamVjdC5rZXlzKHRva2VuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHRva2VuW2tleV07XG4gICAgICBzdHIgKz0ga2V5O1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGhlbWUpIHtcbiAgICAgICAgc3RyICs9IHZhbHVlLmlkO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgc3RyICs9IGZsYXR0ZW5Ub2tlbih2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHIgKz0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBQdXQgaW4gY2FjaGVcbiAgICBmbGF0dGVuVG9rZW5DYWNoZS5zZXQodG9rZW4sIHN0cik7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRlcml2YXRpdmUgdG9rZW4gdG8ga2V5IHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW4ya2V5KHRva2VuLCBzYWx0KSB7XG4gIHJldHVybiBoYXNoKFwiXCIuY29uY2F0KHNhbHQsIFwiX1wiKS5jb25jYXQoZmxhdHRlblRva2VuKHRva2VuKSkpO1xufVxudmFyIHJhbmRvbVNlbGVjdG9yS2V5ID0gXCJyYW5kb20tXCIuY29uY2F0KERhdGUubm93KCksIFwiLVwiKS5jb25jYXQoTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXFwuL2csICcnKTtcblxuLy8gTWFnaWMgYGNvbnRlbnRgIGZvciBkZXRlY3Qgc2VsZWN0b3Igc3VwcG9ydFxudmFyIGNoZWNrQ29udGVudCA9ICdfYkFtQm9PXyc7XG5mdW5jdGlvbiBzdXBwb3J0U2VsZWN0b3Ioc3R5bGVTdHIsIGhhbmRsZUVsZW1lbnQsIHN1cHBvcnRDaGVjaykge1xuICBpZiAoY2FuVXNlRG9tKCkpIHtcbiAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUkY29uLCBfZWxlJHBhcmVudE5vZGU7XG4gICAgdXBkYXRlQ1NTKHN0eWxlU3RyLCByYW5kb21TZWxlY3RvcktleSk7XG4gICAgdmFyIF9lbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBfZWxlLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICBfZWxlLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgX2VsZS5zdHlsZS50b3AgPSAnMCc7XG4gICAgaGFuZGxlRWxlbWVudCA9PT0gbnVsbCB8fCBoYW5kbGVFbGVtZW50ID09PSB2b2lkIDAgfHwgaGFuZGxlRWxlbWVudChfZWxlKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKF9lbGUpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBfZWxlLmlubmVySFRNTCA9ICdUZXN0JztcbiAgICAgIF9lbGUuc3R5bGUuekluZGV4ID0gJzk5OTk5OTknO1xuICAgIH1cbiAgICB2YXIgc3VwcG9ydCA9IHN1cHBvcnRDaGVjayA/IHN1cHBvcnRDaGVjayhfZWxlKSA6IChfZ2V0Q29tcHV0ZWRTdHlsZSRjb24gPSBnZXRDb21wdXRlZFN0eWxlKF9lbGUpLmNvbnRlbnQpID09PSBudWxsIHx8IF9nZXRDb21wdXRlZFN0eWxlJGNvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2dldENvbXB1dGVkU3R5bGUkY29uLmluY2x1ZGVzKGNoZWNrQ29udGVudCk7XG4gICAgKF9lbGUkcGFyZW50Tm9kZSA9IF9lbGUucGFyZW50Tm9kZSkgPT09IG51bGwgfHwgX2VsZSRwYXJlbnROb2RlID09PSB2b2lkIDAgfHwgX2VsZSRwYXJlbnROb2RlLnJlbW92ZUNoaWxkKF9lbGUpO1xuICAgIHJlbW92ZUNTUyhyYW5kb21TZWxlY3RvcktleSk7XG4gICAgcmV0dXJuIHN1cHBvcnQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxudmFyIGNhbkxheWVyID0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRMYXllcigpIHtcbiAgaWYgKGNhbkxheWVyID09PSB1bmRlZmluZWQpIHtcbiAgICBjYW5MYXllciA9IHN1cHBvcnRTZWxlY3RvcihcIkBsYXllciBcIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgLlwiKS5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgY29udGVudDogXFxcIlwiKS5jb25jYXQoY2hlY2tDb250ZW50LCBcIlxcXCIhaW1wb3J0YW50OyB9IH1cIiksIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIGVsZS5jbGFzc05hbWUgPSByYW5kb21TZWxlY3RvcktleTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY2FuTGF5ZXI7XG59XG52YXIgY2FuV2hlcmUgPSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydFdoZXJlKCkge1xuICBpZiAoY2FuV2hlcmUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbldoZXJlID0gc3VwcG9ydFNlbGVjdG9yKFwiOndoZXJlKC5cIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiKSB7IGNvbnRlbnQ6IFxcXCJcIikuY29uY2F0KGNoZWNrQ29udGVudCwgXCJcXFwiIWltcG9ydGFudDsgfVwiKSwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgZWxlLmNsYXNzTmFtZSA9IHJhbmRvbVNlbGVjdG9yS2V5O1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjYW5XaGVyZTtcbn1cbnZhciBjYW5Mb2dpYyA9IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3J0TG9naWNQcm9wcygpIHtcbiAgaWYgKGNhbkxvZ2ljID09PSB1bmRlZmluZWQpIHtcbiAgICBjYW5Mb2dpYyA9IHN1cHBvcnRTZWxlY3RvcihcIi5cIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgaW5zZXQtYmxvY2s6IDkzcHggIWltcG9ydGFudDsgfVwiKSwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgZWxlLmNsYXNzTmFtZSA9IHJhbmRvbVNlbGVjdG9yS2V5O1xuICAgIH0sIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZSkuYm90dG9tID09PSAnOTNweCc7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGNhbkxvZ2ljO1xufVxuZXhwb3J0IHZhciBpc0NsaWVudFNpZGUgPSBjYW5Vc2VEb20oKTtcbmV4cG9ydCBmdW5jdGlvbiB1bml0KG51bSkge1xuICBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQobnVtLCBcInB4XCIpO1xuICB9XG4gIHJldHVybiBudW07XG59XG5leHBvcnQgZnVuY3Rpb24gdG9TdHlsZVN0cihzdHlsZSwgdG9rZW5LZXksIHN0eWxlSWQpIHtcbiAgdmFyIF9vYmplY3RTcHJlYWQyO1xuICB2YXIgY3VzdG9taXplQXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICB2YXIgcGxhaW4gPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IGZhbHNlO1xuICBpZiAocGxhaW4pIHtcbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cbiAgdmFyIGF0dHJzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBjdXN0b21pemVBdHRycyksIHt9LCAoX29iamVjdFNwcmVhZDIgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBBVFRSX1RPS0VOLCB0b2tlbktleSksIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgQVRUUl9NQVJLLCBzdHlsZUlkKSwgX29iamVjdFNwcmVhZDIpKTtcbiAgdmFyIGF0dHJTdHIgPSBPYmplY3Qua2V5cyhhdHRycykubWFwKGZ1bmN0aW9uIChhdHRyKSB7XG4gICAgdmFyIHZhbCA9IGF0dHJzW2F0dHJdO1xuICAgIHJldHVybiB2YWwgPyBcIlwiLmNvbmNhdChhdHRyLCBcIj1cXFwiXCIpLmNvbmNhdCh2YWwsIFwiXFxcIlwiKSA6IG51bGw7XG4gIH0pLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgIHJldHVybiB2O1xuICB9KS5qb2luKCcgJyk7XG4gIHJldHVybiBcIjxzdHlsZSBcIi5jb25jYXQoYXR0clN0ciwgXCI+XCIpLmNvbmNhdChzdHlsZSwgXCI8L3N0eWxlPlwiKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/util/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flattenToken: () => (/* binding */ flattenToken),\n/* harmony export */ isClientSide: () => (/* binding */ isClientSide),\n/* harmony export */ memoResult: () => (/* binding */ memoResult),\n/* harmony export */ supportLayer: () => (/* binding */ supportLayer),\n/* harmony export */ supportLogicProps: () => (/* binding */ supportLogicProps),\n/* harmony export */ supportWhere: () => (/* binding */ supportWhere),\n/* harmony export */ toStyleStr: () => (/* binding */ toStyleStr),\n/* harmony export */ token2key: () => (/* binding */ token2key),\n/* harmony export */ unit: () => (/* binding */ unit)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.browser.esm.js\");\n/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/Dom/canUseDom */ \"./node_modules/rc-util/es/Dom/canUseDom.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var _StyleContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../StyleContext */ \"./node_modules/@ant-design/cssinjs/es/StyleContext.js\");\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../theme */ \"./node_modules/@ant-design/cssinjs/es/theme/index.js\");\n\n\n\n\n\n\n\n\n\n// Create a cache for memo concat\n\nvar resultCache = new WeakMap();\nvar RESULT_VALUE = {};\nfunction memoResult(callback, deps) {\n var current = resultCache;\n for (var i = 0; i < deps.length; i += 1) {\n var dep = deps[i];\n if (!current.has(dep)) {\n current.set(dep, new WeakMap());\n }\n current = current.get(dep);\n }\n if (!current.has(RESULT_VALUE)) {\n current.set(RESULT_VALUE, callback());\n }\n return current.get(RESULT_VALUE);\n}\n\n// Create a cache here to avoid always loop generate\nvar flattenTokenCache = new WeakMap();\n\n/**\n * Flatten token to string, this will auto cache the result when token not change\n */\nfunction flattenToken(token) {\n var str = flattenTokenCache.get(token) || '';\n if (!str) {\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n if (value instanceof _theme__WEBPACK_IMPORTED_MODULE_7__.Theme) {\n str += value.id;\n } else if (value && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n\n // https://github.com/ant-design/ant-design/issues/48386\n // Should hash the string to avoid style tag name too long\n str = (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(str);\n\n // Put in cache\n flattenTokenCache.set(token, str);\n }\n return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nfunction token2key(token, salt) {\n return (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n if ((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__[\"default\"])()) {\n var _getComputedStyle$con, _ele$parentNode;\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__.updateCSS)(styleStr, randomSelectorKey);\n var _ele = document.createElement('div');\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 || handleElement(_ele);\n document.body.appendChild(_ele);\n if (true) {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 || _ele$parentNode.removeChild(_ele);\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_5__.removeCSS)(randomSelectorKey);\n return support;\n }\n return false;\n}\nvar canLayer = undefined;\nfunction supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nvar canWhere = undefined;\nfunction supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nvar canLogic = undefined;\nfunction supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n }, function (ele) {\n return getComputedStyle(ele).bottom === '93px';\n });\n }\n return canLogic;\n}\nvar isClientSide = (0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__[\"default\"])();\nfunction unit(num) {\n if (typeof num === 'number') {\n return \"\".concat(num, \"px\");\n }\n return num;\n}\nfunction toStyleStr(style, tokenKey, styleId) {\n var _objectSpread2;\n var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var plain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (plain) {\n return style;\n }\n var attrs = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, customizeAttrs), {}, (_objectSpread2 = {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_objectSpread2, _StyleContext__WEBPACK_IMPORTED_MODULE_6__.ATTR_TOKEN, tokenKey), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_objectSpread2, _StyleContext__WEBPACK_IMPORTED_MODULE_6__.ATTR_MARK, styleId), _objectSpread2));\n var attrStr = Object.keys(attrs).map(function (attr) {\n var val = attrs[attr];\n return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n }).filter(function (v) {\n return v;\n }).join(' ');\n return \"\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9lcy91dGlsL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXdFO0FBQ0g7QUFDYjtBQUN2QjtBQUNnQjtBQUNnQjtBQUNUO0FBQ3ZCOztBQUVqQzs7QUFFQTtBQUNBO0FBQ087QUFDUDtBQUNBLGtCQUFrQixpQkFBaUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQix5Q0FBSztBQUNoQztBQUNBLFFBQVEsa0JBQWtCLDZFQUFPO0FBQ2pDO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxVQUFVLHlEQUFJOztBQUVkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ087QUFDUCxTQUFTLHlEQUFJO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9FQUFTO0FBQ2Y7QUFDQSxJQUFJLG9FQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxvRUFBUztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0EsdUVBQXVFLGtDQUFrQyxxREFBcUQ7QUFDOUo7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0EseUVBQXlFLG1EQUFtRDtBQUM1SDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSxpRUFBaUUsK0JBQStCO0FBQ2hHO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNPLG1CQUFtQixvRUFBUztBQUM1QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLHFCQUFxQixzQkFBc0IsRUFBRSxxRkFBZSxpQkFBaUIscURBQVUsYUFBYSxxRkFBZSxpQkFBaUIsb0RBQVM7QUFDekw7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Nzc2luanMvZXMvdXRpbC9pbmRleC5qcz9iNjM4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IGhhc2ggZnJvbSAnQGVtb3Rpb24vaGFzaCc7XG5pbXBvcnQgY2FuVXNlRG9tIGZyb20gXCJyYy11dGlsL2VzL0RvbS9jYW5Vc2VEb21cIjtcbmltcG9ydCB7IHJlbW92ZUNTUywgdXBkYXRlQ1NTIH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2R5bmFtaWNDU1NcIjtcbmltcG9ydCB7IEFUVFJfTUFSSywgQVRUUl9UT0tFTiB9IGZyb20gXCIuLi9TdHlsZUNvbnRleHRcIjtcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4uL3RoZW1lXCI7XG5cbi8vIENyZWF0ZSBhIGNhY2hlIGZvciBtZW1vIGNvbmNhdFxuXG52YXIgcmVzdWx0Q2FjaGUgPSBuZXcgV2Vha01hcCgpO1xudmFyIFJFU1VMVF9WQUxVRSA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW9SZXN1bHQoY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGN1cnJlbnQgPSByZXN1bHRDYWNoZTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXBzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgdmFyIGRlcCA9IGRlcHNbaV07XG4gICAgaWYgKCFjdXJyZW50LmhhcyhkZXApKSB7XG4gICAgICBjdXJyZW50LnNldChkZXAsIG5ldyBXZWFrTWFwKCkpO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudC5nZXQoZGVwKTtcbiAgfVxuICBpZiAoIWN1cnJlbnQuaGFzKFJFU1VMVF9WQUxVRSkpIHtcbiAgICBjdXJyZW50LnNldChSRVNVTFRfVkFMVUUsIGNhbGxiYWNrKCkpO1xuICB9XG4gIHJldHVybiBjdXJyZW50LmdldChSRVNVTFRfVkFMVUUpO1xufVxuXG4vLyBDcmVhdGUgYSBjYWNoZSBoZXJlIHRvIGF2b2lkIGFsd2F5cyBsb29wIGdlbmVyYXRlXG52YXIgZmxhdHRlblRva2VuQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuXG4vKipcbiAqIEZsYXR0ZW4gdG9rZW4gdG8gc3RyaW5nLCB0aGlzIHdpbGwgYXV0byBjYWNoZSB0aGUgcmVzdWx0IHdoZW4gdG9rZW4gbm90IGNoYW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlblRva2VuKHRva2VuKSB7XG4gIHZhciBzdHIgPSBmbGF0dGVuVG9rZW5DYWNoZS5nZXQodG9rZW4pIHx8ICcnO1xuICBpZiAoIXN0cikge1xuICAgIE9iamVjdC5rZXlzKHRva2VuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHRva2VuW2tleV07XG4gICAgICBzdHIgKz0ga2V5O1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGhlbWUpIHtcbiAgICAgICAgc3RyICs9IHZhbHVlLmlkO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgc3RyICs9IGZsYXR0ZW5Ub2tlbih2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHIgKz0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy80ODM4NlxuICAgIC8vIFNob3VsZCBoYXNoIHRoZSBzdHJpbmcgdG8gYXZvaWQgc3R5bGUgdGFnIG5hbWUgdG9vIGxvbmdcbiAgICBzdHIgPSBoYXNoKHN0cik7XG5cbiAgICAvLyBQdXQgaW4gY2FjaGVcbiAgICBmbGF0dGVuVG9rZW5DYWNoZS5zZXQodG9rZW4sIHN0cik7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRlcml2YXRpdmUgdG9rZW4gdG8ga2V5IHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW4ya2V5KHRva2VuLCBzYWx0KSB7XG4gIHJldHVybiBoYXNoKFwiXCIuY29uY2F0KHNhbHQsIFwiX1wiKS5jb25jYXQoZmxhdHRlblRva2VuKHRva2VuKSkpO1xufVxudmFyIHJhbmRvbVNlbGVjdG9yS2V5ID0gXCJyYW5kb20tXCIuY29uY2F0KERhdGUubm93KCksIFwiLVwiKS5jb25jYXQoTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXFwuL2csICcnKTtcblxuLy8gTWFnaWMgYGNvbnRlbnRgIGZvciBkZXRlY3Qgc2VsZWN0b3Igc3VwcG9ydFxudmFyIGNoZWNrQ29udGVudCA9ICdfYkFtQm9PXyc7XG5mdW5jdGlvbiBzdXBwb3J0U2VsZWN0b3Ioc3R5bGVTdHIsIGhhbmRsZUVsZW1lbnQsIHN1cHBvcnRDaGVjaykge1xuICBpZiAoY2FuVXNlRG9tKCkpIHtcbiAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUkY29uLCBfZWxlJHBhcmVudE5vZGU7XG4gICAgdXBkYXRlQ1NTKHN0eWxlU3RyLCByYW5kb21TZWxlY3RvcktleSk7XG4gICAgdmFyIF9lbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBfZWxlLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICBfZWxlLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgX2VsZS5zdHlsZS50b3AgPSAnMCc7XG4gICAgaGFuZGxlRWxlbWVudCA9PT0gbnVsbCB8fCBoYW5kbGVFbGVtZW50ID09PSB2b2lkIDAgfHwgaGFuZGxlRWxlbWVudChfZWxlKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKF9lbGUpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBfZWxlLmlubmVySFRNTCA9ICdUZXN0JztcbiAgICAgIF9lbGUuc3R5bGUuekluZGV4ID0gJzk5OTk5OTknO1xuICAgIH1cbiAgICB2YXIgc3VwcG9ydCA9IHN1cHBvcnRDaGVjayA/IHN1cHBvcnRDaGVjayhfZWxlKSA6IChfZ2V0Q29tcHV0ZWRTdHlsZSRjb24gPSBnZXRDb21wdXRlZFN0eWxlKF9lbGUpLmNvbnRlbnQpID09PSBudWxsIHx8IF9nZXRDb21wdXRlZFN0eWxlJGNvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2dldENvbXB1dGVkU3R5bGUkY29uLmluY2x1ZGVzKGNoZWNrQ29udGVudCk7XG4gICAgKF9lbGUkcGFyZW50Tm9kZSA9IF9lbGUucGFyZW50Tm9kZSkgPT09IG51bGwgfHwgX2VsZSRwYXJlbnROb2RlID09PSB2b2lkIDAgfHwgX2VsZSRwYXJlbnROb2RlLnJlbW92ZUNoaWxkKF9lbGUpO1xuICAgIHJlbW92ZUNTUyhyYW5kb21TZWxlY3RvcktleSk7XG4gICAgcmV0dXJuIHN1cHBvcnQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxudmFyIGNhbkxheWVyID0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRMYXllcigpIHtcbiAgaWYgKGNhbkxheWVyID09PSB1bmRlZmluZWQpIHtcbiAgICBjYW5MYXllciA9IHN1cHBvcnRTZWxlY3RvcihcIkBsYXllciBcIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgLlwiKS5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgY29udGVudDogXFxcIlwiKS5jb25jYXQoY2hlY2tDb250ZW50LCBcIlxcXCIhaW1wb3J0YW50OyB9IH1cIiksIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIGVsZS5jbGFzc05hbWUgPSByYW5kb21TZWxlY3RvcktleTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY2FuTGF5ZXI7XG59XG52YXIgY2FuV2hlcmUgPSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydFdoZXJlKCkge1xuICBpZiAoY2FuV2hlcmUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbldoZXJlID0gc3VwcG9ydFNlbGVjdG9yKFwiOndoZXJlKC5cIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiKSB7IGNvbnRlbnQ6IFxcXCJcIikuY29uY2F0KGNoZWNrQ29udGVudCwgXCJcXFwiIWltcG9ydGFudDsgfVwiKSwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgZWxlLmNsYXNzTmFtZSA9IHJhbmRvbVNlbGVjdG9yS2V5O1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjYW5XaGVyZTtcbn1cbnZhciBjYW5Mb2dpYyA9IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3J0TG9naWNQcm9wcygpIHtcbiAgaWYgKGNhbkxvZ2ljID09PSB1bmRlZmluZWQpIHtcbiAgICBjYW5Mb2dpYyA9IHN1cHBvcnRTZWxlY3RvcihcIi5cIi5jb25jYXQocmFuZG9tU2VsZWN0b3JLZXksIFwiIHsgaW5zZXQtYmxvY2s6IDkzcHggIWltcG9ydGFudDsgfVwiKSwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgZWxlLmNsYXNzTmFtZSA9IHJhbmRvbVNlbGVjdG9yS2V5O1xuICAgIH0sIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZSkuYm90dG9tID09PSAnOTNweCc7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGNhbkxvZ2ljO1xufVxuZXhwb3J0IHZhciBpc0NsaWVudFNpZGUgPSBjYW5Vc2VEb20oKTtcbmV4cG9ydCBmdW5jdGlvbiB1bml0KG51bSkge1xuICBpZiAodHlwZW9mIG51bSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQobnVtLCBcInB4XCIpO1xuICB9XG4gIHJldHVybiBudW07XG59XG5leHBvcnQgZnVuY3Rpb24gdG9TdHlsZVN0cihzdHlsZSwgdG9rZW5LZXksIHN0eWxlSWQpIHtcbiAgdmFyIF9vYmplY3RTcHJlYWQyO1xuICB2YXIgY3VzdG9taXplQXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICB2YXIgcGxhaW4gPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IGZhbHNlO1xuICBpZiAocGxhaW4pIHtcbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cbiAgdmFyIGF0dHJzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBjdXN0b21pemVBdHRycyksIHt9LCAoX29iamVjdFNwcmVhZDIgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBBVFRSX1RPS0VOLCB0b2tlbktleSksIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgQVRUUl9NQVJLLCBzdHlsZUlkKSwgX29iamVjdFNwcmVhZDIpKTtcbiAgdmFyIGF0dHJTdHIgPSBPYmplY3Qua2V5cyhhdHRycykubWFwKGZ1bmN0aW9uIChhdHRyKSB7XG4gICAgdmFyIHZhbCA9IGF0dHJzW2F0dHJdO1xuICAgIHJldHVybiB2YWwgPyBcIlwiLmNvbmNhdChhdHRyLCBcIj1cXFwiXCIpLmNvbmNhdCh2YWwsIFwiXFxcIlwiKSA6IG51bGw7XG4gIH0pLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgIHJldHVybiB2O1xuICB9KS5qb2luKCcgJyk7XG4gIHJldHVybiBcIjxzdHlsZSBcIi5jb25jYXQoYXR0clN0ciwgXCI+XCIpLmNvbmNhdChzdHlsZSwgXCI8L3N0eWxlPlwiKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/es/util/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/fast-color/es/FastColor.js": +/*!*************************************************************!*\ + !*** ./node_modules/@ant-design/fast-color/es/FastColor.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 */ FastColor: () => (/* binding */ FastColor)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nclass FastColor {\n constructor(input) {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"isValid\", true);\n /**\n * Red, R in RGB\n */\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"r\", 0);\n /**\n * Green, G in RGB\n */\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"g\", 0);\n /**\n * Blue, B in RGB\n */\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"b\", 0);\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"a\", 1);\n // HSV privates\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_h\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_s\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_l\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_v\", void 0);\n // intermediate variables to calculate HSL/HSV\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_max\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_min\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"_brightness\", void 0);\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vZmFzdC1jb2xvci9lcy9GYXN0Q29sb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0U7QUFDeEU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixPQUFPO0FBQ3pCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUkscUZBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSxJQUFJLHFGQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLElBQUkscUZBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQjtBQUNBLElBQUkscUZBQWU7QUFDbkIsSUFBSSxxRkFBZTtBQUNuQixJQUFJLHFGQUFlO0FBQ25CLElBQUkscUZBQWU7QUFDbkI7QUFDQSxJQUFJLHFGQUFlO0FBQ25CLElBQUkscUZBQWU7QUFDbkIsSUFBSSxxRkFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsa0JBQWtCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixJQUFJO0FBQzFCO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFPLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ25GOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxPQUFPLEdBQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxPQUFPLFlBQVksT0FBTyxHQUFHLE9BQU8sR0FBRyxPQUFPO0FBQzlHO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Zhc3QtY29sb3IvZXMvRmFzdENvbG9yLmpzPzA1MWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmNvbnN0IHJvdW5kID0gTWF0aC5yb3VuZDtcblxuLyoqXG4gKiBTdXBwb3J0IGZvcm1hdCwgYWxwaGEgdW5pdCB3aWxsIGNoZWNrIHRoZSAlIG1hcms6XG4gKiAtIHJnYmEoMTAyLCAyMDQsIDI1NSwgLjUpICAgICAgLT4gWzEwMiwgMjA0LCAyNTUsIDAuNV1cbiAqIC0gcmdiKDEwMiAyMDQgMjU1IC8gLjUpICAgICAgICAtPiBbMTAyLCAyMDQsIDI1NSwgMC41XVxuICogLSByZ2IoMTAwJSwgNTAlLCAwJSAvIDUwJSkgICAgIC0+IFsyNTUsIDEyOCwgMCwgMC41XVxuICogLSBoc2woMjcwLCA2MCwgNDAsIC41KSAgICAgICAgIC0+IFsyNzAsIDYwLCA0MCwgMC41XVxuICogLSBoc2woMjcwZGVnIDYwJSA0MCUgLyA1MCUpICAgLT4gWzI3MCwgNjAsIDQwLCAwLjVdXG4gKlxuICogV2hlbiBgYmFzZWAgaXMgcHJvdmlkZWQsIHRoZSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgYmUgZGl2aWRlZCBieSBgYmFzZWAuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0Q29sb3JTdHIoc3RyLCBwYXJzZU51bSkge1xuICBjb25zdCBtYXRjaCA9IHN0clxuICAvLyBSZW1vdmUgc3RyIGJlZm9yZSBgKGBcbiAgLnJlcGxhY2UoL15bXihdKlxcKCguKikvLCAnJDEnKVxuICAvLyBSZW1vdmUgc3RyIGFmdGVyIGApYFxuICAucmVwbGFjZSgvXFwpLiovLCAnJykubWF0Y2goL1xcZCpcXC4/XFxkKyU/L2cpIHx8IFtdO1xuICBjb25zdCBudW1MaXN0ID0gbWF0Y2gubWFwKGl0ZW0gPT4gcGFyc2VGbG9hdChpdGVtKSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSArPSAxKSB7XG4gICAgbnVtTGlzdFtpXSA9IHBhcnNlTnVtKG51bUxpc3RbaV0gfHwgMCwgbWF0Y2hbaV0gfHwgJycsIGkpO1xuICB9XG5cbiAgLy8gRm9yIGFscGhhLiA1MCUgc2hvdWxkIGJlIDAuNVxuICBpZiAobWF0Y2hbM10pIHtcbiAgICBudW1MaXN0WzNdID0gbWF0Y2hbM10uaW5jbHVkZXMoJyUnKSA/IG51bUxpc3RbM10gLyAxMDAgOiBudW1MaXN0WzNdO1xuICB9IGVsc2Uge1xuICAgIC8vIEJ5IGRlZmF1bHQsIGFscGhhIGlzIDFcbiAgICBudW1MaXN0WzNdID0gMTtcbiAgfVxuICByZXR1cm4gbnVtTGlzdDtcbn1cbmNvbnN0IHBhcnNlSFNWb3JIU0wgPSAobnVtLCBfLCBpbmRleCkgPT4gaW5kZXggPT09IDAgPyBudW0gOiBudW0gLyAxMDA7XG5cbi8qKiByb3VuZCBhbmQgbGltaXQgbnVtYmVyIHRvIGludGVnZXIgYmV0d2VlbiAwLTI1NSAqL1xuZnVuY3Rpb24gbGltaXRSYW5nZSh2YWx1ZSwgbWF4KSB7XG4gIGNvbnN0IG1lcmdlZE1heCA9IG1heCB8fCAyNTU7XG4gIGlmICh2YWx1ZSA+IG1lcmdlZE1heCkge1xuICAgIHJldHVybiBtZXJnZWRNYXg7XG4gIH1cbiAgaWYgKHZhbHVlIDwgMCkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cbmV4cG9ydCBjbGFzcyBGYXN0Q29sb3Ige1xuICBjb25zdHJ1Y3RvcihpbnB1dCkge1xuICAgIC8qKlxuICAgICAqIEFsbCBGYXN0Q29sb3Igb2JqZWN0cyBhcmUgdmFsaWQuIFNvIGlzVmFsaWQgaXMgYWx3YXlzIHRydWUuIFRoaXMgcHJvcGVydHkgaXMga2VwdCB0byBiZSBjb21wYXRpYmxlIHdpdGggVGlueUNvbG9yLlxuICAgICAqL1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcImlzVmFsaWRcIiwgdHJ1ZSk7XG4gICAgLyoqXG4gICAgICogUmVkLCBSIGluIFJHQlxuICAgICAqL1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcInJcIiwgMCk7XG4gICAgLyoqXG4gICAgICogR3JlZW4sIEcgaW4gUkdCXG4gICAgICovXG4gICAgX2RlZmluZVByb3BlcnR5KHRoaXMsIFwiZ1wiLCAwKTtcbiAgICAvKipcbiAgICAgKiBCbHVlLCBCIGluIFJHQlxuICAgICAqL1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcImJcIiwgMCk7XG4gICAgLyoqXG4gICAgICogQWxwaGEvT3BhY2l0eSwgQSBpbiBSR0JBL0hTTEFcbiAgICAgKi9cbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJhXCIsIDEpO1xuICAgIC8vIEhTViBwcml2YXRlc1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIl9oXCIsIHZvaWQgMCk7XG4gICAgX2RlZmluZVByb3BlcnR5KHRoaXMsIFwiX3NcIiwgdm9pZCAwKTtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJfbFwiLCB2b2lkIDApO1xuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIl92XCIsIHZvaWQgMCk7XG4gICAgLy8gaW50ZXJtZWRpYXRlIHZhcmlhYmxlcyB0byBjYWxjdWxhdGUgSFNML0hTVlxuICAgIF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIl9tYXhcIiwgdm9pZCAwKTtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJfbWluXCIsIHZvaWQgMCk7XG4gICAgX2RlZmluZVByb3BlcnR5KHRoaXMsIFwiX2JyaWdodG5lc3NcIiwgdm9pZCAwKTtcbiAgICAvKipcbiAgICAgKiBBbHdheXMgY2hlY2sgMyBjaGFyIGluIHRoZSBvYmplY3QgdG8gZGV0ZXJtaW5lIHRoZSBmb3JtYXQuXG4gICAgICogV2Ugbm90IHVzZSBmdW5jdGlvbiBpbiBjaGVjayB0byBzYXZlIGJ1bmRsZSBzaXplLlxuICAgICAqIGUuZy4gJ3JnYicgLT4geyByOiAwLCBnOiAwLCBiOiAwIH0uXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hGb3JtYXQoc3RyKSB7XG4gICAgICByZXR1cm4gc3RyWzBdIGluIGlucHV0ICYmIHN0clsxXSBpbiBpbnB1dCAmJiBzdHJbMl0gaW4gaW5wdXQ7XG4gICAgfVxuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIC8vIERvIG5vdGhpbmcgc2luY2UgYWxyZWFkeSBpbml0aWFsaXplZFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdHJpbVN0ciA9IGlucHV0LnRyaW0oKTtcbiAgICAgIGZ1bmN0aW9uIG1hdGNoUHJlZml4KHByZWZpeCkge1xuICAgICAgICByZXR1cm4gdHJpbVN0ci5zdGFydHNXaXRoKHByZWZpeCk7XG4gICAgICB9XG4gICAgICBpZiAoL14jP1tBLUZcXGRdezMsOH0kL2kudGVzdCh0cmltU3RyKSkge1xuICAgICAgICB0aGlzLmZyb21IZXhTdHJpbmcodHJpbVN0cik7XG4gICAgICB9IGVsc2UgaWYgKG1hdGNoUHJlZml4KCdyZ2InKSkge1xuICAgICAgICB0aGlzLmZyb21SZ2JTdHJpbmcodHJpbVN0cik7XG4gICAgICB9IGVsc2UgaWYgKG1hdGNoUHJlZml4KCdoc2wnKSkge1xuICAgICAgICB0aGlzLmZyb21Ic2xTdHJpbmcodHJpbVN0cik7XG4gICAgICB9IGVsc2UgaWYgKG1hdGNoUHJlZml4KCdoc3YnKSB8fCBtYXRjaFByZWZpeCgnaHNiJykpIHtcbiAgICAgICAgdGhpcy5mcm9tSHN2U3RyaW5nKHRyaW1TdHIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBGYXN0Q29sb3IpIHtcbiAgICAgIHRoaXMuciA9IGlucHV0LnI7XG4gICAgICB0aGlzLmcgPSBpbnB1dC5nO1xuICAgICAgdGhpcy5iID0gaW5wdXQuYjtcbiAgICAgIHRoaXMuYSA9IGlucHV0LmE7XG4gICAgICB0aGlzLl9oID0gaW5wdXQuX2g7XG4gICAgICB0aGlzLl9zID0gaW5wdXQuX3M7XG4gICAgICB0aGlzLl9sID0gaW5wdXQuX2w7XG4gICAgICB0aGlzLl92ID0gaW5wdXQuX3Y7XG4gICAgfSBlbHNlIGlmIChtYXRjaEZvcm1hdCgncmdiJykpIHtcbiAgICAgIHRoaXMuciA9IGxpbWl0UmFuZ2UoaW5wdXQucik7XG4gICAgICB0aGlzLmcgPSBsaW1pdFJhbmdlKGlucHV0LmcpO1xuICAgICAgdGhpcy5iID0gbGltaXRSYW5nZShpbnB1dC5iKTtcbiAgICAgIHRoaXMuYSA9IHR5cGVvZiBpbnB1dC5hID09PSAnbnVtYmVyJyA/IGxpbWl0UmFuZ2UoaW5wdXQuYSwgMSkgOiAxO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hGb3JtYXQoJ2hzbCcpKSB7XG4gICAgICB0aGlzLmZyb21Ic2woaW5wdXQpO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hGb3JtYXQoJ2hzdicpKSB7XG4gICAgICB0aGlzLmZyb21Ic3YoaW5wdXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0BhbnQtZGVzaWduL2Zhc3QtY29sb3I6IHVuc3VwcG9ydGVkIGlucHV0ICcgKyBKU09OLnN0cmluZ2lmeShpbnB1dCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IFNldHRlciA9PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHNldFIodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5fc2MoJ3InLCB2YWx1ZSk7XG4gIH1cbiAgc2V0Ryh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLl9zYygnZycsIHZhbHVlKTtcbiAgfVxuICBzZXRCKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NjKCdiJywgdmFsdWUpO1xuICB9XG4gIHNldEEodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5fc2MoJ2EnLCB2YWx1ZSwgMSk7XG4gIH1cbiAgc2V0SHVlKHZhbHVlKSB7XG4gICAgY29uc3QgaHN2ID0gdGhpcy50b0hzdigpO1xuICAgIGhzdi5oID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuX2MoaHN2KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IEdldHRlciA9PT09PT09PT09PT09PT09PT09PT09PVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcGVyY2VpdmVkIGx1bWluYW5jZSBvZiBhIGNvbG9yLCBmcm9tIDAtMS5cbiAgICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICAqL1xuICBnZXRMdW1pbmFuY2UoKSB7XG4gICAgZnVuY3Rpb24gYWRqdXN0R2FtbWEocmF3KSB7XG4gICAgICBjb25zdCB2YWwgPSByYXcgLyAyNTU7XG4gICAgICByZXR1cm4gdmFsIDw9IDAuMDM5MjggPyB2YWwgLyAxMi45MiA6IE1hdGgucG93KCh2YWwgKyAwLjA1NSkgLyAxLjA1NSwgMi40KTtcbiAgICB9XG4gICAgY29uc3QgUiA9IGFkanVzdEdhbW1hKHRoaXMucik7XG4gICAgY29uc3QgRyA9IGFkanVzdEdhbW1hKHRoaXMuZyk7XG4gICAgY29uc3QgQiA9IGFkanVzdEdhbW1hKHRoaXMuYik7XG4gICAgcmV0dXJuIDAuMjEyNiAqIFIgKyAwLjcxNTIgKiBHICsgMC4wNzIyICogQjtcbiAgfVxuICBnZXRIdWUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLl9oID09PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLmdldE1heCgpIC0gdGhpcy5nZXRNaW4oKTtcbiAgICAgIGlmIChkZWx0YSA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ggPSByb3VuZCg2MCAqICh0aGlzLnIgPT09IHRoaXMuZ2V0TWF4KCkgPyAodGhpcy5nIC0gdGhpcy5iKSAvIGRlbHRhICsgKHRoaXMuZyA8IHRoaXMuYiA/IDYgOiAwKSA6IHRoaXMuZyA9PT0gdGhpcy5nZXRNYXgoKSA/ICh0aGlzLmIgLSB0aGlzLnIpIC8gZGVsdGEgKyAyIDogKHRoaXMuciAtIHRoaXMuZykgLyBkZWx0YSArIDQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2g7XG4gIH1cbiAgZ2V0U2F0dXJhdGlvbigpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBkZWx0YSA9IHRoaXMuZ2V0TWF4KCkgLSB0aGlzLmdldE1pbigpO1xuICAgICAgaWYgKGRlbHRhID09PSAwKSB7XG4gICAgICAgIHRoaXMuX3MgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcyA9IGRlbHRhIC8gdGhpcy5nZXRNYXgoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3M7XG4gIH1cbiAgZ2V0TGlnaHRuZXNzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX2wgPSAodGhpcy5nZXRNYXgoKSArIHRoaXMuZ2V0TWluKCkpIC8gNTEwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbDtcbiAgfVxuICBnZXRWYWx1ZSgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3YgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLl92ID0gdGhpcy5nZXRNYXgoKSAvIDI1NTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Y7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcGVyY2VpdmVkIGJyaWdodG5lc3Mgb2YgdGhlIGNvbG9yLCBmcm9tIDAtMjU1LlxuICAgKiBOb3RlOiB0aGlzIGlzIG5vdCB0aGUgYiBvZiBIU0JcbiAgICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG4gICAqL1xuICBnZXRCcmlnaHRuZXNzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fYnJpZ2h0bmVzcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX2JyaWdodG5lc3MgPSAodGhpcy5yICogMjk5ICsgdGhpcy5nICogNTg3ICsgdGhpcy5iICogMTE0KSAvIDEwMDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9icmlnaHRuZXNzO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IEZ1bmMgPT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGFya2VuKGFtb3VudCA9IDEwKSB7XG4gICAgY29uc3QgaCA9IHRoaXMuZ2V0SHVlKCk7XG4gICAgY29uc3QgcyA9IHRoaXMuZ2V0U2F0dXJhdGlvbigpO1xuICAgIGxldCBsID0gdGhpcy5nZXRMaWdodG5lc3MoKSAtIGFtb3VudCAvIDEwMDtcbiAgICBpZiAobCA8IDApIHtcbiAgICAgIGwgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYyh7XG4gICAgICBoLFxuICAgICAgcyxcbiAgICAgIGwsXG4gICAgICBhOiB0aGlzLmFcbiAgICB9KTtcbiAgfVxuICBsaWdodGVuKGFtb3VudCA9IDEwKSB7XG4gICAgY29uc3QgaCA9IHRoaXMuZ2V0SHVlKCk7XG4gICAgY29uc3QgcyA9IHRoaXMuZ2V0U2F0dXJhdGlvbigpO1xuICAgIGxldCBsID0gdGhpcy5nZXRMaWdodG5lc3MoKSArIGFtb3VudCAvIDEwMDtcbiAgICBpZiAobCA+IDEpIHtcbiAgICAgIGwgPSAxO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYyh7XG4gICAgICBoLFxuICAgICAgcyxcbiAgICAgIGwsXG4gICAgICBhOiB0aGlzLmFcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNaXggdGhlIGN1cnJlbnQgY29sb3IgYSBnaXZlbiBhbW91bnQgd2l0aCBhbm90aGVyIGNvbG9yLCBmcm9tIDAgdG8gMTAwLlxuICAgKiAwIG1lYW5zIG5vIG1peGluZyAocmV0dXJuIGN1cnJlbnQgY29sb3IpLlxuICAgKi9cbiAgbWl4KGlucHV0LCBhbW91bnQgPSA1MCkge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5fYyhpbnB1dCk7XG4gICAgY29uc3QgcCA9IGFtb3VudCAvIDEwMDtcbiAgICBjb25zdCBjYWxjID0ga2V5ID0+IChjb2xvcltrZXldIC0gdGhpc1trZXldKSAqIHAgKyB0aGlzW2tleV07XG4gICAgY29uc3QgcmdiYSA9IHtcbiAgICAgIHI6IHJvdW5kKGNhbGMoJ3InKSksXG4gICAgICBnOiByb3VuZChjYWxjKCdnJykpLFxuICAgICAgYjogcm91bmQoY2FsYygnYicpKSxcbiAgICAgIGE6IHJvdW5kKGNhbGMoJ2EnKSAqIDEwMCkgLyAxMDBcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLl9jKHJnYmEpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1peCB0aGUgY29sb3Igd2l0aCBwdXJlIHdoaXRlLCBmcm9tIDAgdG8gMTAwLlxuICAgKiBQcm92aWRpbmcgMCB3aWxsIGRvIG5vdGhpbmcsIHByb3ZpZGluZyAxMDAgd2lsbCBhbHdheXMgcmV0dXJuIHdoaXRlLlxuICAgKi9cbiAgdGludChhbW91bnQgPSAxMCkge1xuICAgIHJldHVybiB0aGlzLm1peCh7XG4gICAgICByOiAyNTUsXG4gICAgICBnOiAyNTUsXG4gICAgICBiOiAyNTUsXG4gICAgICBhOiAxXG4gICAgfSwgYW1vdW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNaXggdGhlIGNvbG9yIHdpdGggcHVyZSBibGFjaywgZnJvbSAwIHRvIDEwMC5cbiAgICogUHJvdmlkaW5nIDAgd2lsbCBkbyBub3RoaW5nLCBwcm92aWRpbmcgMTAwIHdpbGwgYWx3YXlzIHJldHVybiBibGFjay5cbiAgICovXG4gIHNoYWRlKGFtb3VudCA9IDEwKSB7XG4gICAgcmV0dXJuIHRoaXMubWl4KHtcbiAgICAgIHI6IDAsXG4gICAgICBnOiAwLFxuICAgICAgYjogMCxcbiAgICAgIGE6IDFcbiAgICB9LCBhbW91bnQpO1xuICB9XG4gIG9uQmFja2dyb3VuZChiYWNrZ3JvdW5kKSB7XG4gICAgY29uc3QgYmcgPSB0aGlzLl9jKGJhY2tncm91bmQpO1xuICAgIGNvbnN0IGFscGhhID0gdGhpcy5hICsgYmcuYSAqICgxIC0gdGhpcy5hKTtcbiAgICBjb25zdCBjYWxjID0ga2V5ID0+IHtcbiAgICAgIHJldHVybiByb3VuZCgodGhpc1trZXldICogdGhpcy5hICsgYmdba2V5XSAqIGJnLmEgKiAoMSAtIHRoaXMuYSkpIC8gYWxwaGEpO1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuX2Moe1xuICAgICAgcjogY2FsYygncicpLFxuICAgICAgZzogY2FsYygnZycpLFxuICAgICAgYjogY2FsYygnYicpLFxuICAgICAgYTogYWxwaGFcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IFN0YXR1cyA9PT09PT09PT09PT09PT09PT09PT09PVxuICBpc0RhcmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpIDwgMTI4O1xuICB9XG4gIGlzTGlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpID49IDEyODtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBNSVNDID09PT09PT09PT09PT09PT09PT09PT09PVxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yID09PSBvdGhlci5yICYmIHRoaXMuZyA9PT0gb3RoZXIuZyAmJiB0aGlzLmIgPT09IG90aGVyLmIgJiYgdGhpcy5hID09PSBvdGhlci5hO1xuICB9XG4gIGNsb25lKCkge1xuICAgIHJldHVybiB0aGlzLl9jKHRoaXMpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gRm9ybWF0ID09PT09PT09PT09PT09PT09PT09PT09XG4gIHRvSGV4U3RyaW5nKCkge1xuICAgIGxldCBoZXggPSAnIyc7XG4gICAgY29uc3QgckhleCA9ICh0aGlzLnIgfHwgMCkudG9TdHJpbmcoMTYpO1xuICAgIGhleCArPSBySGV4Lmxlbmd0aCA9PT0gMiA/IHJIZXggOiAnMCcgKyBySGV4O1xuICAgIGNvbnN0IGdIZXggPSAodGhpcy5nIHx8IDApLnRvU3RyaW5nKDE2KTtcbiAgICBoZXggKz0gZ0hleC5sZW5ndGggPT09IDIgPyBnSGV4IDogJzAnICsgZ0hleDtcbiAgICBjb25zdCBiSGV4ID0gKHRoaXMuYiB8fCAwKS50b1N0cmluZygxNik7XG4gICAgaGV4ICs9IGJIZXgubGVuZ3RoID09PSAyID8gYkhleCA6ICcwJyArIGJIZXg7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmEgPT09ICdudW1iZXInICYmIHRoaXMuYSA+PSAwICYmIHRoaXMuYSA8IDEpIHtcbiAgICAgIGNvbnN0IGFIZXggPSByb3VuZCh0aGlzLmEgKiAyNTUpLnRvU3RyaW5nKDE2KTtcbiAgICAgIGhleCArPSBhSGV4Lmxlbmd0aCA9PT0gMiA/IGFIZXggOiAnMCcgKyBhSGV4O1xuICAgIH1cbiAgICByZXR1cm4gaGV4O1xuICB9XG5cbiAgLyoqIENTUyBzdXBwb3J0IGNvbG9yIHBhdHRlcm4gKi9cbiAgdG9Ic2woKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGg6IHRoaXMuZ2V0SHVlKCksXG4gICAgICBzOiB0aGlzLmdldFNhdHVyYXRpb24oKSxcbiAgICAgIGw6IHRoaXMuZ2V0TGlnaHRuZXNzKCksXG4gICAgICBhOiB0aGlzLmFcbiAgICB9O1xuICB9XG5cbiAgLyoqIENTUyBzdXBwb3J0IGNvbG9yIHBhdHRlcm4gKi9cbiAgdG9Ic2xTdHJpbmcoKSB7XG4gICAgY29uc3QgaCA9IHRoaXMuZ2V0SHVlKCk7XG4gICAgY29uc3QgcyA9IHJvdW5kKHRoaXMuZ2V0U2F0dXJhdGlvbigpICogMTAwKTtcbiAgICBjb25zdCBsID0gcm91bmQodGhpcy5nZXRMaWdodG5lc3MoKSAqIDEwMCk7XG4gICAgcmV0dXJuIHRoaXMuYSAhPT0gMSA/IGBoc2xhKCR7aH0sJHtzfSUsJHtsfSUsJHt0aGlzLmF9KWAgOiBgaHNsKCR7aH0sJHtzfSUsJHtsfSUpYDtcbiAgfVxuXG4gIC8qKiBTYW1lIGFzIHRvSHNiICovXG4gIHRvSHN2KCkge1xuICAgIHJldHVybiB7XG4gICAgICBoOiB0aGlzLmdldEh1ZSgpLFxuICAgICAgczogdGhpcy5nZXRTYXR1cmF0aW9uKCksXG4gICAgICB2OiB0aGlzLmdldFZhbHVlKCksXG4gICAgICBhOiB0aGlzLmFcbiAgICB9O1xuICB9XG4gIHRvUmdiKCkge1xuICAgIHJldHVybiB7XG4gICAgICByOiB0aGlzLnIsXG4gICAgICBnOiB0aGlzLmcsXG4gICAgICBiOiB0aGlzLmIsXG4gICAgICBhOiB0aGlzLmFcbiAgICB9O1xuICB9XG4gIHRvUmdiU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmEgIT09IDEgPyBgcmdiYSgke3RoaXMucn0sJHt0aGlzLmd9LCR7dGhpcy5ifSwke3RoaXMuYX0pYCA6IGByZ2IoJHt0aGlzLnJ9LCR7dGhpcy5nfSwke3RoaXMuYn0pYDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy50b1JnYlN0cmluZygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBQcml2YXRlcyA9PT09PT09PT09PT09PT09PT09PT09XG4gIC8qKiBSZXR1cm4gYSBuZXcgRmFzdENvbG9yIG9iamVjdCB3aXRoIG9uZSBjaGFubmVsIGNoYW5nZWQgKi9cbiAgX3NjKHJnYiwgdmFsdWUsIG1heCkge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lW3JnYl0gPSBsaW1pdFJhbmdlKHZhbHVlLCBtYXgpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuICBfYyhpbnB1dCkge1xuICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihpbnB1dCk7XG4gIH1cbiAgZ2V0TWF4KCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5fbWF4ID0gTWF0aC5tYXgodGhpcy5yLCB0aGlzLmcsIHRoaXMuYik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cbiAgZ2V0TWluKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fbWluID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5fbWluID0gTWF0aC5taW4odGhpcy5yLCB0aGlzLmcsIHRoaXMuYik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgZnJvbUhleFN0cmluZyh0cmltU3RyKSB7XG4gICAgY29uc3Qgd2l0aG91dFByZWZpeCA9IHRyaW1TdHIucmVwbGFjZSgnIycsICcnKTtcbiAgICBmdW5jdGlvbiBjb25uZWN0TnVtKGluZGV4MSwgaW5kZXgyKSB7XG4gICAgICByZXR1cm4gcGFyc2VJbnQod2l0aG91dFByZWZpeFtpbmRleDFdICsgd2l0aG91dFByZWZpeFtpbmRleDIgfHwgaW5kZXgxXSwgMTYpO1xuICAgIH1cbiAgICBpZiAod2l0aG91dFByZWZpeC5sZW5ndGggPCA2KSB7XG4gICAgICAvLyAjcmdiIG9yICNyZ2JhXG4gICAgICB0aGlzLnIgPSBjb25uZWN0TnVtKDApO1xuICAgICAgdGhpcy5nID0gY29ubmVjdE51bSgxKTtcbiAgICAgIHRoaXMuYiA9IGNvbm5lY3ROdW0oMik7XG4gICAgICB0aGlzLmEgPSB3aXRob3V0UHJlZml4WzNdID8gY29ubmVjdE51bSgzKSAvIDI1NSA6IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vICNycmdnYmIgb3IgI3JyZ2diYmFhXG4gICAgICB0aGlzLnIgPSBjb25uZWN0TnVtKDAsIDEpO1xuICAgICAgdGhpcy5nID0gY29ubmVjdE51bSgyLCAzKTtcbiAgICAgIHRoaXMuYiA9IGNvbm5lY3ROdW0oNCwgNSk7XG4gICAgICB0aGlzLmEgPSB3aXRob3V0UHJlZml4WzZdID8gY29ubmVjdE51bSg2LCA3KSAvIDI1NSA6IDE7XG4gICAgfVxuICB9XG4gIGZyb21Ic2woe1xuICAgIGgsXG4gICAgcyxcbiAgICBsLFxuICAgIGFcbiAgfSkge1xuICAgIHRoaXMuX2ggPSBoICUgMzYwO1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX2wgPSBsO1xuICAgIHRoaXMuYSA9IHR5cGVvZiBhID09PSAnbnVtYmVyJyA/IGEgOiAxO1xuICAgIGlmIChzIDw9IDApIHtcbiAgICAgIGNvbnN0IHJnYiA9IHJvdW5kKGwgKiAyNTUpO1xuICAgICAgdGhpcy5yID0gcmdiO1xuICAgICAgdGhpcy5nID0gcmdiO1xuICAgICAgdGhpcy5iID0gcmdiO1xuICAgIH1cbiAgICBsZXQgciA9IDAsXG4gICAgICBnID0gMCxcbiAgICAgIGIgPSAwO1xuICAgIGNvbnN0IGh1ZVByaW1lID0gaCAvIDYwO1xuICAgIGNvbnN0IGNocm9tYSA9ICgxIC0gTWF0aC5hYnMoMiAqIGwgLSAxKSkgKiBzO1xuICAgIGNvbnN0IHNlY29uZENvbXBvbmVudCA9IGNocm9tYSAqICgxIC0gTWF0aC5hYnMoaHVlUHJpbWUgJSAyIC0gMSkpO1xuICAgIGlmIChodWVQcmltZSA+PSAwICYmIGh1ZVByaW1lIDwgMSkge1xuICAgICAgciA9IGNocm9tYTtcbiAgICAgIGcgPSBzZWNvbmRDb21wb25lbnQ7XG4gICAgfSBlbHNlIGlmIChodWVQcmltZSA+PSAxICYmIGh1ZVByaW1lIDwgMikge1xuICAgICAgciA9IHNlY29uZENvbXBvbmVudDtcbiAgICAgIGcgPSBjaHJvbWE7XG4gICAgfSBlbHNlIGlmIChodWVQcmltZSA+PSAyICYmIGh1ZVByaW1lIDwgMykge1xuICAgICAgZyA9IGNocm9tYTtcbiAgICAgIGIgPSBzZWNvbmRDb21wb25lbnQ7XG4gICAgfSBlbHNlIGlmIChodWVQcmltZSA+PSAzICYmIGh1ZVByaW1lIDwgNCkge1xuICAgICAgZyA9IHNlY29uZENvbXBvbmVudDtcbiAgICAgIGIgPSBjaHJvbWE7XG4gICAgfSBlbHNlIGlmIChodWVQcmltZSA+PSA0ICYmIGh1ZVByaW1lIDwgNSkge1xuICAgICAgciA9IHNlY29uZENvbXBvbmVudDtcbiAgICAgIGIgPSBjaHJvbWE7XG4gICAgfSBlbHNlIGlmIChodWVQcmltZSA+PSA1ICYmIGh1ZVByaW1lIDwgNikge1xuICAgICAgciA9IGNocm9tYTtcbiAgICAgIGIgPSBzZWNvbmRDb21wb25lbnQ7XG4gICAgfVxuICAgIGNvbnN0IGxpZ2h0bmVzc01vZGlmaWNhdGlvbiA9IGwgLSBjaHJvbWEgLyAyO1xuICAgIHRoaXMuciA9IHJvdW5kKChyICsgbGlnaHRuZXNzTW9kaWZpY2F0aW9uKSAqIDI1NSk7XG4gICAgdGhpcy5nID0gcm91bmQoKGcgKyBsaWdodG5lc3NNb2RpZmljYXRpb24pICogMjU1KTtcbiAgICB0aGlzLmIgPSByb3VuZCgoYiArIGxpZ2h0bmVzc01vZGlmaWNhdGlvbikgKiAyNTUpO1xuICB9XG4gIGZyb21Ic3Yoe1xuICAgIGgsXG4gICAgcyxcbiAgICB2LFxuICAgIGFcbiAgfSkge1xuICAgIHRoaXMuX2ggPSBoICUgMzYwO1xuICAgIHRoaXMuX3MgPSBzO1xuICAgIHRoaXMuX3YgPSB2O1xuICAgIHRoaXMuYSA9IHR5cGVvZiBhID09PSAnbnVtYmVyJyA/IGEgOiAxO1xuICAgIGNvbnN0IHZ2ID0gcm91bmQodiAqIDI1NSk7XG4gICAgdGhpcy5yID0gdnY7XG4gICAgdGhpcy5nID0gdnY7XG4gICAgdGhpcy5iID0gdnY7XG4gICAgaWYgKHMgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBoaCA9IGggLyA2MDtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihoaCk7XG4gICAgY29uc3QgZmYgPSBoaCAtIGk7XG4gICAgY29uc3QgcCA9IHJvdW5kKHYgKiAoMS4wIC0gcykgKiAyNTUpO1xuICAgIGNvbnN0IHEgPSByb3VuZCh2ICogKDEuMCAtIHMgKiBmZikgKiAyNTUpO1xuICAgIGNvbnN0IHQgPSByb3VuZCh2ICogKDEuMCAtIHMgKiAoMS4wIC0gZmYpKSAqIDI1NSk7XG4gICAgc3dpdGNoIChpKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMuZyA9IHQ7XG4gICAgICAgIHRoaXMuYiA9IHA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxOlxuICAgICAgICB0aGlzLnIgPSBxO1xuICAgICAgICB0aGlzLmIgPSBwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5yID0gcDtcbiAgICAgICAgdGhpcy5iID0gdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHRoaXMuciA9IHA7XG4gICAgICAgIHRoaXMuZyA9IHE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0OlxuICAgICAgICB0aGlzLnIgPSB0O1xuICAgICAgICB0aGlzLmcgPSBwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZyA9IHA7XG4gICAgICAgIHRoaXMuYiA9IHE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBmcm9tSHN2U3RyaW5nKHRyaW1TdHIpIHtcbiAgICBjb25zdCBjZWxscyA9IHNwbGl0Q29sb3JTdHIodHJpbVN0ciwgcGFyc2VIU1ZvckhTTCk7XG4gICAgdGhpcy5mcm9tSHN2KHtcbiAgICAgIGg6IGNlbGxzWzBdLFxuICAgICAgczogY2VsbHNbMV0sXG4gICAgICB2OiBjZWxsc1syXSxcbiAgICAgIGE6IGNlbGxzWzNdXG4gICAgfSk7XG4gIH1cbiAgZnJvbUhzbFN0cmluZyh0cmltU3RyKSB7XG4gICAgY29uc3QgY2VsbHMgPSBzcGxpdENvbG9yU3RyKHRyaW1TdHIsIHBhcnNlSFNWb3JIU0wpO1xuICAgIHRoaXMuZnJvbUhzbCh7XG4gICAgICBoOiBjZWxsc1swXSxcbiAgICAgIHM6IGNlbGxzWzFdLFxuICAgICAgbDogY2VsbHNbMl0sXG4gICAgICBhOiBjZWxsc1szXVxuICAgIH0pO1xuICB9XG4gIGZyb21SZ2JTdHJpbmcodHJpbVN0cikge1xuICAgIGNvbnN0IGNlbGxzID0gc3BsaXRDb2xvclN0cih0cmltU3RyLCAobnVtLCB0eHQpID0+XG4gICAgLy8gQ29udmVydCBwZXJjZW50YWdlIHRvIG51bWJlci4gZS5nLiA1MCUgLT4gMTI4XG4gICAgdHh0LmluY2x1ZGVzKCclJykgPyByb3VuZChudW0gLyAxMDAgKiAyNTUpIDogbnVtKTtcbiAgICB0aGlzLnIgPSBjZWxsc1swXTtcbiAgICB0aGlzLmcgPSBjZWxsc1sxXTtcbiAgICB0aGlzLmIgPSBjZWxsc1syXTtcbiAgICB0aGlzLmEgPSBjZWxsc1szXTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/fast-color/es/FastColor.js\n"); + +/***/ }), + +/***/ "./node_modules/@ant-design/fast-color/es/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/@ant-design/fast-color/es/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 */ FastColor: () => (/* reexport safe */ _FastColor__WEBPACK_IMPORTED_MODULE_0__.FastColor)\n/* harmony export */ });\n/* harmony import */ var _FastColor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FastColor */ \"./node_modules/@ant-design/fast-color/es/FastColor.js\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ \"./node_modules/@ant-design/fast-color/es/types.js\");\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vZmFzdC1jb2xvci9lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2Zhc3QtY29sb3IvZXMvaW5kZXguanM/MWU0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9GYXN0Q29sb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/fast-color/es/index.js\n"); /***/ }), -/***/ "./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js ***! - \******************************************************************************************************/ +/***/ "./node_modules/@ant-design/fast-color/es/types.js": +/*!*********************************************************!*\ + !*** ./node_modules/@ant-design/fast-color/es/types.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 */ });\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (unitlessKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC91bml0bGVzcy5icm93c2VyLmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY3NzaW5qcy9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC91bml0bGVzcy5icm93c2VyLmVzbS5qcz9hMTRhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB1bml0bGVzc0tleXMgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICB0YWJTaXplOiAxLFxuICB3aWRvd3M6IDEsXG4gIHpJbmRleDogMSxcbiAgem9vbTogMSxcbiAgV2Via2l0TGluZUNsYW1wOiAxLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiAxLFxuICBmbG9vZE9wYWNpdHk6IDEsXG4gIHN0b3BPcGFjaXR5OiAxLFxuICBzdHJva2VEYXNoYXJyYXk6IDEsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IDEsXG4gIHN0cm9rZU1pdGVybGltaXQ6IDEsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdpZHRoOiAxXG59O1xuXG5leHBvcnQgZGVmYXVsdCB1bml0bGVzc0tleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js\n"); +__webpack_require__.r(__webpack_exports__); + /***/ }), @@ -665,7 +898,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/ref */ \"./node_modules/rc-util/es/ref.js\");\n/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Context */ \"./node_modules/@ant-design/icons/es/components/Context.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ \"./node_modules/@ant-design/icons/es/utils.js\");\n\n\n\n\nvar _excluded = [\"className\", \"component\", \"viewBox\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"children\"];\n// Seems this is used for iconFont\n\n\n\n\n\nvar Icon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.forwardRef(function (props, ref) {\n var className = props.className,\n Component = props.component,\n viewBox = props.viewBox,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n children = props.children,\n restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(props, _excluded);\n var iconRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef();\n var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__.useComposeRef)(iconRef, ref);\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.warning)(Boolean(Component || children), 'Should have `component` prop or `children`.');\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.useInsertStyles)(iconRef);\n var _React$useContext = react__WEBPACK_IMPORTED_MODULE_4__.useContext(_Context__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classnames__WEBPACK_IMPORTED_MODULE_5___default()(rootClassName, prefixCls, className);\n var svgClassString = classnames__WEBPACK_IMPORTED_MODULE_5___default()((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, \"\".concat(prefixCls, \"-spin\"), !!spin));\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var innerSvgProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, _utils__WEBPACK_IMPORTED_MODULE_7__.svgBaseProps), {}, {\n className: svgClassString,\n style: svgStyle,\n viewBox: viewBox\n });\n if (!viewBox) {\n delete innerSvgProps.viewBox;\n }\n\n // component > children\n var renderInnerNode = function renderInnerNode() {\n if (Component) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(Component, innerSvgProps, children);\n }\n if (children) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.warning)(Boolean(viewBox) || react__WEBPACK_IMPORTED_MODULE_4__.Children.count(children) === 1 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.isValidElement(children) && react__WEBPACK_IMPORTED_MODULE_4__.Children.only(children).type === 'use', 'Make sure that you provide correct `viewBox`' + ' prop (default `0 0 1024 1024`) to the icon.');\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(\"svg\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, innerSvgProps, {\n viewBox: viewBox\n }), children);\n }\n return null;\n };\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(\"span\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n role: \"img\"\n }, restProps, {\n ref: mergedRef,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), renderInnerNode());\n});\nIcon.displayName = 'AntdIcon';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Icon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvY29tcG9uZW50cy9JY29uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ1c7QUFDRztBQUNrQjtBQUMxRjtBQUNBO0FBQytCO0FBQ0s7QUFDVztBQUNmO0FBQ2tDO0FBQ2xFLHdCQUF3Qiw2Q0FBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw4RkFBd0I7QUFDeEMsZ0JBQWdCLHlDQUFZO0FBQzVCLGtCQUFrQiw2REFBYTtBQUMvQixFQUFFLCtDQUFPO0FBQ1QsRUFBRSx1REFBZTtBQUNqQiwwQkFBMEIsNkNBQWdCLENBQUMsZ0RBQU87QUFDbEQ7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlEQUFVO0FBQzlCLHVCQUF1QixpREFBVSxDQUFDLHFGQUFlLEdBQUc7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLHNCQUFzQixvRkFBYSxDQUFDLG9GQUFhLEdBQUcsRUFBRSxnREFBWSxLQUFLO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdEQUFtQjtBQUM3QztBQUNBO0FBQ0EsTUFBTSwrQ0FBTyxxQkFBcUIsMkNBQWMsdUNBQXVDLGlEQUFvQixjQUFjLDJDQUFjO0FBQ3ZJLDBCQUEwQixnREFBbUIsUUFBUSw4RUFBUSxHQUFHO0FBQ2hFO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGdEQUFtQixTQUFTLDhFQUFRO0FBQzFEO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLGlFQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2VzL2NvbXBvbmVudHMvSWNvbi5qcz9mMmU2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xudmFyIF9leGNsdWRlZCA9IFtcImNsYXNzTmFtZVwiLCBcImNvbXBvbmVudFwiLCBcInZpZXdCb3hcIiwgXCJzcGluXCIsIFwicm90YXRlXCIsIFwidGFiSW5kZXhcIiwgXCJvbkNsaWNrXCIsIFwiY2hpbGRyZW5cIl07XG4vLyBTZWVtcyB0aGlzIGlzIHVzZWQgZm9yIGljb25Gb250XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUNvbXBvc2VSZWYgfSBmcm9tIFwicmMtdXRpbC9lcy9yZWZcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCIuL0NvbnRleHRcIjtcbmltcG9ydCB7IHN2Z0Jhc2VQcm9wcywgd2FybmluZywgdXNlSW5zZXJ0U3R5bGVzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG52YXIgSWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgQ29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50LFxuICAgIHZpZXdCb3ggPSBwcm9wcy52aWV3Qm94LFxuICAgIHNwaW4gPSBwcm9wcy5zcGluLFxuICAgIHJvdGF0ZSA9IHByb3BzLnJvdGF0ZSxcbiAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgIG9uQ2xpY2sgPSBwcm9wcy5vbkNsaWNrLFxuICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBfZXhjbHVkZWQpO1xuICB2YXIgaWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICB2YXIgbWVyZ2VkUmVmID0gdXNlQ29tcG9zZVJlZihpY29uUmVmLCByZWYpO1xuICB3YXJuaW5nKEJvb2xlYW4oQ29tcG9uZW50IHx8IGNoaWxkcmVuKSwgJ1Nob3VsZCBoYXZlIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4nKTtcbiAgdXNlSW5zZXJ0U3R5bGVzKGljb25SZWYpO1xuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KENvbnRleHQpLFxuICAgIF9SZWFjdCR1c2VDb250ZXh0JHByZSA9IF9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxcbiAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dCRwcmUgPT09IHZvaWQgMCA/ICdhbnRpY29uJyA6IF9SZWFjdCR1c2VDb250ZXh0JHByZSxcbiAgICByb290Q2xhc3NOYW1lID0gX1JlYWN0JHVzZUNvbnRleHQucm9vdENsYXNzTmFtZTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gY2xhc3NOYW1lcyhyb290Q2xhc3NOYW1lLCBwcmVmaXhDbHMsIGNsYXNzTmFtZSk7XG4gIHZhciBzdmdDbGFzc1N0cmluZyA9IGNsYXNzTmFtZXMoX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNwaW5cIiksICEhc3BpbikpO1xuICB2YXIgc3ZnU3R5bGUgPSByb3RhdGUgPyB7XG4gICAgbXNUcmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKSxcbiAgICB0cmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKVxuICB9IDogdW5kZWZpbmVkO1xuICB2YXIgaW5uZXJTdmdQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3ZnQmFzZVByb3BzKSwge30sIHtcbiAgICBjbGFzc05hbWU6IHN2Z0NsYXNzU3RyaW5nLFxuICAgIHN0eWxlOiBzdmdTdHlsZSxcbiAgICB2aWV3Qm94OiB2aWV3Qm94XG4gIH0pO1xuICBpZiAoIXZpZXdCb3gpIHtcbiAgICBkZWxldGUgaW5uZXJTdmdQcm9wcy52aWV3Qm94O1xuICB9XG5cbiAgLy8gY29tcG9uZW50ID4gY2hpbGRyZW5cbiAgdmFyIHJlbmRlcklubmVyTm9kZSA9IGZ1bmN0aW9uIHJlbmRlcklubmVyTm9kZSgpIHtcbiAgICBpZiAoQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBpbm5lclN2Z1Byb3BzLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgd2FybmluZyhCb29sZWFuKHZpZXdCb3gpIHx8IFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pICYmIFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLnR5cGUgPT09ICd1c2UnLCAnTWFrZSBzdXJlIHRoYXQgeW91IHByb3ZpZGUgY29ycmVjdCBgdmlld0JveGAnICsgJyBwcm9wIChkZWZhdWx0IGAwIDAgMTAyNCAxMDI0YCkgdG8gdGhlIGljb24uJyk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe30sIGlubmVyU3ZnUHJvcHMsIHtcbiAgICAgICAgdmlld0JveDogdmlld0JveFxuICAgICAgfSksIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG4gIHZhciBpY29uVGFiSW5kZXggPSB0YWJJbmRleDtcbiAgaWYgKGljb25UYWJJbmRleCA9PT0gdW5kZWZpbmVkICYmIG9uQ2xpY2spIHtcbiAgICBpY29uVGFiSW5kZXggPSAtMTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIF9leHRlbmRzKHtcbiAgICByb2xlOiBcImltZ1wiXG4gIH0sIHJlc3RQcm9wcywge1xuICAgIHJlZjogbWVyZ2VkUmVmLFxuICAgIHRhYkluZGV4OiBpY29uVGFiSW5kZXgsXG4gICAgb25DbGljazogb25DbGljayxcbiAgICBjbGFzc05hbWU6IGNsYXNzU3RyaW5nXG4gIH0pLCByZW5kZXJJbm5lck5vZGUoKSk7XG59KTtcbkljb24uZGlzcGxheU5hbWUgPSAnQW50ZEljb24nO1xuZXhwb3J0IGRlZmF1bHQgSWNvbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/icons/es/components/Icon.js\n"); +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_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/ref */ \"./node_modules/rc-util/es/ref.js\");\n/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Context */ \"./node_modules/@ant-design/icons/es/components/Context.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ \"./node_modules/@ant-design/icons/es/utils.js\");\n\n\n\n\nvar _excluded = [\"className\", \"component\", \"viewBox\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"children\"];\n// Seems this is used for iconFont\n\n\n\n\n\nvar Icon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.forwardRef(function (props, ref) {\n var className = props.className,\n Component = props.component,\n viewBox = props.viewBox,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n children = props.children,\n restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(props, _excluded);\n var iconRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef();\n var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__.useComposeRef)(iconRef, ref);\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.warning)(Boolean(Component || children), 'Should have `component` prop or `children`.');\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.useInsertStyles)(iconRef);\n var _React$useContext = react__WEBPACK_IMPORTED_MODULE_4__.useContext(_Context__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classnames__WEBPACK_IMPORTED_MODULE_5___default()(rootClassName, prefixCls, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, \"\".concat(prefixCls, \"-spin\"), !!spin && !!Component), className);\n var svgClassString = classnames__WEBPACK_IMPORTED_MODULE_5___default()((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, \"\".concat(prefixCls, \"-spin\"), !!spin));\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var innerSvgProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, _utils__WEBPACK_IMPORTED_MODULE_7__.svgBaseProps), {}, {\n className: svgClassString,\n style: svgStyle,\n viewBox: viewBox\n });\n if (!viewBox) {\n delete innerSvgProps.viewBox;\n }\n\n // component > children\n var renderInnerNode = function renderInnerNode() {\n if (Component) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(Component, innerSvgProps, children);\n }\n if (children) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_7__.warning)(Boolean(viewBox) || react__WEBPACK_IMPORTED_MODULE_4__.Children.count(children) === 1 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.isValidElement(children) && react__WEBPACK_IMPORTED_MODULE_4__.Children.only(children).type === 'use', 'Make sure that you provide correct `viewBox`' + ' prop (default `0 0 1024 1024`) to the icon.');\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(\"svg\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, innerSvgProps, {\n viewBox: viewBox\n }), children);\n }\n return null;\n };\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(\"span\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n role: \"img\"\n }, restProps, {\n ref: mergedRef,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), renderInnerNode());\n});\nIcon.displayName = 'AntdIcon';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Icon);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvY29tcG9uZW50cy9JY29uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ1c7QUFDRztBQUNrQjtBQUMxRjtBQUNBO0FBQytCO0FBQ0s7QUFDVztBQUNmO0FBQ2tDO0FBQ2xFLHdCQUF3Qiw2Q0FBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw4RkFBd0I7QUFDeEMsZ0JBQWdCLHlDQUFZO0FBQzVCLGtCQUFrQiw2REFBYTtBQUMvQixFQUFFLCtDQUFPO0FBQ1QsRUFBRSx1REFBZTtBQUNqQiwwQkFBMEIsNkNBQWdCLENBQUMsZ0RBQU87QUFDbEQ7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlEQUFVLDJCQUEyQixxRkFBZSxHQUFHO0FBQzNFLHVCQUF1QixpREFBVSxDQUFDLHFGQUFlLEdBQUc7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLHNCQUFzQixvRkFBYSxDQUFDLG9GQUFhLEdBQUcsRUFBRSxnREFBWSxLQUFLO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdEQUFtQjtBQUM3QztBQUNBO0FBQ0EsTUFBTSwrQ0FBTyxxQkFBcUIsMkNBQWMsdUNBQXVDLGlEQUFvQixjQUFjLDJDQUFjO0FBQ3ZJLDBCQUEwQixnREFBbUIsUUFBUSw4RUFBUSxHQUFHO0FBQ2hFO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGdEQUFtQixTQUFTLDhFQUFRO0FBQzFEO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLGlFQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2VzL2NvbXBvbmVudHMvSWNvbi5qcz9mMmU2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xudmFyIF9leGNsdWRlZCA9IFtcImNsYXNzTmFtZVwiLCBcImNvbXBvbmVudFwiLCBcInZpZXdCb3hcIiwgXCJzcGluXCIsIFwicm90YXRlXCIsIFwidGFiSW5kZXhcIiwgXCJvbkNsaWNrXCIsIFwiY2hpbGRyZW5cIl07XG4vLyBTZWVtcyB0aGlzIGlzIHVzZWQgZm9yIGljb25Gb250XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUNvbXBvc2VSZWYgfSBmcm9tIFwicmMtdXRpbC9lcy9yZWZcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCIuL0NvbnRleHRcIjtcbmltcG9ydCB7IHN2Z0Jhc2VQcm9wcywgd2FybmluZywgdXNlSW5zZXJ0U3R5bGVzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG52YXIgSWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgQ29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50LFxuICAgIHZpZXdCb3ggPSBwcm9wcy52aWV3Qm94LFxuICAgIHNwaW4gPSBwcm9wcy5zcGluLFxuICAgIHJvdGF0ZSA9IHByb3BzLnJvdGF0ZSxcbiAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgIG9uQ2xpY2sgPSBwcm9wcy5vbkNsaWNrLFxuICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBfZXhjbHVkZWQpO1xuICB2YXIgaWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICB2YXIgbWVyZ2VkUmVmID0gdXNlQ29tcG9zZVJlZihpY29uUmVmLCByZWYpO1xuICB3YXJuaW5nKEJvb2xlYW4oQ29tcG9uZW50IHx8IGNoaWxkcmVuKSwgJ1Nob3VsZCBoYXZlIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4nKTtcbiAgdXNlSW5zZXJ0U3R5bGVzKGljb25SZWYpO1xuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KENvbnRleHQpLFxuICAgIF9SZWFjdCR1c2VDb250ZXh0JHByZSA9IF9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxcbiAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dCRwcmUgPT09IHZvaWQgMCA/ICdhbnRpY29uJyA6IF9SZWFjdCR1c2VDb250ZXh0JHByZSxcbiAgICByb290Q2xhc3NOYW1lID0gX1JlYWN0JHVzZUNvbnRleHQucm9vdENsYXNzTmFtZTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gY2xhc3NOYW1lcyhyb290Q2xhc3NOYW1lLCBwcmVmaXhDbHMsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zcGluXCIpLCAhIXNwaW4gJiYgISFDb21wb25lbnQpLCBjbGFzc05hbWUpO1xuICB2YXIgc3ZnQ2xhc3NTdHJpbmcgPSBjbGFzc05hbWVzKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zcGluXCIpLCAhIXNwaW4pKTtcbiAgdmFyIHN2Z1N0eWxlID0gcm90YXRlID8ge1xuICAgIG1zVHJhbnNmb3JtOiBcInJvdGF0ZShcIi5jb25jYXQocm90YXRlLCBcImRlZylcIiksXG4gICAgdHJhbnNmb3JtOiBcInJvdGF0ZShcIi5jb25jYXQocm90YXRlLCBcImRlZylcIilcbiAgfSA6IHVuZGVmaW5lZDtcbiAgdmFyIGlubmVyU3ZnUHJvcHMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHN2Z0Jhc2VQcm9wcyksIHt9LCB7XG4gICAgY2xhc3NOYW1lOiBzdmdDbGFzc1N0cmluZyxcbiAgICBzdHlsZTogc3ZnU3R5bGUsXG4gICAgdmlld0JveDogdmlld0JveFxuICB9KTtcbiAgaWYgKCF2aWV3Qm94KSB7XG4gICAgZGVsZXRlIGlubmVyU3ZnUHJvcHMudmlld0JveDtcbiAgfVxuXG4gIC8vIGNvbXBvbmVudCA+IGNoaWxkcmVuXG4gIHZhciByZW5kZXJJbm5lck5vZGUgPSBmdW5jdGlvbiByZW5kZXJJbm5lck5vZGUoKSB7XG4gICAgaWYgKENvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgaW5uZXJTdmdQcm9wcywgY2hpbGRyZW4pO1xuICAgIH1cbiAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgIHdhcm5pbmcoQm9vbGVhbih2aWV3Qm94KSB8fCBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDEgJiYgLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSAmJiBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKS50eXBlID09PSAndXNlJywgJ01ha2Ugc3VyZSB0aGF0IHlvdSBwcm92aWRlIGNvcnJlY3QgYHZpZXdCb3hgJyArICcgcHJvcCAoZGVmYXVsdCBgMCAwIDEwMjQgMTAyNGApIHRvIHRoZSBpY29uLicpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHt9LCBpbm5lclN2Z1Byb3BzLCB7XG4gICAgICAgIHZpZXdCb3g6IHZpZXdCb3hcbiAgICAgIH0pLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuICB2YXIgaWNvblRhYkluZGV4ID0gdGFiSW5kZXg7XG4gIGlmIChpY29uVGFiSW5kZXggPT09IHVuZGVmaW5lZCAmJiBvbkNsaWNrKSB7XG4gICAgaWNvblRhYkluZGV4ID0gLTE7XG4gIH1cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogXCJpbWdcIlxuICB9LCByZXN0UHJvcHMsIHtcbiAgICByZWY6IG1lcmdlZFJlZixcbiAgICB0YWJJbmRleDogaWNvblRhYkluZGV4LFxuICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZ1xuICB9KSwgcmVuZGVySW5uZXJOb2RlKCkpO1xufSk7XG5JY29uLmRpc3BsYXlOYW1lID0gJ0FudGRJY29uJztcbmV4cG9ydCBkZWZhdWx0IEljb247Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/icons/es/components/Icon.js\n"); /***/ }), @@ -973,7 +1206,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ generate: () => (/* binding */ generate),\n/* harmony export */ getSecondaryColor: () => (/* binding */ getSecondaryColor),\n/* harmony export */ iconStyles: () => (/* binding */ iconStyles),\n/* harmony export */ isIconDefinition: () => (/* binding */ isIconDefinition),\n/* harmony export */ normalizeAttrs: () => (/* binding */ normalizeAttrs),\n/* harmony export */ normalizeTwoToneColors: () => (/* binding */ normalizeTwoToneColors),\n/* harmony export */ svgBaseProps: () => (/* binding */ svgBaseProps),\n/* harmony export */ useInsertStyles: () => (/* binding */ useInsertStyles),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _ant_design_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ant-design/colors */ \"./node_modules/@ant-design/colors/es/index.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/warning */ \"./node_modules/rc-util/es/warning.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _components_Context__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/Context */ \"./node_modules/@ant-design/icons/es/components/Context.js\");\n\n\n\n\n\n\n\n\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nfunction warning(valid, message) {\n (0,rc_util_es_warning__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(valid, \"[@ant-design/icons] \".concat(message));\n}\nfunction isIconDefinition(target) {\n return (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target.icon) === 'object' || typeof target.icon === 'function');\n}\nfunction normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nfunction generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__.createElement(node.tag, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__.createElement(node.tag, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nfunction getSecondaryColor(primaryColor) {\n // choose the second color\n return (0,_ant_design_colors__WEBPACK_IMPORTED_MODULE_2__.generate)(primaryColor)[0];\n}\nfunction normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nvar svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nvar iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n alignItems: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = (0,react__WEBPACK_IMPORTED_MODULE_6__.useContext)(_components_Context__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {\n var ele = eleRef.current;\n var shadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_4__.getShadowRoot)(ele);\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_3__.updateCSS)(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUU7QUFDYjtBQUNPO0FBQ1Q7QUFDQTtBQUNoQjtBQUNlO0FBQ047QUFDL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ087QUFDUCxFQUFFLDhEQUFJO0FBQ047QUFDTztBQUNQLFNBQVMsNkVBQU8saUdBQWlHLDZFQUFPO0FBQ3hIO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ087QUFDUDtBQUNBLHdCQUF3QixnREFBbUIsV0FBVyxvRkFBYTtBQUNuRTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBLHNCQUFzQixnREFBbUIsV0FBVyxvRkFBYSxDQUFDLG9GQUFhO0FBQy9FO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ087QUFDUDtBQUNBLFNBQVMsNERBQWE7QUFDdEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sOEJBQThCLHlCQUF5Qix1QkFBdUIsbUJBQW1CLHVCQUF1QixtQkFBbUIsdUJBQXVCLHlCQUF5Qiw2QkFBNkIsdUNBQXVDLHdDQUF3Qyx1Q0FBdUMsR0FBRyxrQkFBa0IsbUJBQW1CLEdBQUcsa0JBQWtCLDBCQUEwQixHQUFHLHNCQUFzQixrQkFBa0IsR0FBRyw0QkFBNEIsbUJBQW1CLEdBQUcsd0JBQXdCLG9CQUFvQixHQUFHLDJDQUEyQywwQkFBMEIsd0RBQXdELGdEQUFnRCxHQUFHLHNDQUFzQyxVQUFVLHdDQUF3QyxnQ0FBZ0MsS0FBSyxHQUFHLDhCQUE4QixVQUFVLHdDQUF3QyxnQ0FBZ0MsS0FBSyxHQUFHO0FBQzU5QjtBQUNQLG9CQUFvQixpREFBVSxDQUFDLDJEQUFXO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsZ0RBQVM7QUFDWDtBQUNBLHFCQUFxQixvRUFBYTtBQUNsQyxJQUFJLG9FQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvdXRpbHMuanM/NDIyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgYXMgZ2VuZXJhdGVDb2xvciB9IGZyb20gJ0BhbnQtZGVzaWduL2NvbG9ycyc7XG5pbXBvcnQgeyB1cGRhdGVDU1MgfSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vZHluYW1pY0NTU1wiO1xuaW1wb3J0IHsgZ2V0U2hhZG93Um9vdCB9IGZyb20gXCJyYy11dGlsL2VzL0RvbS9zaGFkb3dcIjtcbmltcG9ydCB3YXJuIGZyb20gXCJyYy11dGlsL2VzL3dhcm5pbmdcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSWNvbkNvbnRleHQgZnJvbSBcIi4vY29tcG9uZW50cy9Db250ZXh0XCI7XG5mdW5jdGlvbiBjYW1lbENhc2UoaW5wdXQpIHtcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoLy0oLikvZywgZnVuY3Rpb24gKG1hdGNoLCBnKSB7XG4gICAgcmV0dXJuIGcudG9VcHBlckNhc2UoKTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2FybmluZyh2YWxpZCwgbWVzc2FnZSkge1xuICB3YXJuKHZhbGlkLCBcIltAYW50LWRlc2lnbi9pY29uc10gXCIuY29uY2F0KG1lc3NhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ljb25EZWZpbml0aW9uKHRhcmdldCkge1xuICByZXR1cm4gX3R5cGVvZih0YXJnZXQpID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdGFyZ2V0Lm5hbWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB0YXJnZXQudGhlbWUgPT09ICdzdHJpbmcnICYmIChfdHlwZW9mKHRhcmdldC5pY29uKSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdHRycygpIHtcbiAgdmFyIGF0dHJzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgdmFyIHZhbCA9IGF0dHJzW2tleV07XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgYWNjLmNsYXNzTmFtZSA9IHZhbDtcbiAgICAgICAgZGVsZXRlIGFjYy5jbGFzcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkZWxldGUgYWNjW2tleV07XG4gICAgICAgIGFjY1tjYW1lbENhc2Uoa2V5KV0gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZShub2RlLCBrZXksIHJvb3RQcm9wcykge1xuICBpZiAoIXJvb3RQcm9wcykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnRhZywgX29iamVjdFNwcmVhZCh7XG4gICAgICBrZXk6IGtleVxuICAgIH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIFwiXCIuY29uY2F0KGtleSwgXCItXCIpLmNvbmNhdChub2RlLnRhZywgXCItXCIpLmNvbmNhdChpbmRleCkpO1xuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQobm9kZS50YWcsIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAga2V5OiBrZXlcbiAgfSwgbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycykpLCByb290UHJvcHMpLCAobm9kZS5jaGlsZHJlbiB8fCBbXSkubWFwKGZ1bmN0aW9uIChjaGlsZCwgaW5kZXgpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIFwiXCIuY29uY2F0KGtleSwgXCItXCIpLmNvbmNhdChub2RlLnRhZywgXCItXCIpLmNvbmNhdChpbmRleCkpO1xuICB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Vjb25kYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIC8vIGNob29zZSB0aGUgc2Vjb25kIGNvbG9yXG4gIHJldHVybiBnZW5lcmF0ZUNvbG9yKHByaW1hcnlDb2xvcilbMF07XG59XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVHdvVG9uZUNvbG9ycyh0d29Ub25lQ29sb3IpIHtcbiAgaWYgKCF0d29Ub25lQ29sb3IpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHdvVG9uZUNvbG9yKSA/IHR3b1RvbmVDb2xvciA6IFt0d29Ub25lQ29sb3JdO1xufVxuXG4vLyBUaGVzZSBwcm9wcyBtYWtlIHN1cmUgdGhhdCB0aGUgU1ZHIGJlaGF2aW91cnMgbGlrZSBnZW5lcmFsIHRleHQuXG4vLyBSZWZlcmVuY2U6IGh0dHBzOi8vYmxvZy5wcm90b3R5cHIuaW8vYWxpZ24tc3ZnLWljb25zLXRvLXRleHQtYW5kLXNheS1nb29kYnllLXRvLWZvbnQtaWNvbnMtZDQ0YjNkN2IyNmI0XG5leHBvcnQgdmFyIHN2Z0Jhc2VQcm9wcyA9IHtcbiAgd2lkdGg6ICcxZW0nLFxuICBoZWlnaHQ6ICcxZW0nLFxuICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuICBmb2N1c2FibGU6ICdmYWxzZSdcbn07XG5leHBvcnQgdmFyIGljb25TdHlsZXMgPSBcIlxcbi5hbnRpY29uIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ25JdGVtczogY2VudGVyO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogMDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLmFudGljb24gPiAqIHtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG5cXG4uYW50aWNvbiBzdmcge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG4uYW50aWNvbjo6YmVmb3JlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5hbnRpY29uIC5hbnRpY29uLWljb24ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbi5hbnRpY29uW3RhYmluZGV4XSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5hbnRpY29uLXNwaW46OmJlZm9yZSxcXG4uYW50aWNvbi1zcGluIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBsb2FkaW5nQ2lyY2xlIDFzIGluZmluaXRlIGxpbmVhcjtcXG4gIGFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7XFxufVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nQ2lyY2xlIHtcXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblxcbkBrZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgfVxcbn1cXG5cIjtcbmV4cG9ydCB2YXIgdXNlSW5zZXJ0U3R5bGVzID0gZnVuY3Rpb24gdXNlSW5zZXJ0U3R5bGVzKGVsZVJlZikge1xuICB2YXIgX3VzZUNvbnRleHQgPSB1c2VDb250ZXh0KEljb25Db250ZXh0KSxcbiAgICBjc3AgPSBfdXNlQ29udGV4dC5jc3AsXG4gICAgcHJlZml4Q2xzID0gX3VzZUNvbnRleHQucHJlZml4Q2xzO1xuICB2YXIgbWVyZ2VkU3R5bGVTdHIgPSBpY29uU3R5bGVzO1xuICBpZiAocHJlZml4Q2xzKSB7XG4gICAgbWVyZ2VkU3R5bGVTdHIgPSBtZXJnZWRTdHlsZVN0ci5yZXBsYWNlKC9hbnRpY29uL2csIHByZWZpeENscyk7XG4gIH1cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZWxlID0gZWxlUmVmLmN1cnJlbnQ7XG4gICAgdmFyIHNoYWRvd1Jvb3QgPSBnZXRTaGFkb3dSb290KGVsZSk7XG4gICAgdXBkYXRlQ1NTKG1lcmdlZFN0eWxlU3RyLCAnQGFudC1kZXNpZ24taWNvbnMnLCB7XG4gICAgICBwcmVwZW5kOiB0cnVlLFxuICAgICAgY3NwOiBjc3AsXG4gICAgICBhdHRhY2hUbzogc2hhZG93Um9vdFxuICAgIH0pO1xuICB9LCBbXSk7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/icons/es/utils.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generate: () => (/* binding */ generate),\n/* harmony export */ getSecondaryColor: () => (/* binding */ getSecondaryColor),\n/* harmony export */ iconStyles: () => (/* binding */ iconStyles),\n/* harmony export */ isIconDefinition: () => (/* binding */ isIconDefinition),\n/* harmony export */ normalizeAttrs: () => (/* binding */ normalizeAttrs),\n/* harmony export */ normalizeTwoToneColors: () => (/* binding */ normalizeTwoToneColors),\n/* harmony export */ svgBaseProps: () => (/* binding */ svgBaseProps),\n/* harmony export */ useInsertStyles: () => (/* binding */ useInsertStyles),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _ant_design_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ant-design/colors */ \"./node_modules/@ant-design/colors/es/index.js\");\n/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rc-util/es/Dom/dynamicCSS */ \"./node_modules/rc-util/es/Dom/dynamicCSS.js\");\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/warning */ \"./node_modules/rc-util/es/warning.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _components_Context__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/Context */ \"./node_modules/@ant-design/icons/es/components/Context.js\");\n\n\n\n\n\n\n\n\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nfunction warning(valid, message) {\n (0,rc_util_es_warning__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(valid, \"[@ant-design/icons] \".concat(message));\n}\nfunction isIconDefinition(target) {\n return (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target.icon) === 'object' || typeof target.icon === 'function');\n}\nfunction normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nfunction generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__.createElement(node.tag, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__.createElement(node.tag, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nfunction getSecondaryColor(primaryColor) {\n // choose the second color\n return (0,_ant_design_colors__WEBPACK_IMPORTED_MODULE_2__.generate)(primaryColor)[0];\n}\nfunction normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nvar svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nvar iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = (0,react__WEBPACK_IMPORTED_MODULE_6__.useContext)(_components_Context__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {\n var ele = eleRef.current;\n var shadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_4__.getShadowRoot)(ele);\n (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_3__.updateCSS)(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcUU7QUFDYjtBQUNPO0FBQ1Q7QUFDQTtBQUNoQjtBQUNlO0FBQ047QUFDL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ087QUFDUCxFQUFFLDhEQUFJO0FBQ047QUFDTztBQUNQLFNBQVMsNkVBQU8saUdBQWlHLDZFQUFPO0FBQ3hIO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ087QUFDUDtBQUNBLHdCQUF3QixnREFBbUIsV0FBVyxvRkFBYTtBQUNuRTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBLHNCQUFzQixnREFBbUIsV0FBVyxvRkFBYSxDQUFDLG9GQUFhO0FBQy9FO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ087QUFDUDtBQUNBLFNBQVMsNERBQWE7QUFDdEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sOEJBQThCLHlCQUF5Qix3QkFBd0IsbUJBQW1CLHVCQUF1QixtQkFBbUIsdUJBQXVCLHlCQUF5Qiw2QkFBNkIsdUNBQXVDLHdDQUF3Qyx1Q0FBdUMsR0FBRyxrQkFBa0IsbUJBQW1CLEdBQUcsa0JBQWtCLDBCQUEwQixHQUFHLHNCQUFzQixrQkFBa0IsR0FBRyw0QkFBNEIsbUJBQW1CLEdBQUcsd0JBQXdCLG9CQUFvQixHQUFHLDJDQUEyQywwQkFBMEIsd0RBQXdELGdEQUFnRCxHQUFHLHNDQUFzQyxVQUFVLHdDQUF3QyxnQ0FBZ0MsS0FBSyxHQUFHLDhCQUE4QixVQUFVLHdDQUF3QyxnQ0FBZ0MsS0FBSyxHQUFHO0FBQzc5QjtBQUNQLG9CQUFvQixpREFBVSxDQUFDLDJEQUFXO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsZ0RBQVM7QUFDWDtBQUNBLHFCQUFxQixvRUFBYTtBQUNsQyxJQUFJLG9FQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvZXMvdXRpbHMuanM/NDIyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgYXMgZ2VuZXJhdGVDb2xvciB9IGZyb20gJ0BhbnQtZGVzaWduL2NvbG9ycyc7XG5pbXBvcnQgeyB1cGRhdGVDU1MgfSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vZHluYW1pY0NTU1wiO1xuaW1wb3J0IHsgZ2V0U2hhZG93Um9vdCB9IGZyb20gXCJyYy11dGlsL2VzL0RvbS9zaGFkb3dcIjtcbmltcG9ydCB3YXJuIGZyb20gXCJyYy11dGlsL2VzL3dhcm5pbmdcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSWNvbkNvbnRleHQgZnJvbSBcIi4vY29tcG9uZW50cy9Db250ZXh0XCI7XG5mdW5jdGlvbiBjYW1lbENhc2UoaW5wdXQpIHtcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoLy0oLikvZywgZnVuY3Rpb24gKG1hdGNoLCBnKSB7XG4gICAgcmV0dXJuIGcudG9VcHBlckNhc2UoKTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2FybmluZyh2YWxpZCwgbWVzc2FnZSkge1xuICB3YXJuKHZhbGlkLCBcIltAYW50LWRlc2lnbi9pY29uc10gXCIuY29uY2F0KG1lc3NhZ2UpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ljb25EZWZpbml0aW9uKHRhcmdldCkge1xuICByZXR1cm4gX3R5cGVvZih0YXJnZXQpID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdGFyZ2V0Lm5hbWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB0YXJnZXQudGhlbWUgPT09ICdzdHJpbmcnICYmIChfdHlwZW9mKHRhcmdldC5pY29uKSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdHRycygpIHtcbiAgdmFyIGF0dHJzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgdmFyIHZhbCA9IGF0dHJzW2tleV07XG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgYWNjLmNsYXNzTmFtZSA9IHZhbDtcbiAgICAgICAgZGVsZXRlIGFjYy5jbGFzcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkZWxldGUgYWNjW2tleV07XG4gICAgICAgIGFjY1tjYW1lbENhc2Uoa2V5KV0gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZShub2RlLCBrZXksIHJvb3RQcm9wcykge1xuICBpZiAoIXJvb3RQcm9wcykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnRhZywgX29iamVjdFNwcmVhZCh7XG4gICAgICBrZXk6IGtleVxuICAgIH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIFwiXCIuY29uY2F0KGtleSwgXCItXCIpLmNvbmNhdChub2RlLnRhZywgXCItXCIpLmNvbmNhdChpbmRleCkpO1xuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQobm9kZS50YWcsIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAga2V5OiBrZXlcbiAgfSwgbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycykpLCByb290UHJvcHMpLCAobm9kZS5jaGlsZHJlbiB8fCBbXSkubWFwKGZ1bmN0aW9uIChjaGlsZCwgaW5kZXgpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIFwiXCIuY29uY2F0KGtleSwgXCItXCIpLmNvbmNhdChub2RlLnRhZywgXCItXCIpLmNvbmNhdChpbmRleCkpO1xuICB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Vjb25kYXJ5Q29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIC8vIGNob29zZSB0aGUgc2Vjb25kIGNvbG9yXG4gIHJldHVybiBnZW5lcmF0ZUNvbG9yKHByaW1hcnlDb2xvcilbMF07XG59XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVHdvVG9uZUNvbG9ycyh0d29Ub25lQ29sb3IpIHtcbiAgaWYgKCF0d29Ub25lQ29sb3IpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHdvVG9uZUNvbG9yKSA/IHR3b1RvbmVDb2xvciA6IFt0d29Ub25lQ29sb3JdO1xufVxuXG4vLyBUaGVzZSBwcm9wcyBtYWtlIHN1cmUgdGhhdCB0aGUgU1ZHIGJlaGF2aW91cnMgbGlrZSBnZW5lcmFsIHRleHQuXG4vLyBSZWZlcmVuY2U6IGh0dHBzOi8vYmxvZy5wcm90b3R5cHIuaW8vYWxpZ24tc3ZnLWljb25zLXRvLXRleHQtYW5kLXNheS1nb29kYnllLXRvLWZvbnQtaWNvbnMtZDQ0YjNkN2IyNmI0XG5leHBvcnQgdmFyIHN2Z0Jhc2VQcm9wcyA9IHtcbiAgd2lkdGg6ICcxZW0nLFxuICBoZWlnaHQ6ICcxZW0nLFxuICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuICBmb2N1c2FibGU6ICdmYWxzZSdcbn07XG5leHBvcnQgdmFyIGljb25TdHlsZXMgPSBcIlxcbi5hbnRpY29uIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcXG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcblxcbi5hbnRpY29uID4gKiB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuXFxuLmFudGljb24gc3ZnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuXFxuLmFudGljb246OmJlZm9yZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4uYW50aWNvbiAuYW50aWNvbi1pY29uIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG5cXG4uYW50aWNvblt0YWJpbmRleF0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uYW50aWNvbi1zcGluOjpiZWZvcmUsXFxuLmFudGljb24tc3BpbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7XFxuICBhbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyO1xcbn1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIGxvYWRpbmdDaXJjbGUge1xcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuXCI7XG5leHBvcnQgdmFyIHVzZUluc2VydFN0eWxlcyA9IGZ1bmN0aW9uIHVzZUluc2VydFN0eWxlcyhlbGVSZWYpIHtcbiAgdmFyIF91c2VDb250ZXh0ID0gdXNlQ29udGV4dChJY29uQ29udGV4dCksXG4gICAgY3NwID0gX3VzZUNvbnRleHQuY3NwLFxuICAgIHByZWZpeENscyA9IF91c2VDb250ZXh0LnByZWZpeENscztcbiAgdmFyIG1lcmdlZFN0eWxlU3RyID0gaWNvblN0eWxlcztcbiAgaWYgKHByZWZpeENscykge1xuICAgIG1lcmdlZFN0eWxlU3RyID0gbWVyZ2VkU3R5bGVTdHIucmVwbGFjZSgvYW50aWNvbi9nLCBwcmVmaXhDbHMpO1xuICB9XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGVsZSA9IGVsZVJlZi5jdXJyZW50O1xuICAgIHZhciBzaGFkb3dSb290ID0gZ2V0U2hhZG93Um9vdChlbGUpO1xuICAgIHVwZGF0ZUNTUyhtZXJnZWRTdHlsZVN0ciwgJ0BhbnQtZGVzaWduLWljb25zJywge1xuICAgICAgcHJlcGVuZDogdHJ1ZSxcbiAgICAgIGNzcDogY3NwLFxuICAgICAgYXR0YWNoVG86IHNoYWRvd1Jvb3RcbiAgICB9KTtcbiAgfSwgW10pO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ant-design/icons/es/utils.js\n"); /***/ }), @@ -1050,7 +1283,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__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 */ isPropValid)\n/* harmony export */ });\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ \"./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js\");\n\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaXMtcHJvcC12YWxpZC9kaXN0L2Vtb3Rpb24taXMtcHJvcC12YWxpZC5lc20uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUM7O0FBRXZDLDIrSEFBMitIOztBQUUzK0gsaUNBQWlDLDREQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9pcy1wcm9wLXZhbGlkL2Rpc3QvZW1vdGlvbi1pcy1wcm9wLXZhbGlkLmVzbS5qcz85MjkzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZW1vaXplIGZyb20gJ0BlbW90aW9uL21lbW9pemUnO1xuXG52YXIgcmVhY3RQcm9wc1JlZ2V4ID0gL14oKGNoaWxkcmVufGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfGtleXxyZWZ8YXV0b0ZvY3VzfGRlZmF1bHRWYWx1ZXxkZWZhdWx0Q2hlY2tlZHxpbm5lckhUTUx8c3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nfHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x2YWx1ZUxpbmt8YWJicnxhY2NlcHR8YWNjZXB0Q2hhcnNldHxhY2Nlc3NLZXl8YWN0aW9ufGFsbG93fGFsbG93VXNlck1lZGlhfGFsbG93UGF5bWVudFJlcXVlc3R8YWxsb3dGdWxsU2NyZWVufGFsbG93VHJhbnNwYXJlbmN5fGFsdHxhc3luY3xhdXRvQ29tcGxldGV8YXV0b1BsYXl8Y2FwdHVyZXxjZWxsUGFkZGluZ3xjZWxsU3BhY2luZ3xjaGFsbGVuZ2V8Y2hhclNldHxjaGVja2VkfGNpdGV8Y2xhc3NJRHxjbGFzc05hbWV8Y29sc3xjb2xTcGFufGNvbnRlbnR8Y29udGVudEVkaXRhYmxlfGNvbnRleHRNZW51fGNvbnRyb2xzfGNvbnRyb2xzTGlzdHxjb29yZHN8Y3Jvc3NPcmlnaW58ZGF0YXxkYXRlVGltZXxkZWNvZGluZ3xkZWZhdWx0fGRlZmVyfGRpcnxkaXNhYmxlZHxkaXNhYmxlUGljdHVyZUluUGljdHVyZXxkb3dubG9hZHxkcmFnZ2FibGV8ZW5jVHlwZXxlbnRlcktleUhpbnR8Zm9ybXxmb3JtQWN0aW9ufGZvcm1FbmNUeXBlfGZvcm1NZXRob2R8Zm9ybU5vVmFsaWRhdGV8Zm9ybVRhcmdldHxmcmFtZUJvcmRlcnxoZWFkZXJzfGhlaWdodHxoaWRkZW58aGlnaHxocmVmfGhyZWZMYW5nfGh0bWxGb3J8aHR0cEVxdWl2fGlkfGlucHV0TW9kZXxpbnRlZ3JpdHl8aXN8a2V5UGFyYW1zfGtleVR5cGV8a2luZHxsYWJlbHxsYW5nfGxpc3R8bG9hZGluZ3xsb29wfGxvd3xtYXJnaW5IZWlnaHR8bWFyZ2luV2lkdGh8bWF4fG1heExlbmd0aHxtZWRpYXxtZWRpYUdyb3VwfG1ldGhvZHxtaW58bWluTGVuZ3RofG11bHRpcGxlfG11dGVkfG5hbWV8bm9uY2V8bm9WYWxpZGF0ZXxvcGVufG9wdGltdW18cGF0dGVybnxwbGFjZWhvbGRlcnxwbGF5c0lubGluZXxwb3N0ZXJ8cHJlbG9hZHxwcm9maWxlfHJhZGlvR3JvdXB8cmVhZE9ubHl8cmVmZXJyZXJQb2xpY3l8cmVsfHJlcXVpcmVkfHJldmVyc2VkfHJvbGV8cm93c3xyb3dTcGFufHNhbmRib3h8c2NvcGV8c2NvcGVkfHNjcm9sbGluZ3xzZWFtbGVzc3xzZWxlY3RlZHxzaGFwZXxzaXplfHNpemVzfHNsb3R8c3BhbnxzcGVsbENoZWNrfHNyY3xzcmNEb2N8c3JjTGFuZ3xzcmNTZXR8c3RhcnR8c3RlcHxzdHlsZXxzdW1tYXJ5fHRhYkluZGV4fHRhcmdldHx0aXRsZXx0cmFuc2xhdGV8dHlwZXx1c2VNYXB8dmFsdWV8d2lkdGh8d21vZGV8d3JhcHxhYm91dHxkYXRhdHlwZXxpbmxpc3R8cHJlZml4fHByb3BlcnR5fHJlc291cmNlfHR5cGVvZnx2b2NhYnxhdXRvQ2FwaXRhbGl6ZXxhdXRvQ29ycmVjdHxhdXRvU2F2ZXxjb2xvcnxpbmNyZW1lbnRhbHxmYWxsYmFja3xpbmVydHxpdGVtUHJvcHxpdGVtU2NvcGV8aXRlbVR5cGV8aXRlbUlEfGl0ZW1SZWZ8b258b3B0aW9ufHJlc3VsdHN8c2VjdXJpdHl8dW5zZWxlY3RhYmxlfGFjY2VudEhlaWdodHxhY2N1bXVsYXRlfGFkZGl0aXZlfGFsaWdubWVudEJhc2VsaW5lfGFsbG93UmVvcmRlcnxhbHBoYWJldGljfGFtcGxpdHVkZXxhcmFiaWNGb3JtfGFzY2VudHxhdHRyaWJ1dGVOYW1lfGF0dHJpYnV0ZVR5cGV8YXV0b1JldmVyc2V8YXppbXV0aHxiYXNlRnJlcXVlbmN5fGJhc2VsaW5lU2hpZnR8YmFzZVByb2ZpbGV8YmJveHxiZWdpbnxiaWFzfGJ5fGNhbGNNb2RlfGNhcEhlaWdodHxjbGlwfGNsaXBQYXRoVW5pdHN8Y2xpcFBhdGh8Y2xpcFJ1bGV8Y29sb3JJbnRlcnBvbGF0aW9ufGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnN8Y29sb3JQcm9maWxlfGNvbG9yUmVuZGVyaW5nfGNvbnRlbnRTY3JpcHRUeXBlfGNvbnRlbnRTdHlsZVR5cGV8Y3Vyc29yfGN4fGN5fGR8ZGVjZWxlcmF0ZXxkZXNjZW50fGRpZmZ1c2VDb25zdGFudHxkaXJlY3Rpb258ZGlzcGxheXxkaXZpc29yfGRvbWluYW50QmFzZWxpbmV8ZHVyfGR4fGR5fGVkZ2VNb2RlfGVsZXZhdGlvbnxlbmFibGVCYWNrZ3JvdW5kfGVuZHxleHBvbmVudHxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkfGZpbGx8ZmlsbE9wYWNpdHl8ZmlsbFJ1bGV8ZmlsdGVyfGZpbHRlclJlc3xmaWx0ZXJVbml0c3xmbG9vZENvbG9yfGZsb29kT3BhY2l0eXxmb2N1c2FibGV8Zm9udEZhbWlseXxmb250U2l6ZXxmb250U2l6ZUFkanVzdHxmb250U3RyZXRjaHxmb250U3R5bGV8Zm9udFZhcmlhbnR8Zm9udFdlaWdodHxmb3JtYXR8ZnJvbXxmcnxmeHxmeXxnMXxnMnxnbHlwaE5hbWV8Z2x5cGhPcmllbnRhdGlvbkhvcml6b250YWx8Z2x5cGhPcmllbnRhdGlvblZlcnRpY2FsfGdseXBoUmVmfGdyYWRpZW50VHJhbnNmb3JtfGdyYWRpZW50VW5pdHN8aGFuZ2luZ3xob3JpekFkdlh8aG9yaXpPcmlnaW5YfGlkZW9ncmFwaGljfGltYWdlUmVuZGVyaW5nfGlufGluMnxpbnRlcmNlcHR8a3xrMXxrMnxrM3xrNHxrZXJuZWxNYXRyaXh8a2VybmVsVW5pdExlbmd0aHxrZXJuaW5nfGtleVBvaW50c3xrZXlTcGxpbmVzfGtleVRpbWVzfGxlbmd0aEFkanVzdHxsZXR0ZXJTcGFjaW5nfGxpZ2h0aW5nQ29sb3J8bGltaXRpbmdDb25lQW5nbGV8bG9jYWx8bWFya2VyRW5kfG1hcmtlck1pZHxtYXJrZXJTdGFydHxtYXJrZXJIZWlnaHR8bWFya2VyVW5pdHN8bWFya2VyV2lkdGh8bWFza3xtYXNrQ29udGVudFVuaXRzfG1hc2tVbml0c3xtYXRoZW1hdGljYWx8bW9kZXxudW1PY3RhdmVzfG9mZnNldHxvcGFjaXR5fG9wZXJhdG9yfG9yZGVyfG9yaWVudHxvcmllbnRhdGlvbnxvcmlnaW58b3ZlcmZsb3d8b3ZlcmxpbmVQb3NpdGlvbnxvdmVybGluZVRoaWNrbmVzc3xwYW5vc2UxfHBhaW50T3JkZXJ8cGF0aExlbmd0aHxwYXR0ZXJuQ29udGVudFVuaXRzfHBhdHRlcm5UcmFuc2Zvcm18cGF0dGVyblVuaXRzfHBvaW50ZXJFdmVudHN8cG9pbnRzfHBvaW50c0F0WHxwb2ludHNBdFl8cG9pbnRzQXRafHByZXNlcnZlQWxwaGF8cHJlc2VydmVBc3BlY3RSYXRpb3xwcmltaXRpdmVVbml0c3xyfHJhZGl1c3xyZWZYfHJlZll8cmVuZGVyaW5nSW50ZW50fHJlcGVhdENvdW50fHJlcGVhdER1cnxyZXF1aXJlZEV4dGVuc2lvbnN8cmVxdWlyZWRGZWF0dXJlc3xyZXN0YXJ0fHJlc3VsdHxyb3RhdGV8cnh8cnl8c2NhbGV8c2VlZHxzaGFwZVJlbmRlcmluZ3xzbG9wZXxzcGFjaW5nfHNwZWN1bGFyQ29uc3RhbnR8c3BlY3VsYXJFeHBvbmVudHxzcGVlZHxzcHJlYWRNZXRob2R8c3RhcnRPZmZzZXR8c3RkRGV2aWF0aW9ufHN0ZW1ofHN0ZW12fHN0aXRjaFRpbGVzfHN0b3BDb2xvcnxzdG9wT3BhY2l0eXxzdHJpa2V0aHJvdWdoUG9zaXRpb258c3RyaWtldGhyb3VnaFRoaWNrbmVzc3xzdHJpbmd8c3Ryb2tlfHN0cm9rZURhc2hhcnJheXxzdHJva2VEYXNob2Zmc2V0fHN0cm9rZUxpbmVjYXB8c3Ryb2tlTGluZWpvaW58c3Ryb2tlTWl0ZXJsaW1pdHxzdHJva2VPcGFjaXR5fHN0cm9rZVdpZHRofHN1cmZhY2VTY2FsZXxzeXN0ZW1MYW5ndWFnZXx0YWJsZVZhbHVlc3x0YXJnZXRYfHRhcmdldFl8dGV4dEFuY2hvcnx0ZXh0RGVjb3JhdGlvbnx0ZXh0UmVuZGVyaW5nfHRleHRMZW5ndGh8dG98dHJhbnNmb3JtfHUxfHUyfHVuZGVybGluZVBvc2l0aW9ufHVuZGVybGluZVRoaWNrbmVzc3x1bmljb2RlfHVuaWNvZGVCaWRpfHVuaWNvZGVSYW5nZXx1bml0c1BlckVtfHZBbHBoYWJldGljfHZIYW5naW5nfHZJZGVvZ3JhcGhpY3x2TWF0aGVtYXRpY2FsfHZhbHVlc3x2ZWN0b3JFZmZlY3R8dmVyc2lvbnx2ZXJ0QWR2WXx2ZXJ0T3JpZ2luWHx2ZXJ0T3JpZ2luWXx2aWV3Qm94fHZpZXdUYXJnZXR8dmlzaWJpbGl0eXx3aWR0aHN8d29yZFNwYWNpbmd8d3JpdGluZ01vZGV8eHx4SGVpZ2h0fHgxfHgyfHhDaGFubmVsU2VsZWN0b3J8eGxpbmtBY3R1YXRlfHhsaW5rQXJjcm9sZXx4bGlua0hyZWZ8eGxpbmtSb2xlfHhsaW5rU2hvd3x4bGlua1RpdGxlfHhsaW5rVHlwZXx4bWxCYXNlfHhtbG5zfHhtbG5zWGxpbmt8eG1sTGFuZ3x4bWxTcGFjZXx5fHkxfHkyfHlDaGFubmVsU2VsZWN0b3J8enx6b29tQW5kUGFufGZvcnxjbGFzc3xhdXRvZm9jdXMpfCgoW0RkXVtBYV1bVHRdW0FhXXxbQWFdW1JyXVtJaV1bQWFdfHgpLS4qKSkkLzsgLy8gaHR0cHM6Ly9lc2JlbmNoLmNvbS9iZW5jaC81YmZlZTY4YTRjZDdlNjAwOWVmNjFkMjNcblxudmFyIGlzUHJvcFZhbGlkID0gLyogI19fUFVSRV9fICovbWVtb2l6ZShmdW5jdGlvbiAocHJvcCkge1xuICByZXR1cm4gcmVhY3RQcm9wc1JlZ2V4LnRlc3QocHJvcCkgfHwgcHJvcC5jaGFyQ29kZUF0KDApID09PSAxMTFcbiAgLyogbyAqL1xuICAmJiBwcm9wLmNoYXJDb2RlQXQoMSkgPT09IDExMFxuICAvKiBuICovXG4gICYmIHByb3AuY2hhckNvZGVBdCgyKSA8IDkxO1xufVxuLyogWisxICovXG4pO1xuXG5leHBvcnQgeyBpc1Byb3BWYWxpZCBhcyBkZWZhdWx0IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ isPropValid)\n/* harmony export */ });\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ \"./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js\");\n\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaXMtcHJvcC12YWxpZC9kaXN0L2Vtb3Rpb24taXMtcHJvcC12YWxpZC5lc20uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBdUM7O0FBRXZDLGlnSUFBaWdJOztBQUVqZ0ksaUNBQWlDLDREQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9pcy1wcm9wLXZhbGlkL2Rpc3QvZW1vdGlvbi1pcy1wcm9wLXZhbGlkLmVzbS5qcz85MjkzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZW1vaXplIGZyb20gJ0BlbW90aW9uL21lbW9pemUnO1xuXG52YXIgcmVhY3RQcm9wc1JlZ2V4ID0gL14oKGNoaWxkcmVufGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfGtleXxyZWZ8YXV0b0ZvY3VzfGRlZmF1bHRWYWx1ZXxkZWZhdWx0Q2hlY2tlZHxpbm5lckhUTUx8c3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nfHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x2YWx1ZUxpbmt8YWJicnxhY2NlcHR8YWNjZXB0Q2hhcnNldHxhY2Nlc3NLZXl8YWN0aW9ufGFsbG93fGFsbG93VXNlck1lZGlhfGFsbG93UGF5bWVudFJlcXVlc3R8YWxsb3dGdWxsU2NyZWVufGFsbG93VHJhbnNwYXJlbmN5fGFsdHxhc3luY3xhdXRvQ29tcGxldGV8YXV0b1BsYXl8Y2FwdHVyZXxjZWxsUGFkZGluZ3xjZWxsU3BhY2luZ3xjaGFsbGVuZ2V8Y2hhclNldHxjaGVja2VkfGNpdGV8Y2xhc3NJRHxjbGFzc05hbWV8Y29sc3xjb2xTcGFufGNvbnRlbnR8Y29udGVudEVkaXRhYmxlfGNvbnRleHRNZW51fGNvbnRyb2xzfGNvbnRyb2xzTGlzdHxjb29yZHN8Y3Jvc3NPcmlnaW58ZGF0YXxkYXRlVGltZXxkZWNvZGluZ3xkZWZhdWx0fGRlZmVyfGRpcnxkaXNhYmxlZHxkaXNhYmxlUGljdHVyZUluUGljdHVyZXxkaXNhYmxlUmVtb3RlUGxheWJhY2t8ZG93bmxvYWR8ZHJhZ2dhYmxlfGVuY1R5cGV8ZW50ZXJLZXlIaW50fGZvcm18Zm9ybUFjdGlvbnxmb3JtRW5jVHlwZXxmb3JtTWV0aG9kfGZvcm1Ob1ZhbGlkYXRlfGZvcm1UYXJnZXR8ZnJhbWVCb3JkZXJ8aGVhZGVyc3xoZWlnaHR8aGlkZGVufGhpZ2h8aHJlZnxocmVmTGFuZ3xodG1sRm9yfGh0dHBFcXVpdnxpZHxpbnB1dE1vZGV8aW50ZWdyaXR5fGlzfGtleVBhcmFtc3xrZXlUeXBlfGtpbmR8bGFiZWx8bGFuZ3xsaXN0fGxvYWRpbmd8bG9vcHxsb3d8bWFyZ2luSGVpZ2h0fG1hcmdpbldpZHRofG1heHxtYXhMZW5ndGh8bWVkaWF8bWVkaWFHcm91cHxtZXRob2R8bWlufG1pbkxlbmd0aHxtdWx0aXBsZXxtdXRlZHxuYW1lfG5vbmNlfG5vVmFsaWRhdGV8b3BlbnxvcHRpbXVtfHBhdHRlcm58cGxhY2Vob2xkZXJ8cGxheXNJbmxpbmV8cG9zdGVyfHByZWxvYWR8cHJvZmlsZXxyYWRpb0dyb3VwfHJlYWRPbmx5fHJlZmVycmVyUG9saWN5fHJlbHxyZXF1aXJlZHxyZXZlcnNlZHxyb2xlfHJvd3N8cm93U3BhbnxzYW5kYm94fHNjb3BlfHNjb3BlZHxzY3JvbGxpbmd8c2VhbWxlc3N8c2VsZWN0ZWR8c2hhcGV8c2l6ZXxzaXplc3xzbG90fHNwYW58c3BlbGxDaGVja3xzcmN8c3JjRG9jfHNyY0xhbmd8c3JjU2V0fHN0YXJ0fHN0ZXB8c3R5bGV8c3VtbWFyeXx0YWJJbmRleHx0YXJnZXR8dGl0bGV8dHJhbnNsYXRlfHR5cGV8dXNlTWFwfHZhbHVlfHdpZHRofHdtb2RlfHdyYXB8YWJvdXR8ZGF0YXR5cGV8aW5saXN0fHByZWZpeHxwcm9wZXJ0eXxyZXNvdXJjZXx0eXBlb2Z8dm9jYWJ8YXV0b0NhcGl0YWxpemV8YXV0b0NvcnJlY3R8YXV0b1NhdmV8Y29sb3J8aW5jcmVtZW50YWx8ZmFsbGJhY2t8aW5lcnR8aXRlbVByb3B8aXRlbVNjb3BlfGl0ZW1UeXBlfGl0ZW1JRHxpdGVtUmVmfG9ufG9wdGlvbnxyZXN1bHRzfHNlY3VyaXR5fHVuc2VsZWN0YWJsZXxhY2NlbnRIZWlnaHR8YWNjdW11bGF0ZXxhZGRpdGl2ZXxhbGlnbm1lbnRCYXNlbGluZXxhbGxvd1Jlb3JkZXJ8YWxwaGFiZXRpY3xhbXBsaXR1ZGV8YXJhYmljRm9ybXxhc2NlbnR8YXR0cmlidXRlTmFtZXxhdHRyaWJ1dGVUeXBlfGF1dG9SZXZlcnNlfGF6aW11dGh8YmFzZUZyZXF1ZW5jeXxiYXNlbGluZVNoaWZ0fGJhc2VQcm9maWxlfGJib3h8YmVnaW58Ymlhc3xieXxjYWxjTW9kZXxjYXBIZWlnaHR8Y2xpcHxjbGlwUGF0aFVuaXRzfGNsaXBQYXRofGNsaXBSdWxlfGNvbG9ySW50ZXJwb2xhdGlvbnxjb2xvckludGVycG9sYXRpb25GaWx0ZXJzfGNvbG9yUHJvZmlsZXxjb2xvclJlbmRlcmluZ3xjb250ZW50U2NyaXB0VHlwZXxjb250ZW50U3R5bGVUeXBlfGN1cnNvcnxjeHxjeXxkfGRlY2VsZXJhdGV8ZGVzY2VudHxkaWZmdXNlQ29uc3RhbnR8ZGlyZWN0aW9ufGRpc3BsYXl8ZGl2aXNvcnxkb21pbmFudEJhc2VsaW5lfGR1cnxkeHxkeXxlZGdlTW9kZXxlbGV2YXRpb258ZW5hYmxlQmFja2dyb3VuZHxlbmR8ZXhwb25lbnR8ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZHxmaWxsfGZpbGxPcGFjaXR5fGZpbGxSdWxlfGZpbHRlcnxmaWx0ZXJSZXN8ZmlsdGVyVW5pdHN8Zmxvb2RDb2xvcnxmbG9vZE9wYWNpdHl8Zm9jdXNhYmxlfGZvbnRGYW1pbHl8Zm9udFNpemV8Zm9udFNpemVBZGp1c3R8Zm9udFN0cmV0Y2h8Zm9udFN0eWxlfGZvbnRWYXJpYW50fGZvbnRXZWlnaHR8Zm9ybWF0fGZyb218ZnJ8Znh8Znl8ZzF8ZzJ8Z2x5cGhOYW1lfGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsfGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbHxnbHlwaFJlZnxncmFkaWVudFRyYW5zZm9ybXxncmFkaWVudFVuaXRzfGhhbmdpbmd8aG9yaXpBZHZYfGhvcml6T3JpZ2luWHxpZGVvZ3JhcGhpY3xpbWFnZVJlbmRlcmluZ3xpbnxpbjJ8aW50ZXJjZXB0fGt8azF8azJ8azN8azR8a2VybmVsTWF0cml4fGtlcm5lbFVuaXRMZW5ndGh8a2VybmluZ3xrZXlQb2ludHN8a2V5U3BsaW5lc3xrZXlUaW1lc3xsZW5ndGhBZGp1c3R8bGV0dGVyU3BhY2luZ3xsaWdodGluZ0NvbG9yfGxpbWl0aW5nQ29uZUFuZ2xlfGxvY2FsfG1hcmtlckVuZHxtYXJrZXJNaWR8bWFya2VyU3RhcnR8bWFya2VySGVpZ2h0fG1hcmtlclVuaXRzfG1hcmtlcldpZHRofG1hc2t8bWFza0NvbnRlbnRVbml0c3xtYXNrVW5pdHN8bWF0aGVtYXRpY2FsfG1vZGV8bnVtT2N0YXZlc3xvZmZzZXR8b3BhY2l0eXxvcGVyYXRvcnxvcmRlcnxvcmllbnR8b3JpZW50YXRpb258b3JpZ2lufG92ZXJmbG93fG92ZXJsaW5lUG9zaXRpb258b3ZlcmxpbmVUaGlja25lc3N8cGFub3NlMXxwYWludE9yZGVyfHBhdGhMZW5ndGh8cGF0dGVybkNvbnRlbnRVbml0c3xwYXR0ZXJuVHJhbnNmb3JtfHBhdHRlcm5Vbml0c3xwb2ludGVyRXZlbnRzfHBvaW50c3xwb2ludHNBdFh8cG9pbnRzQXRZfHBvaW50c0F0WnxwcmVzZXJ2ZUFscGhhfHByZXNlcnZlQXNwZWN0UmF0aW98cHJpbWl0aXZlVW5pdHN8cnxyYWRpdXN8cmVmWHxyZWZZfHJlbmRlcmluZ0ludGVudHxyZXBlYXRDb3VudHxyZXBlYXREdXJ8cmVxdWlyZWRFeHRlbnNpb25zfHJlcXVpcmVkRmVhdHVyZXN8cmVzdGFydHxyZXN1bHR8cm90YXRlfHJ4fHJ5fHNjYWxlfHNlZWR8c2hhcGVSZW5kZXJpbmd8c2xvcGV8c3BhY2luZ3xzcGVjdWxhckNvbnN0YW50fHNwZWN1bGFyRXhwb25lbnR8c3BlZWR8c3ByZWFkTWV0aG9kfHN0YXJ0T2Zmc2V0fHN0ZERldmlhdGlvbnxzdGVtaHxzdGVtdnxzdGl0Y2hUaWxlc3xzdG9wQ29sb3J8c3RvcE9wYWNpdHl8c3RyaWtldGhyb3VnaFBvc2l0aW9ufHN0cmlrZXRocm91Z2hUaGlja25lc3N8c3RyaW5nfHN0cm9rZXxzdHJva2VEYXNoYXJyYXl8c3Ryb2tlRGFzaG9mZnNldHxzdHJva2VMaW5lY2FwfHN0cm9rZUxpbmVqb2lufHN0cm9rZU1pdGVybGltaXR8c3Ryb2tlT3BhY2l0eXxzdHJva2VXaWR0aHxzdXJmYWNlU2NhbGV8c3lzdGVtTGFuZ3VhZ2V8dGFibGVWYWx1ZXN8dGFyZ2V0WHx0YXJnZXRZfHRleHRBbmNob3J8dGV4dERlY29yYXRpb258dGV4dFJlbmRlcmluZ3x0ZXh0TGVuZ3RofHRvfHRyYW5zZm9ybXx1MXx1Mnx1bmRlcmxpbmVQb3NpdGlvbnx1bmRlcmxpbmVUaGlja25lc3N8dW5pY29kZXx1bmljb2RlQmlkaXx1bmljb2RlUmFuZ2V8dW5pdHNQZXJFbXx2QWxwaGFiZXRpY3x2SGFuZ2luZ3x2SWRlb2dyYXBoaWN8dk1hdGhlbWF0aWNhbHx2YWx1ZXN8dmVjdG9yRWZmZWN0fHZlcnNpb258dmVydEFkdll8dmVydE9yaWdpblh8dmVydE9yaWdpbll8dmlld0JveHx2aWV3VGFyZ2V0fHZpc2liaWxpdHl8d2lkdGhzfHdvcmRTcGFjaW5nfHdyaXRpbmdNb2RlfHh8eEhlaWdodHx4MXx4Mnx4Q2hhbm5lbFNlbGVjdG9yfHhsaW5rQWN0dWF0ZXx4bGlua0FyY3JvbGV8eGxpbmtIcmVmfHhsaW5rUm9sZXx4bGlua1Nob3d8eGxpbmtUaXRsZXx4bGlua1R5cGV8eG1sQmFzZXx4bWxuc3x4bWxuc1hsaW5rfHhtbExhbmd8eG1sU3BhY2V8eXx5MXx5Mnx5Q2hhbm5lbFNlbGVjdG9yfHp8em9vbUFuZFBhbnxmb3J8Y2xhc3N8YXV0b2ZvY3VzKXwoKFtEZF1bQWFdW1R0XVtBYV18W0FhXVtScl1bSWldW0FhXXx4KS0uKikpJC87IC8vIGh0dHBzOi8vZXNiZW5jaC5jb20vYmVuY2gvNWJmZWU2OGE0Y2Q3ZTYwMDllZjYxZDIzXG5cbnZhciBpc1Byb3BWYWxpZCA9IC8qICNfX1BVUkVfXyAqL21lbW9pemUoZnVuY3Rpb24gKHByb3ApIHtcbiAgcmV0dXJuIHJlYWN0UHJvcHNSZWdleC50ZXN0KHByb3ApIHx8IHByb3AuY2hhckNvZGVBdCgwKSA9PT0gMTExXG4gIC8qIG8gKi9cbiAgJiYgcHJvcC5jaGFyQ29kZUF0KDEpID09PSAxMTBcbiAgLyogbiAqL1xuICAmJiBwcm9wLmNoYXJDb2RlQXQoMikgPCA5MTtcbn1cbi8qIForMSAqL1xuKTtcblxuZXhwb3J0IHsgaXNQcm9wVmFsaWQgYXMgZGVmYXVsdCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js\n"); /***/ }), @@ -1065,14 +1298,14 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), -/***/ "./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js": +/***/ "./node_modules/@emotion/unitless/dist/unitless.browser.esm.js": /*!*********************************************************************!*\ - !*** ./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js ***! + !*** ./node_modules/@emotion/unitless/dist/unitless.browser.esm.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 */ });\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (unitlessKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC9lbW90aW9uLXVuaXRsZXNzLmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC9lbW90aW9uLXVuaXRsZXNzLmVzbS5qcz9hZDUxIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB1bml0bGVzc0tleXMgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICB0YWJTaXplOiAxLFxuICB3aWRvd3M6IDEsXG4gIHpJbmRleDogMSxcbiAgem9vbTogMSxcbiAgV2Via2l0TGluZUNsYW1wOiAxLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiAxLFxuICBmbG9vZE9wYWNpdHk6IDEsXG4gIHN0b3BPcGFjaXR5OiAxLFxuICBzdHJva2VEYXNoYXJyYXk6IDEsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IDEsXG4gIHN0cm9rZU1pdGVybGltaXQ6IDEsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdpZHRoOiAxXG59O1xuXG5leHBvcnQgZGVmYXVsdCB1bml0bGVzc0tleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (unitlessKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC91bml0bGVzcy5icm93c2VyLmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC91bml0bGVzcy5icm93c2VyLmVzbS5qcz8zMDRlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB1bml0bGVzc0tleXMgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAxLFxuICBib3JkZXJJbWFnZU91dHNldDogMSxcbiAgYm9yZGVySW1hZ2VTbGljZTogMSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogMSxcbiAgYm94RmxleDogMSxcbiAgYm94RmxleEdyb3VwOiAxLFxuICBib3hPcmRpbmFsR3JvdXA6IDEsXG4gIGNvbHVtbkNvdW50OiAxLFxuICBjb2x1bW5zOiAxLFxuICBmbGV4OiAxLFxuICBmbGV4R3JvdzogMSxcbiAgZmxleFBvc2l0aXZlOiAxLFxuICBmbGV4U2hyaW5rOiAxLFxuICBmbGV4TmVnYXRpdmU6IDEsXG4gIGZsZXhPcmRlcjogMSxcbiAgZ3JpZFJvdzogMSxcbiAgZ3JpZFJvd0VuZDogMSxcbiAgZ3JpZFJvd1NwYW46IDEsXG4gIGdyaWRSb3dTdGFydDogMSxcbiAgZ3JpZENvbHVtbjogMSxcbiAgZ3JpZENvbHVtbkVuZDogMSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGdyaWRDb2x1bW5TdGFydDogMSxcbiAgbXNHcmlkUm93OiAxLFxuICBtc0dyaWRSb3dTcGFuOiAxLFxuICBtc0dyaWRDb2x1bW46IDEsXG4gIG1zR3JpZENvbHVtblNwYW46IDEsXG4gIGZvbnRXZWlnaHQ6IDEsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIG9yZGVyOiAxLFxuICBvcnBoYW5zOiAxLFxuICB0YWJTaXplOiAxLFxuICB3aWRvd3M6IDEsXG4gIHpJbmRleDogMSxcbiAgem9vbTogMSxcbiAgV2Via2l0TGluZUNsYW1wOiAxLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiAxLFxuICBmbG9vZE9wYWNpdHk6IDEsXG4gIHN0b3BPcGFjaXR5OiAxLFxuICBzdHJva2VEYXNoYXJyYXk6IDEsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IDEsXG4gIHN0cm9rZU1pdGVybGltaXQ6IDEsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdpZHRoOiAxXG59O1xuXG5leHBvcnQgZGVmYXVsdCB1bml0bGVzc0tleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js\n"); /***/ }), @@ -1149,51 +1382,526 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nvar tslib = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nvar assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nvar assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar stringToByteArray = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [];\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [];\r\n var pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, webSafe) {\r\n this.init_();\r\n var charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n if (!source.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.reject = function () { };\r\n this.resolve = function () { };\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n try {\r\n return (Object.prototype.toString.call(__webpack_require__.g.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n var runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n var ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n return 'indexedDB' in self && indexedDB != null;\r\n}\r\n/**\r\n * This method validates browser context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise(function (resolve, reject) {\r\n try {\r\n var preExist_1 = true;\r\n var DB_CHECK_NAME_1 = 'validate-browser-context-for-indexeddb-analytics-module';\r\n var request_1 = window.indexedDB.open(DB_CHECK_NAME_1);\r\n request_1.onsuccess = function () {\r\n request_1.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist_1) {\r\n window.indexedDB.deleteDatabase(DB_CHECK_NAME_1);\r\n }\r\n resolve(true);\r\n };\r\n request_1.onupgradeneeded = function () {\r\n preExist_1 = false;\r\n };\r\n request_1.onerror = function () {\r\n var _a;\r\n reject(((_a = request_1.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (!navigator || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nvar FirebaseError = /** @class */ (function (_super) {\r\n tslib.__extends(FirebaseError, _super);\r\n function FirebaseError(code, message) {\r\n var _this = _super.call(this, message) || this;\r\n _this.code = code;\r\n _this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\r\n }\r\n return _this;\r\n }\r\n return FirebaseError;\r\n}(Error));\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n ErrorFactory.prototype.create = function (code) {\r\n var data = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n data[_i - 1] = arguments[_i];\r\n }\r\n var customData = data[0] || {};\r\n var fullCode = this.service + \"/\" + code;\r\n var template = this.errors[code];\r\n var message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\r\n var error = new FirebaseError(fullCode, fullMessage);\r\n // Keys with an underscore at the end of their name are not included in\r\n // error.data for some reason.\r\n // TODO: Replace with Object.entries when lib is updated to es2017.\r\n for (var _a = 0, _b = Object.keys(customData); _a < _b.length; _a++) {\r\n var key = _b[_a];\r\n if (key.slice(-1) !== '_') {\r\n if (key in error) {\r\n console.warn(\"Overwriting FirebaseError base field \\\"\" + key + \"\\\" can cause unexpected behavior.\");\r\n }\r\n error[key] = customData[key];\r\n }\r\n }\r\n return error;\r\n };\r\n return ErrorFactory;\r\n}());\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, function (_, key) {\r\n var value = data[key];\r\n return value != null ? String(value) : \"<\" + key + \"?>\";\r\n });\r\n}\r\nvar PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims;\r\n var now = Math.floor(new Date().getTime() / 1000);\r\n var validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n var res = {};\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n var params = [];\r\n var _loop_1 = function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n };\r\n for (var _i = 0, _a = Object.entries(querystringParams); _i < _a.length; _i++) {\r\n var _b = _a[_i], key = _b[0], value = _b[1];\r\n _loop_1(key, value);\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var key = token.split('=');\r\n obj[key[0]] = key[1];\r\n }\r\n });\r\n return obj;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function () {\r\n function Sha1() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (var i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n var lengthMinusBlock = length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}());\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argumentNumber The index of the argument\r\n * @param optional Whether or not the argument is optional\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [];\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nvar DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nvar DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nvar MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nvar RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis, backoffFactor) {\r\n if (intervalMillis === void 0) { intervalMillis = DEFAULT_INTERVAL_MILLIS; }\r\n if (backoffFactor === void 0) { backoffFactor = DEFAULT_BACKOFF_FACTOR; }\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n var currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n var randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\nexports.CONSTANTS = CONSTANTS;\nexports.Deferred = Deferred;\nexports.ErrorFactory = ErrorFactory;\nexports.FirebaseError = FirebaseError;\nexports.MAX_VALUE_MILLIS = MAX_VALUE_MILLIS;\nexports.RANDOM_FACTOR = RANDOM_FACTOR;\nexports.Sha1 = Sha1;\nexports.areCookiesEnabled = areCookiesEnabled;\nexports.assert = assert;\nexports.assertionError = assertionError;\nexports.async = async;\nexports.base64 = base64;\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\nexports.calculateBackoffMillis = calculateBackoffMillis;\nexports.contains = contains;\nexports.createSubscribe = createSubscribe;\nexports.decode = decode;\nexports.deepCopy = deepCopy;\nexports.deepExtend = deepExtend;\nexports.errorPrefix = errorPrefix;\nexports.getUA = getUA;\nexports.isAdmin = isAdmin;\nexports.isBrowser = isBrowser;\nexports.isBrowserExtension = isBrowserExtension;\nexports.isElectron = isElectron;\nexports.isEmpty = isEmpty;\nexports.isIE = isIE;\nexports.isIndexedDBAvailable = isIndexedDBAvailable;\nexports.isMobileCordova = isMobileCordova;\nexports.isNode = isNode;\nexports.isNodeSdk = isNodeSdk;\nexports.isReactNative = isReactNative;\nexports.isSafari = isSafari;\nexports.isUWP = isUWP;\nexports.isValidFormat = isValidFormat;\nexports.isValidTimestamp = isValidTimestamp;\nexports.issuedAtTime = issuedAtTime;\nexports.jsonEval = jsonEval;\nexports.map = map;\nexports.querystring = querystring;\nexports.querystringDecode = querystringDecode;\nexports.safeGet = safeGet;\nexports.stringLength = stringLength;\nexports.stringToByteArray = stringToByteArray$1;\nexports.stringify = stringify;\nexports.validateArgCount = validateArgCount;\nexports.validateCallback = validateCallback;\nexports.validateContextObject = validateContextObject;\nexports.validateIndexedDBOpenable = validateIndexedDBOpenable;\nexports.validateNamespace = validateNamespace;\n//# sourceMappingURL=index.cjs.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3V0aWwvZGlzdC9pbmRleC5janMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDLEVBQUUsYUFBYSxFQUFDOztBQUU3RCxZQUFZLG1CQUFPLENBQUMsZ0RBQU87O0FBRTNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrQkFBa0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsOEJBQThCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MscUJBQU07QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix1QkFBdUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGdCQUFnQjtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLE1BQU0sSUFBSTs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxHQUFHO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixhQUFhLFdBQVc7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseUJBQXlCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxnQkFBZ0I7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isb0JBQW9CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFFBQVE7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsUUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxTQUFTO0FBQ2xEO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixPQUFPO0FBQy9CLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDJCQUEyQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix1QkFBdUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsdUJBQXVCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRCxXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQyxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQjtBQUNqQixnQkFBZ0I7QUFDaEIsb0JBQW9CO0FBQ3BCLHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIscUJBQXFCO0FBQ3JCLFlBQVk7QUFDWix5QkFBeUI7QUFDekIsY0FBYztBQUNkLHNCQUFzQjtBQUN0QixhQUFhO0FBQ2IsY0FBYztBQUNkLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsOEJBQThCO0FBQzlCLGdCQUFnQjtBQUNoQix1QkFBdUI7QUFDdkIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsbUJBQW1CO0FBQ25CLGFBQWE7QUFDYixlQUFlO0FBQ2YsaUJBQWlCO0FBQ2pCLDBCQUEwQjtBQUMxQixrQkFBa0I7QUFDbEIsZUFBZTtBQUNmLFlBQVk7QUFDWiw0QkFBNEI7QUFDNUIsdUJBQXVCO0FBQ3ZCLGNBQWM7QUFDZCxpQkFBaUI7QUFDakIscUJBQXFCO0FBQ3JCLGdCQUFnQjtBQUNoQixhQUFhO0FBQ2IscUJBQXFCO0FBQ3JCLHdCQUF3QjtBQUN4QixvQkFBb0I7QUFDcEIsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWCxtQkFBbUI7QUFDbkIseUJBQXlCO0FBQ3pCLGVBQWU7QUFDZixvQkFBb0I7QUFDcEIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQix3QkFBd0I7QUFDeEIsd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFDakMseUJBQXlCO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AZmlyZWJhc2UvdXRpbC9kaXN0L2luZGV4LmNqcy5qcz9jZDUxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblxudmFyIHRzbGliID0gcmVxdWlyZSgndHNsaWInKTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEBmaWxlb3ZlcnZpZXcgRmlyZWJhc2UgY29uc3RhbnRzLiAgU29tZSBvZiB0aGVzZSAoQGRlZmluZXMpIGNhbiBiZSBvdmVycmlkZGVuIGF0IGNvbXBpbGUtdGltZS5cclxuICovXHJcbnZhciBDT05TVEFOVFMgPSB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZWZpbmUge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBpcyB0aGUgY2xpZW50IE5vZGUuanMgU0RLLlxyXG4gICAgICovXHJcbiAgICBOT0RFX0NMSUVOVDogZmFsc2UsXHJcbiAgICAvKipcclxuICAgICAqIEBkZWZpbmUge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBpcyB0aGUgQWRtaW4gTm9kZS5qcyBTREsuXHJcbiAgICAgKi9cclxuICAgIE5PREVfQURNSU46IGZhbHNlLFxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlYmFzZSBTREsgVmVyc2lvblxyXG4gICAgICovXHJcbiAgICBTREtfVkVSU0lPTjogJyR7SlNDT1JFX1ZFUlNJT059J1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBwcm92aWRlZCBhc3NlcnRpb24gaXMgZmFsc3lcclxuICovXHJcbnZhciBhc3NlcnQgPSBmdW5jdGlvbiAoYXNzZXJ0aW9uLCBtZXNzYWdlKSB7XHJcbiAgICBpZiAoIWFzc2VydGlvbikge1xyXG4gICAgICAgIHRocm93IGFzc2VydGlvbkVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG59O1xyXG4vKipcclxuICogUmV0dXJucyBhbiBFcnJvciBvYmplY3Qgc3VpdGFibGUgZm9yIHRocm93aW5nLlxyXG4gKi9cclxudmFyIGFzc2VydGlvbkVycm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcclxuICAgIHJldHVybiBuZXcgRXJyb3IoJ0ZpcmViYXNlIERhdGFiYXNlICgnICtcclxuICAgICAgICBDT05TVEFOVFMuU0RLX1ZFUlNJT04gK1xyXG4gICAgICAgICcpIElOVEVSTkFMIEFTU0VSVCBGQUlMRUQ6ICcgK1xyXG4gICAgICAgIG1lc3NhZ2UpO1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG52YXIgc3RyaW5nVG9CeXRlQXJyYXkgPSBmdW5jdGlvbiAoc3RyKSB7XHJcbiAgICAvLyBUT0RPKHVzZXIpOiBVc2UgbmF0aXZlIGltcGxlbWVudGF0aW9ucyBpZi93aGVuIGF2YWlsYWJsZVxyXG4gICAgdmFyIG91dCA9IFtdO1xyXG4gICAgdmFyIHAgPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIGlmIChjIDwgMTI4KSB7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYyA8IDIwNDgpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiA2KSB8IDE5MjtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyAmIDYzKSB8IDEyODtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGMgJiAweGZjMDApID09PSAweGQ4MDAgJiZcclxuICAgICAgICAgICAgaSArIDEgPCBzdHIubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIChzdHIuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcclxuICAgICAgICAgICAgLy8gU3Vycm9nYXRlIFBhaXJcclxuICAgICAgICAgICAgYyA9IDB4MTAwMDAgKyAoKGMgJiAweDAzZmYpIDw8IDEwKSArIChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHgwM2ZmKTtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxOCkgfCAyNDA7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDEyKSAmIDYzKSB8IDEyODtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjID4+IDEyKSB8IDIyNDtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dDtcclxufTtcclxuLyoqXHJcbiAqIFR1cm5zIGFuIGFycmF5IG9mIG51bWJlcnMgaW50byB0aGUgc3RyaW5nIGdpdmVuIGJ5IHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZVxyXG4gKiBjaGFyYWN0ZXJzIHRvIHdoaWNoIHRoZSBudW1iZXJzIGNvcnJlc3BvbmQuXHJcbiAqIEBwYXJhbSBieXRlcyBBcnJheSBvZiBudW1iZXJzIHJlcHJlc2VudGluZyBjaGFyYWN0ZXJzLlxyXG4gKiBAcmV0dXJuIFN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgYXJyYXkuXHJcbiAqL1xyXG52YXIgYnl0ZUFycmF5VG9TdHJpbmcgPSBmdW5jdGlvbiAoYnl0ZXMpIHtcclxuICAgIC8vIFRPRE8odXNlcik6IFVzZSBuYXRpdmUgaW1wbGVtZW50YXRpb25zIGlmL3doZW4gYXZhaWxhYmxlXHJcbiAgICB2YXIgb3V0ID0gW107XHJcbiAgICB2YXIgcG9zID0gMCwgYyA9IDA7XHJcbiAgICB3aGlsZSAocG9zIDwgYnl0ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFyIGMxID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgIGlmIChjMSA8IDEyOCkge1xyXG4gICAgICAgICAgICBvdXRbYysrXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYzEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjMSA+IDE5MSAmJiBjMSA8IDIyNCkge1xyXG4gICAgICAgICAgICB2YXIgYzIgPSBieXRlc1twb3MrK107XHJcbiAgICAgICAgICAgIG91dFtjKytdID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMxICYgMzEpIDw8IDYpIHwgKGMyICYgNjMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYzEgPiAyMzkgJiYgYzEgPCAzNjUpIHtcclxuICAgICAgICAgICAgLy8gU3Vycm9nYXRlIFBhaXJcclxuICAgICAgICAgICAgdmFyIGMyID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgICAgICB2YXIgYzMgPSBieXRlc1twb3MrK107XHJcbiAgICAgICAgICAgIHZhciBjNCA9IGJ5dGVzW3BvcysrXTtcclxuICAgICAgICAgICAgdmFyIHUgPSAoKChjMSAmIDcpIDw8IDE4KSB8ICgoYzIgJiA2MykgPDwgMTIpIHwgKChjMyAmIDYzKSA8PCA2KSB8IChjNCAmIDYzKSkgLVxyXG4gICAgICAgICAgICAgICAgMHgxMDAwMDtcclxuICAgICAgICAgICAgb3V0W2MrK10gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZDgwMCArICh1ID4+IDEwKSk7XHJcbiAgICAgICAgICAgIG91dFtjKytdID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGRjMDAgKyAodSAmIDEwMjMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBjMiA9IGJ5dGVzW3BvcysrXTtcclxuICAgICAgICAgICAgdmFyIGMzID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgICAgICBvdXRbYysrXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYgNjMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3V0LmpvaW4oJycpO1xyXG59O1xyXG4vLyBXZSBkZWZpbmUgaXQgYXMgYW4gb2JqZWN0IGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNsYXNzIGJlY2F1c2UgYSBjbGFzcyBjb21waWxlZCBkb3duIHRvIGVzNSBjYW4ndFxyXG4vLyBiZSB0cmVlc2hha2VkLiBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvMTY5MVxyXG4vLyBTdGF0aWMgbG9va3VwIG1hcHMsIGxhemlseSBwb3B1bGF0ZWQgYnkgaW5pdF8oKVxyXG52YXIgYmFzZTY0ID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGJ5dGVzIHRvIGNoYXJhY3RlcnMuXHJcbiAgICAgKi9cclxuICAgIGJ5dGVUb0NoYXJNYXBfOiBudWxsLFxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGNoYXJhY3RlcnMgdG8gYnl0ZXMuXHJcbiAgICAgKi9cclxuICAgIGNoYXJUb0J5dGVNYXBfOiBudWxsLFxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGJ5dGVzIHRvIHdlYnNhZmUgY2hhcmFjdGVycy5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIGJ5dGVUb0NoYXJNYXBXZWJTYWZlXzogbnVsbCxcclxuICAgIC8qKlxyXG4gICAgICogTWFwcyB3ZWJzYWZlIGNoYXJhY3RlcnMgdG8gYnl0ZXMuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBjaGFyVG9CeXRlTWFwV2ViU2FmZV86IG51bGwsXHJcbiAgICAvKipcclxuICAgICAqIE91ciBkZWZhdWx0IGFscGhhYmV0LCBzaGFyZWQgYmV0d2VlblxyXG4gICAgICogRU5DT0RFRF9WQUxTIGFuZCBFTkNPREVEX1ZBTFNfV0VCU0FGRVxyXG4gICAgICovXHJcbiAgICBFTkNPREVEX1ZBTFNfQkFTRTogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyArICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgKyAnMDEyMzQ1Njc4OScsXHJcbiAgICAvKipcclxuICAgICAqIE91ciBkZWZhdWx0IGFscGhhYmV0LiBWYWx1ZSA2NCAoPSkgaXMgc3BlY2lhbDsgaXQgbWVhbnMgXCJub3RoaW5nLlwiXHJcbiAgICAgKi9cclxuICAgIGdldCBFTkNPREVEX1ZBTFMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UgKyAnKy89JztcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIE91ciB3ZWJzYWZlIGFscGhhYmV0LlxyXG4gICAgICovXHJcbiAgICBnZXQgRU5DT0RFRF9WQUxTX1dFQlNBRkUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UgKyAnLV8uJztcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhpcyBicm93c2VyIHN1cHBvcnRzIHRoZSBhdG9iIGFuZCBidG9hIGZ1bmN0aW9ucy4gVGhpcyBleHRlbnNpb25cclxuICAgICAqIHN0YXJ0ZWQgYXQgTW96aWxsYSBidXQgaXMgbm93IGltcGxlbWVudGVkIGJ5IG1hbnkgYnJvd3NlcnMuIFdlIHVzZSB0aGVcclxuICAgICAqIEFTU1VNRV8qIHZhcmlhYmxlcyB0byBhdm9pZCBwdWxsaW5nIGluIHRoZSBmdWxsIHVzZXJhZ2VudCBkZXRlY3Rpb24gbGlicmFyeVxyXG4gICAgICogYnV0IHN0aWxsIGFsbG93aW5nIHRoZSBzdGFuZGFyZCBwZXItYnJvd3NlciBjb21waWxhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBIQVNfTkFUSVZFX1NVUFBPUlQ6IHR5cGVvZiBhdG9iID09PSAnZnVuY3Rpb24nLFxyXG4gICAgLyoqXHJcbiAgICAgKiBCYXNlNjQtZW5jb2RlIGFuIGFycmF5IG9mIGJ5dGVzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpbnB1dCBBbiBhcnJheSBvZiBieXRlcyAobnVtYmVycyB3aXRoXHJcbiAgICAgKiAgICAgdmFsdWUgaW4gWzAsIDI1NV0pIHRvIGVuY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIEJvb2xlYW4gaW5kaWNhdGluZyB3ZSBzaG91bGQgdXNlIHRoZVxyXG4gICAgICogICAgIGFsdGVybmF0aXZlIGFscGhhYmV0LlxyXG4gICAgICogQHJldHVybiBUaGUgYmFzZTY0IGVuY29kZWQgc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBlbmNvZGVCeXRlQXJyYXk6IGZ1bmN0aW9uIChpbnB1dCwgd2ViU2FmZSkge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2VuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluaXRfKCk7XHJcbiAgICAgICAgdmFyIGJ5dGVUb0NoYXJNYXAgPSB3ZWJTYWZlXHJcbiAgICAgICAgICAgID8gdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9cclxuICAgICAgICAgICAgOiB0aGlzLmJ5dGVUb0NoYXJNYXBfO1xyXG4gICAgICAgIHZhciBvdXRwdXQgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XHJcbiAgICAgICAgICAgIHZhciBieXRlMSA9IGlucHV0W2ldO1xyXG4gICAgICAgICAgICB2YXIgaGF2ZUJ5dGUyID0gaSArIDEgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMiA9IGhhdmVCeXRlMiA/IGlucHV0W2kgKyAxXSA6IDA7XHJcbiAgICAgICAgICAgIHZhciBoYXZlQnl0ZTMgPSBpICsgMiA8IGlucHV0Lmxlbmd0aDtcclxuICAgICAgICAgICAgdmFyIGJ5dGUzID0gaGF2ZUJ5dGUzID8gaW5wdXRbaSArIDJdIDogMDtcclxuICAgICAgICAgICAgdmFyIG91dEJ5dGUxID0gYnl0ZTEgPj4gMjtcclxuICAgICAgICAgICAgdmFyIG91dEJ5dGUyID0gKChieXRlMSAmIDB4MDMpIDw8IDQpIHwgKGJ5dGUyID4+IDQpO1xyXG4gICAgICAgICAgICB2YXIgb3V0Qnl0ZTMgPSAoKGJ5dGUyICYgMHgwZikgPDwgMikgfCAoYnl0ZTMgPj4gNik7XHJcbiAgICAgICAgICAgIHZhciBvdXRCeXRlNCA9IGJ5dGUzICYgMHgzZjtcclxuICAgICAgICAgICAgaWYgKCFoYXZlQnl0ZTMpIHtcclxuICAgICAgICAgICAgICAgIG91dEJ5dGU0ID0gNjQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWhhdmVCeXRlMikge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dEJ5dGUzID0gNjQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3V0cHV0LnB1c2goYnl0ZVRvQ2hhck1hcFtvdXRCeXRlMV0sIGJ5dGVUb0NoYXJNYXBbb3V0Qnl0ZTJdLCBieXRlVG9DaGFyTWFwW291dEJ5dGUzXSwgYnl0ZVRvQ2hhck1hcFtvdXRCeXRlNF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0LmpvaW4oJycpO1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogQmFzZTY0LWVuY29kZSBhIHN0cmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaW5wdXQgQSBzdHJpbmcgdG8gZW5jb2RlLlxyXG4gICAgICogQHBhcmFtIHdlYlNhZmUgSWYgdHJ1ZSwgd2Ugc2hvdWxkIHVzZSB0aGVcclxuICAgICAqICAgICBhbHRlcm5hdGl2ZSBhbHBoYWJldC5cclxuICAgICAqIEByZXR1cm4gVGhlIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgZW5jb2RlU3RyaW5nOiBmdW5jdGlvbiAoaW5wdXQsIHdlYlNhZmUpIHtcclxuICAgICAgICAvLyBTaG9ydGN1dCBmb3IgTW96aWxsYSBicm93c2VycyB0aGF0IGltcGxlbWVudFxyXG4gICAgICAgIC8vIGEgbmF0aXZlIGJhc2U2NCBlbmNvZGVyIGluIHRoZSBmb3JtIG9mIFwiYnRvYS9hdG9iXCJcclxuICAgICAgICBpZiAodGhpcy5IQVNfTkFUSVZFX1NVUFBPUlQgJiYgIXdlYlNhZmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0b2EoaW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5lbmNvZGVCeXRlQXJyYXkoc3RyaW5nVG9CeXRlQXJyYXkoaW5wdXQpLCB3ZWJTYWZlKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIEJhc2U2NC1kZWNvZGUgYSBzdHJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlucHV0IHRvIGRlY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIFRydWUgaWYgd2Ugc2hvdWxkIHVzZSB0aGVcclxuICAgICAqICAgICBhbHRlcm5hdGl2ZSBhbHBoYWJldC5cclxuICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgZGVjb2RlZCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgZGVjb2RlU3RyaW5nOiBmdW5jdGlvbiAoaW5wdXQsIHdlYlNhZmUpIHtcclxuICAgICAgICAvLyBTaG9ydGN1dCBmb3IgTW96aWxsYSBicm93c2VycyB0aGF0IGltcGxlbWVudFxyXG4gICAgICAgIC8vIGEgbmF0aXZlIGJhc2U2NCBlbmNvZGVyIGluIHRoZSBmb3JtIG9mIFwiYnRvYS9hdG9iXCJcclxuICAgICAgICBpZiAodGhpcy5IQVNfTkFUSVZFX1NVUFBPUlQgJiYgIXdlYlNhZmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF0b2IoaW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZUFycmF5VG9TdHJpbmcodGhpcy5kZWNvZGVTdHJpbmdUb0J5dGVBcnJheShpbnB1dCwgd2ViU2FmZSkpO1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogQmFzZTY0LWRlY29kZSBhIHN0cmluZy5cclxuICAgICAqXHJcbiAgICAgKiBJbiBiYXNlLTY0IGRlY29kaW5nLCBncm91cHMgb2YgZm91ciBjaGFyYWN0ZXJzIGFyZSBjb252ZXJ0ZWQgaW50byB0aHJlZVxyXG4gICAgICogYnl0ZXMuICBJZiB0aGUgZW5jb2RlciBkaWQgbm90IGFwcGx5IHBhZGRpbmcsIHRoZSBpbnB1dCBsZW5ndGggbWF5IG5vdFxyXG4gICAgICogYmUgYSBtdWx0aXBsZSBvZiA0LlxyXG4gICAgICpcclxuICAgICAqIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgZ3JvdXAgd2lsbCBoYXZlIGZld2VyIHRoYW4gNCBjaGFyYWN0ZXJzLCBhbmRcclxuICAgICAqIHBhZGRpbmcgd2lsbCBiZSBpbmZlcnJlZC4gIElmIHRoZSBncm91cCBoYXMgb25lIG9yIHR3byBjaGFyYWN0ZXJzLCBpdCBkZWNvZGVzXHJcbiAgICAgKiB0byBvbmUgYnl0ZS4gIElmIHRoZSBncm91cCBoYXMgdGhyZWUgY2hhcmFjdGVycywgaXQgZGVjb2RlcyB0byB0d28gYnl0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlucHV0IElucHV0IHRvIGRlY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIFRydWUgaWYgd2Ugc2hvdWxkIHVzZSB0aGUgd2ViLXNhZmUgYWxwaGFiZXQuXHJcbiAgICAgKiBAcmV0dXJuIGJ5dGVzIHJlcHJlc2VudGluZyB0aGUgZGVjb2RlZCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgZGVjb2RlU3RyaW5nVG9CeXRlQXJyYXk6IGZ1bmN0aW9uIChpbnB1dCwgd2ViU2FmZSkge1xyXG4gICAgICAgIHRoaXMuaW5pdF8oKTtcclxuICAgICAgICB2YXIgY2hhclRvQnl0ZU1hcCA9IHdlYlNhZmVcclxuICAgICAgICAgICAgPyB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1xyXG4gICAgICAgICAgICA6IHRoaXMuY2hhclRvQnl0ZU1hcF87XHJcbiAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOykge1xyXG4gICAgICAgICAgICB2YXIgYnl0ZTEgPSBjaGFyVG9CeXRlTWFwW2lucHV0LmNoYXJBdChpKyspXTtcclxuICAgICAgICAgICAgdmFyIGhhdmVCeXRlMiA9IGkgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMiA9IGhhdmVCeXRlMiA/IGNoYXJUb0J5dGVNYXBbaW5wdXQuY2hhckF0KGkpXSA6IDA7XHJcbiAgICAgICAgICAgICsraTtcclxuICAgICAgICAgICAgdmFyIGhhdmVCeXRlMyA9IGkgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMyA9IGhhdmVCeXRlMyA/IGNoYXJUb0J5dGVNYXBbaW5wdXQuY2hhckF0KGkpXSA6IDY0O1xyXG4gICAgICAgICAgICArK2k7XHJcbiAgICAgICAgICAgIHZhciBoYXZlQnl0ZTQgPSBpIDwgaW5wdXQubGVuZ3RoO1xyXG4gICAgICAgICAgICB2YXIgYnl0ZTQgPSBoYXZlQnl0ZTQgPyBjaGFyVG9CeXRlTWFwW2lucHV0LmNoYXJBdChpKV0gOiA2NDtcclxuICAgICAgICAgICAgKytpO1xyXG4gICAgICAgICAgICBpZiAoYnl0ZTEgPT0gbnVsbCB8fCBieXRlMiA9PSBudWxsIHx8IGJ5dGUzID09IG51bGwgfHwgYnl0ZTQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgb3V0Qnl0ZTEgPSAoYnl0ZTEgPDwgMikgfCAoYnl0ZTIgPj4gNCk7XHJcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKG91dEJ5dGUxKTtcclxuICAgICAgICAgICAgaWYgKGJ5dGUzICE9PSA2NCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG91dEJ5dGUyID0gKChieXRlMiA8PCA0KSAmIDB4ZjApIHwgKGJ5dGUzID4+IDIpO1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0LnB1c2gob3V0Qnl0ZTIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJ5dGU0ICE9PSA2NCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBvdXRCeXRlMyA9ICgoYnl0ZTMgPDwgNikgJiAweGMwKSB8IGJ5dGU0O1xyXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKG91dEJ5dGUzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogTGF6eSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIENhbGxlZCBiZWZvcmVcclxuICAgICAqIGFjY2Vzc2luZyBhbnkgb2YgdGhlIHN0YXRpYyBtYXAgdmFyaWFibGVzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgaW5pdF86IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYnl0ZVRvQ2hhck1hcF8pIHtcclxuICAgICAgICAgICAgdGhpcy5ieXRlVG9DaGFyTWFwXyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBfID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcFdlYlNhZmVfID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuY2hhclRvQnl0ZU1hcFdlYlNhZmVfID0ge307XHJcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgcXVpY2sgbWFwcGluZ3MgYmFjayBhbmQgZm9ydGgsIHNvIHdlIHByZWNvbXB1dGUgdHdvIG1hcHMuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5FTkNPREVEX1ZBTFMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcF9baV0gPSB0aGlzLkVOQ09ERURfVkFMUy5jaGFyQXQoaSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBfW3RoaXMuYnl0ZVRvQ2hhck1hcF9baV1dID0gaTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcFdlYlNhZmVfW2ldID0gdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQoaSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1t0aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlX1tpXV0gPSBpO1xyXG4gICAgICAgICAgICAgICAgLy8gQmUgZm9yZ2l2aW5nIHdoZW4gZGVjb2RpbmcgYW5kIGNvcnJlY3RseSBkZWNvZGUgYm90aCBlbmNvZGluZ3MuXHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSB0aGlzLkVOQ09ERURfVkFMU19CQVNFLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQoaSldID0gaTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1t0aGlzLkVOQ09ERURfVkFMUy5jaGFyQXQoaSldID0gaTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuLyoqXHJcbiAqIFVSTC1zYWZlIGJhc2U2NCBlbmNvZGluZ1xyXG4gKi9cclxudmFyIGJhc2U2NEVuY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHZhciB1dGY4Qnl0ZXMgPSBzdHJpbmdUb0J5dGVBcnJheShzdHIpO1xyXG4gICAgcmV0dXJuIGJhc2U2NC5lbmNvZGVCeXRlQXJyYXkodXRmOEJ5dGVzLCB0cnVlKTtcclxufTtcclxuLyoqXHJcbiAqIFVSTC1zYWZlIGJhc2U2NCBkZWNvZGluZ1xyXG4gKlxyXG4gKiBOT1RFOiBETyBOT1QgdXNlIHRoZSBnbG9iYWwgYXRvYigpIGZ1bmN0aW9uIC0gaXQgZG9lcyBOT1Qgc3VwcG9ydCB0aGVcclxuICogYmFzZTY0VXJsIHZhcmlhbnQgZW5jb2RpbmcuXHJcbiAqXHJcbiAqIEBwYXJhbSBzdHIgVG8gYmUgZGVjb2RlZFxyXG4gKiBAcmV0dXJuIERlY29kZWQgcmVzdWx0LCBpZiBwb3NzaWJsZVxyXG4gKi9cclxudmFyIGJhc2U2NERlY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgcmV0dXJuIGJhc2U2NC5kZWNvZGVTdHJpbmcoc3RyLCB0cnVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignYmFzZTY0RGVjb2RlIGZhaWxlZDogJywgZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIERvIGEgZGVlcC1jb3B5IG9mIGJhc2ljIEphdmFTY3JpcHQgT2JqZWN0cyBvciBBcnJheXMuXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWVwQ29weSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIGRlZXBFeHRlbmQodW5kZWZpbmVkLCB2YWx1ZSk7XHJcbn1cclxuLyoqXHJcbiAqIENvcHkgcHJvcGVydGllcyBmcm9tIHNvdXJjZSB0byB0YXJnZXQgKHJlY3Vyc2l2ZWx5IGFsbG93cyBleHRlbnNpb25cclxuICogb2YgT2JqZWN0cyBhbmQgQXJyYXlzKS4gIFNjYWxhciB2YWx1ZXMgaW4gdGhlIHRhcmdldCBhcmUgb3Zlci13cml0dGVuLlxyXG4gKiBJZiB0YXJnZXQgaXMgdW5kZWZpbmVkLCBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUgd2lsbCBiZSBjcmVhdGVkXHJcbiAqIChhbmQgcmV0dXJuZWQpLlxyXG4gKlxyXG4gKiBXZSByZWN1cnNpdmVseSBjb3B5IGFsbCBjaGlsZCBwcm9wZXJ0aWVzIG9mIHBsYWluIE9iamVjdHMgaW4gdGhlIHNvdXJjZS0gc29cclxuICogdGhhdCBuYW1lc3BhY2UtIGxpa2UgZGljdGlvbmFyaWVzIGFyZSBtZXJnZWQuXHJcbiAqXHJcbiAqIE5vdGUgdGhhdCB0aGUgdGFyZ2V0IGNhbiBiZSBhIGZ1bmN0aW9uLCBpbiB3aGljaCBjYXNlIHRoZSBwcm9wZXJ0aWVzIGluXHJcbiAqIHRoZSBzb3VyY2UgT2JqZWN0IGFyZSBjb3BpZWQgb250byBpdCBhcyBzdGF0aWMgcHJvcGVydGllcyBvZiB0aGUgRnVuY3Rpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldCwgc291cmNlKSB7XHJcbiAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAoc291cmNlLmNvbnN0cnVjdG9yKSB7XHJcbiAgICAgICAgY2FzZSBEYXRlOlxyXG4gICAgICAgICAgICAvLyBUcmVhdCBEYXRlcyBsaWtlIHNjYWxhcnM7IGlmIHRoZSB0YXJnZXQgZGF0ZSBvYmplY3QgaGFkIGFueSBjaGlsZFxyXG4gICAgICAgICAgICAvLyBwcm9wZXJ0aWVzIC0gdGhleSB3aWxsIGJlIGxvc3QhXHJcbiAgICAgICAgICAgIHZhciBkYXRlVmFsdWUgPSBzb3VyY2U7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlVmFsdWUuZ2V0VGltZSgpKTtcclxuICAgICAgICBjYXNlIE9iamVjdDpcclxuICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEFycmF5OlxyXG4gICAgICAgICAgICAvLyBBbHdheXMgY29weSB0aGUgYXJyYXkgc291cmNlIGFuZCBvdmVyd3JpdGUgdGhlIHRhcmdldC5cclxuICAgICAgICAgICAgdGFyZ2V0ID0gW107XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIC8vIE5vdCBhIHBsYWluIE9iamVjdCAtIHRyZWF0IGl0IGFzIGEgc2NhbGFyLlxyXG4gICAgICAgICAgICByZXR1cm4gc291cmNlO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgcHJvcCBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gZGVlcEV4dGVuZCh0YXJnZXRbcHJvcF0sIHNvdXJjZVtwcm9wXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG59XG5cbi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcbnZhciBEZWZlcnJlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIERlZmVycmVkKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5yZWplY3QgPSBmdW5jdGlvbiAoKSB7IH07XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlID0gZnVuY3Rpb24gKCkgeyB9O1xyXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgX3RoaXMucmVzb2x2ZSA9IHJlc29sdmU7XHJcbiAgICAgICAgICAgIF90aGlzLnJlamVjdCA9IHJlamVjdDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT3VyIEFQSSBpbnRlcm5hbHMgYXJlIG5vdCBwcm9taXNlaWZpZWQgYW5kIGNhbm5vdCBiZWNhdXNlIG91ciBjYWxsYmFjayBBUElzIGhhdmUgc3VidGxlIGV4cGVjdGF0aW9ucyBhcm91bmRcclxuICAgICAqIGludm9raW5nIHByb21pc2VzIGlubGluZSwgd2hpY2ggUHJvbWlzZXMgYXJlIGZvcmJpZGRlbiB0byBkby4gVGhpcyBtZXRob2QgYWNjZXB0cyBhbiBvcHRpb25hbCBub2RlLXN0eWxlIGNhbGxiYWNrXHJcbiAgICAgKiBhbmQgcmV0dXJucyBhIG5vZGUtc3R5bGUgY2FsbGJhY2sgd2hpY2ggd2lsbCByZXNvbHZlIG9yIHJlamVjdCB0aGUgRGVmZXJyZWQncyBwcm9taXNlLlxyXG4gICAgICovXHJcbiAgICBEZWZlcnJlZC5wcm90b3R5cGUud3JhcENhbGxiYWNrID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGVycm9yLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLnJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5yZXNvbHZlKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBBdHRhY2hpbmcgbm9vcCBoYW5kbGVyIGp1c3QgaW4gY2FzZSBkZXZlbG9wZXIgd2Fzbid0IGV4cGVjdGluZ1xyXG4gICAgICAgICAgICAgICAgLy8gcHJvbWlzZXNcclxuICAgICAgICAgICAgICAgIF90aGlzLnByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkgeyB9KTtcclxuICAgICAgICAgICAgICAgIC8vIFNvbWUgb2Ygb3VyIGNhbGxiYWNrcyBkb24ndCBleHBlY3QgYSB2YWx1ZSBhbmQgb3VyIG93biB0ZXN0c1xyXG4gICAgICAgICAgICAgICAgLy8gYXNzZXJ0IHRoYXQgdGhlIHBhcmFtZXRlciBsZW5ndGggaXMgMVxyXG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBEZWZlcnJlZDtcclxufSgpKTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIFJldHVybnMgbmF2aWdhdG9yLnVzZXJBZ2VudCBzdHJpbmcgb3IgJycgaWYgaXQncyBub3QgZGVmaW5lZC5cclxuICogQHJldHVybiB1c2VyIGFnZW50IHN0cmluZ1xyXG4gKi9cclxuZnVuY3Rpb24gZ2V0VUEoKSB7XHJcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICB0eXBlb2YgbmF2aWdhdG9yWyd1c2VyQWdlbnQnXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gbmF2aWdhdG9yWyd1c2VyQWdlbnQnXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4vKipcclxuICogRGV0ZWN0IENvcmRvdmEgLyBQaG9uZUdhcCAvIElvbmljIGZyYW1ld29ya3Mgb24gYSBtb2JpbGUgZGV2aWNlLlxyXG4gKlxyXG4gKiBEZWxpYmVyYXRlbHkgZG9lcyBub3QgcmVseSBvbiBjaGVja2luZyBgZmlsZTovL2AgVVJMcyAoYXMgdGhpcyBmYWlscyBQaG9uZUdhcFxyXG4gKiBpbiB0aGUgUmlwcGxlIGVtdWxhdG9yKSBub3IgQ29yZG92YSBgb25EZXZpY2VSZWFkeWAsIHdoaWNoIHdvdWxkIG5vcm1hbGx5XHJcbiAqIHdhaXQgZm9yIGEgY2FsbGJhY2suXHJcbiAqL1xyXG5mdW5jdGlvbiBpc01vYmlsZUNvcmRvdmEoKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZSBTZXR0aW5nIHVwIGFuIGJyb2FkbHkgYXBwbGljYWJsZSBpbmRleCBzaWduYXR1cmUgZm9yIFdpbmRvd1xyXG4gICAgICAgIC8vIGp1c3QgdG8gZGVhbCB3aXRoIHRoaXMgY2FzZSB3b3VsZCBwcm9iYWJseSBiZSBhIGJhZCBpZGVhLlxyXG4gICAgICAgICEhKHdpbmRvd1snY29yZG92YSddIHx8IHdpbmRvd1sncGhvbmVnYXAnXSB8fCB3aW5kb3dbJ1Bob25lR2FwJ10pICYmXHJcbiAgICAgICAgL2lvc3xpcGhvbmV8aXBvZHxpcGFkfGFuZHJvaWR8YmxhY2tiZXJyeXxpZW1vYmlsZS9pLnRlc3QoZ2V0VUEoKSkpO1xyXG59XHJcbi8qKlxyXG4gKiBEZXRlY3QgTm9kZS5qcy5cclxuICpcclxuICogQHJldHVybiB0cnVlIGlmIE5vZGUuanMgZW52aXJvbm1lbnQgaXMgZGV0ZWN0ZWQuXHJcbiAqL1xyXG4vLyBOb2RlIGRldGVjdGlvbiBsb2dpYyBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vaWxpYWthbi9kZXRlY3Qtbm9kZS9cclxuZnVuY3Rpb24gaXNOb2RlKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChnbG9iYWwucHJvY2VzcykgPT09ICdbb2JqZWN0IHByb2Nlc3NdJyk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogRGV0ZWN0IEJyb3dzZXIgRW52aXJvbm1lbnRcclxuICovXHJcbmZ1bmN0aW9uIGlzQnJvd3NlcigpIHtcclxuICAgIHJldHVybiB0eXBlb2Ygc2VsZiA9PT0gJ29iamVjdCcgJiYgc2VsZi5zZWxmID09PSBzZWxmO1xyXG59XHJcbmZ1bmN0aW9uIGlzQnJvd3NlckV4dGVuc2lvbigpIHtcclxuICAgIHZhciBydW50aW1lID0gdHlwZW9mIGNocm9tZSA9PT0gJ29iamVjdCdcclxuICAgICAgICA/IGNocm9tZS5ydW50aW1lXHJcbiAgICAgICAgOiB0eXBlb2YgYnJvd3NlciA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgPyBicm93c2VyLnJ1bnRpbWVcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdHlwZW9mIHJ1bnRpbWUgPT09ICdvYmplY3QnICYmIHJ1bnRpbWUuaWQgIT09IHVuZGVmaW5lZDtcclxufVxyXG4vKipcclxuICogRGV0ZWN0IFJlYWN0IE5hdGl2ZS5cclxuICpcclxuICogQHJldHVybiB0cnVlIGlmIFJlYWN0TmF0aXZlIGVudmlyb25tZW50IGlzIGRldGVjdGVkLlxyXG4gKi9cclxuZnVuY3Rpb24gaXNSZWFjdE5hdGl2ZSgpIHtcclxuICAgIHJldHVybiAodHlwZW9mIG5hdmlnYXRvciA9PT0gJ29iamVjdCcgJiYgbmF2aWdhdG9yWydwcm9kdWN0J10gPT09ICdSZWFjdE5hdGl2ZScpO1xyXG59XHJcbi8qKiBEZXRlY3RzIEVsZWN0cm9uIGFwcHMuICovXHJcbmZ1bmN0aW9uIGlzRWxlY3Ryb24oKSB7XHJcbiAgICByZXR1cm4gZ2V0VUEoKS5pbmRleE9mKCdFbGVjdHJvbi8nKSA+PSAwO1xyXG59XHJcbi8qKiBEZXRlY3RzIEludGVybmV0IEV4cGxvcmVyLiAqL1xyXG5mdW5jdGlvbiBpc0lFKCkge1xyXG4gICAgdmFyIHVhID0gZ2V0VUEoKTtcclxuICAgIHJldHVybiB1YS5pbmRleE9mKCdNU0lFICcpID49IDAgfHwgdWEuaW5kZXhPZignVHJpZGVudC8nKSA+PSAwO1xyXG59XHJcbi8qKiBEZXRlY3RzIFVuaXZlcnNhbCBXaW5kb3dzIFBsYXRmb3JtIGFwcHMuICovXHJcbmZ1bmN0aW9uIGlzVVdQKCkge1xyXG4gICAgcmV0dXJuIGdldFVBKCkuaW5kZXhPZignTVNBcHBIb3N0LycpID49IDA7XHJcbn1cclxuLyoqXHJcbiAqIERldGVjdCB3aGV0aGVyIHRoZSBjdXJyZW50IFNESyBidWlsZCBpcyB0aGUgTm9kZSB2ZXJzaW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHRydWUgaWYgaXQncyB0aGUgTm9kZSBTREsgYnVpbGQuXHJcbiAqL1xyXG5mdW5jdGlvbiBpc05vZGVTZGsoKSB7XHJcbiAgICByZXR1cm4gQ09OU1RBTlRTLk5PREVfQ0xJRU5UID09PSB0cnVlIHx8IENPTlNUQU5UUy5OT0RFX0FETUlOID09PSB0cnVlO1xyXG59XHJcbi8qKiBSZXR1cm5zIHRydWUgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gU2FmYXJpLiAqL1xyXG5mdW5jdGlvbiBpc1NhZmFyaSgpIHtcclxuICAgIHJldHVybiAoIWlzTm9kZSgpICYmXHJcbiAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnU2FmYXJpJykgJiZcclxuICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJykpO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgaW5kZXhlZERCIGlzIHN1cHBvcnRlZCBieSBjdXJyZW50IGJyb3dzZXIvc2VydmljZSB3b3JrZXIgY29udGV4dFxyXG4gKiBAcmV0dXJuIHRydWUgaWYgaW5kZXhlZERCIGlzIHN1cHBvcnRlZCBieSBjdXJyZW50IGJyb3dzZXIvc2VydmljZSB3b3JrZXIgY29udGV4dFxyXG4gKi9cclxuZnVuY3Rpb24gaXNJbmRleGVkREJBdmFpbGFibGUoKSB7XHJcbiAgICByZXR1cm4gJ2luZGV4ZWREQicgaW4gc2VsZiAmJiBpbmRleGVkREIgIT0gbnVsbDtcclxufVxyXG4vKipcclxuICogVGhpcyBtZXRob2QgdmFsaWRhdGVzIGJyb3dzZXIgY29udGV4dCBmb3IgaW5kZXhlZERCIGJ5IG9wZW5pbmcgYSBkdW1teSBpbmRleGVkREIgZGF0YWJhc2UgYW5kIHJlamVjdFxyXG4gKiBpZiBlcnJvcnMgb2NjdXIgZHVyaW5nIHRoZSBkYXRhYmFzZSBvcGVuIG9wZXJhdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIHZhbGlkYXRlSW5kZXhlZERCT3BlbmFibGUoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBwcmVFeGlzdF8xID0gdHJ1ZTtcclxuICAgICAgICAgICAgdmFyIERCX0NIRUNLX05BTUVfMSA9ICd2YWxpZGF0ZS1icm93c2VyLWNvbnRleHQtZm9yLWluZGV4ZWRkYi1hbmFseXRpY3MtbW9kdWxlJztcclxuICAgICAgICAgICAgdmFyIHJlcXVlc3RfMSA9IHdpbmRvdy5pbmRleGVkREIub3BlbihEQl9DSEVDS19OQU1FXzEpO1xyXG4gICAgICAgICAgICByZXF1ZXN0XzEub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmVxdWVzdF8xLnJlc3VsdC5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVsZXRlIGRhdGFiYXNlIG9ubHkgd2hlbiBpdCBkb2Vzbid0IHByZS1leGlzdFxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmVFeGlzdF8xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShEQl9DSEVDS19OQU1FXzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmVxdWVzdF8xLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHByZUV4aXN0XzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmVxdWVzdF8xLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoKChfYSA9IHJlcXVlc3RfMS5lcnJvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1lc3NhZ2UpIHx8ICcnKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuLyoqXHJcbiAqXHJcbiAqIFRoaXMgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGNvb2tpZSBpcyBlbmFibGVkIHdpdGhpbiBjdXJyZW50IGJyb3dzZXJcclxuICogQHJldHVybiB0cnVlIGlmIGNvb2tpZSBpcyBlbmFibGVkIHdpdGhpbiBjdXJyZW50IGJyb3dzZXJcclxuICovXHJcbmZ1bmN0aW9uIGFyZUNvb2tpZXNFbmFibGVkKCkge1xyXG4gICAgaWYgKCFuYXZpZ2F0b3IgfHwgIW5hdmlnYXRvci5jb29raWVFbmFibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxudmFyIEVSUk9SX05BTUUgPSAnRmlyZWJhc2VFcnJvcic7XHJcbi8vIEJhc2VkIG9uIGNvZGUgZnJvbTpcclxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRXJyb3IjQ3VzdG9tX0Vycm9yX1R5cGVzXHJcbnZhciBGaXJlYmFzZUVycm9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgdHNsaWIuX19leHRlbmRzKEZpcmViYXNlRXJyb3IsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBGaXJlYmFzZUVycm9yKGNvZGUsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBtZXNzYWdlKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmNvZGUgPSBjb2RlO1xyXG4gICAgICAgIF90aGlzLm5hbWUgPSBFUlJPUl9OQU1FO1xyXG4gICAgICAgIC8vIEZpeCBGb3IgRVM1XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0LXdpa2kvYmxvYi9tYXN0ZXIvQnJlYWtpbmctQ2hhbmdlcy5tZCNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcclxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX3RoaXMsIEZpcmViYXNlRXJyb3IucHJvdG90eXBlKTtcclxuICAgICAgICAvLyBNYWludGFpbnMgcHJvcGVyIHN0YWNrIHRyYWNlIGZvciB3aGVyZSBvdXIgZXJyb3Igd2FzIHRocm93bi5cclxuICAgICAgICAvLyBPbmx5IGF2YWlsYWJsZSBvbiBWOC5cclxuICAgICAgICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcclxuICAgICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoX3RoaXMsIEVycm9yRmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEZpcmViYXNlRXJyb3I7XHJcbn0oRXJyb3IpKTtcclxudmFyIEVycm9yRmFjdG9yeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEVycm9yRmFjdG9yeShzZXJ2aWNlLCBzZXJ2aWNlTmFtZSwgZXJyb3JzKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcclxuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XHJcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XHJcbiAgICB9XHJcbiAgICBFcnJvckZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZSA9IGZ1bmN0aW9uIChjb2RlKSB7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBkYXRhW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY3VzdG9tRGF0YSA9IGRhdGFbMF0gfHwge307XHJcbiAgICAgICAgdmFyIGZ1bGxDb2RlID0gdGhpcy5zZXJ2aWNlICsgXCIvXCIgKyBjb2RlO1xyXG4gICAgICAgIHZhciB0ZW1wbGF0ZSA9IHRoaXMuZXJyb3JzW2NvZGVdO1xyXG4gICAgICAgIHZhciBtZXNzYWdlID0gdGVtcGxhdGUgPyByZXBsYWNlVGVtcGxhdGUodGVtcGxhdGUsIGN1c3RvbURhdGEpIDogJ0Vycm9yJztcclxuICAgICAgICAvLyBTZXJ2aWNlIE5hbWU6IEVycm9yIG1lc3NhZ2UgKHNlcnZpY2UvY29kZSkuXHJcbiAgICAgICAgdmFyIGZ1bGxNZXNzYWdlID0gdGhpcy5zZXJ2aWNlTmFtZSArIFwiOiBcIiArIG1lc3NhZ2UgKyBcIiAoXCIgKyBmdWxsQ29kZSArIFwiKS5cIjtcclxuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRmlyZWJhc2VFcnJvcihmdWxsQ29kZSwgZnVsbE1lc3NhZ2UpO1xyXG4gICAgICAgIC8vIEtleXMgd2l0aCBhbiB1bmRlcnNjb3JlIGF0IHRoZSBlbmQgb2YgdGhlaXIgbmFtZSBhcmUgbm90IGluY2x1ZGVkIGluXHJcbiAgICAgICAgLy8gZXJyb3IuZGF0YSBmb3Igc29tZSByZWFzb24uXHJcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB3aXRoIE9iamVjdC5lbnRyaWVzIHdoZW4gbGliIGlzIHVwZGF0ZWQgdG8gZXMyMDE3LlxyXG4gICAgICAgIGZvciAodmFyIF9hID0gMCwgX2IgPSBPYmplY3Qua2V5cyhjdXN0b21EYXRhKTsgX2EgPCBfYi5sZW5ndGg7IF9hKyspIHtcclxuICAgICAgICAgICAgdmFyIGtleSA9IF9iW19hXTtcclxuICAgICAgICAgICAgaWYgKGtleS5zbGljZSgtMSkgIT09ICdfJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiBlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk92ZXJ3cml0aW5nIEZpcmViYXNlRXJyb3IgYmFzZSBmaWVsZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZXJyb3Jba2V5XSA9IGN1c3RvbURhdGFba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIEVycm9yRmFjdG9yeTtcclxufSgpKTtcclxuZnVuY3Rpb24gcmVwbGFjZVRlbXBsYXRlKHRlbXBsYXRlLCBkYXRhKSB7XHJcbiAgICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZShQQVRURVJOLCBmdW5jdGlvbiAoXywga2V5KSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsID8gU3RyaW5nKHZhbHVlKSA6IFwiPFwiICsga2V5ICsgXCI/PlwiO1xyXG4gICAgfSk7XHJcbn1cclxudmFyIFBBVFRFUk4gPSAvXFx7XFwkKFtefV0rKX0vZztcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEV2YWx1YXRlcyBhIEpTT04gc3RyaW5nIGludG8gYSBqYXZhc2NyaXB0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciBBIHN0cmluZyBjb250YWluaW5nIEpTT04uXHJcbiAqIEByZXR1cm4geyp9IFRoZSBqYXZhc2NyaXB0IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmllZCBKU09OLlxyXG4gKi9cclxuZnVuY3Rpb24ganNvbkV2YWwoc3RyKSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdHIpO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIEpTT04gcmVwcmVzZW50aW5nIGEgamF2YXNjcmlwdCBvYmplY3QuXHJcbiAqIEBwYXJhbSB7Kn0gZGF0YSBKYXZhc2NyaXB0IG9iamVjdCB0byBiZSBzdHJpbmdpZmllZC5cclxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgSlNPTiBjb250ZW50cyBvZiB0aGUgb2JqZWN0LlxyXG4gKi9cclxuZnVuY3Rpb24gc3RyaW5naWZ5KGRhdGEpIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcclxufVxuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogRGVjb2RlcyBhIEZpcmViYXNlIGF1dGguIHRva2VuIGludG8gY29uc3RpdHVlbnQgcGFydHMuXHJcbiAqXHJcbiAqIE5vdGVzOlxyXG4gKiAtIE1heSByZXR1cm4gd2l0aCBpbnZhbGlkIC8gaW5jb21wbGV0ZSBjbGFpbXMgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgZGVjb2RlID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgaGVhZGVyID0ge30sIGNsYWltcyA9IHt9LCBkYXRhID0ge30sIHNpZ25hdHVyZSA9ICcnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGhlYWRlciA9IGpzb25FdmFsKGJhc2U2NERlY29kZShwYXJ0c1swXSkgfHwgJycpO1xyXG4gICAgICAgIGNsYWltcyA9IGpzb25FdmFsKGJhc2U2NERlY29kZShwYXJ0c1sxXSkgfHwgJycpO1xyXG4gICAgICAgIHNpZ25hdHVyZSA9IHBhcnRzWzJdO1xyXG4gICAgICAgIGRhdGEgPSBjbGFpbXNbJ2QnXSB8fCB7fTtcclxuICAgICAgICBkZWxldGUgY2xhaW1zWydkJ107XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkgeyB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogaGVhZGVyLFxyXG4gICAgICAgIGNsYWltczogY2xhaW1zLFxyXG4gICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmVcclxuICAgIH07XHJcbn07XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgRmlyZWJhc2UgYXV0aC4gdG9rZW4gYW5kIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgaXRzIHRpbWUtYmFzZWQgY2xhaW1zLiBXaWxsIHJldHVybiB0cnVlIGlmIHRoZVxyXG4gKiB0b2tlbiBpcyB3aXRoaW4gdGhlIHRpbWUgd2luZG93IGF1dGhvcml6ZWQgYnkgdGhlICduYmYnIChub3QtYmVmb3JlKSBhbmQgJ2lhdCcgKGlzc3VlZC1hdCkgY2xhaW1zLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIGEgZmFsc2UgbmVnYXRpdmUgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNWYWxpZFRpbWVzdGFtcCA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdmFyIGNsYWltcyA9IGRlY29kZSh0b2tlbikuY2xhaW1zO1xyXG4gICAgdmFyIG5vdyA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcclxuICAgIHZhciB2YWxpZFNpbmNlID0gMCwgdmFsaWRVbnRpbCA9IDA7XHJcbiAgICBpZiAodHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpZiAoY2xhaW1zLmhhc093blByb3BlcnR5KCduYmYnKSkge1xyXG4gICAgICAgICAgICB2YWxpZFNpbmNlID0gY2xhaW1zWyduYmYnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY2xhaW1zLmhhc093blByb3BlcnR5KCdpYXQnKSkge1xyXG4gICAgICAgICAgICB2YWxpZFNpbmNlID0gY2xhaW1zWydpYXQnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNsYWltcy5oYXNPd25Qcm9wZXJ0eSgnZXhwJykpIHtcclxuICAgICAgICAgICAgdmFsaWRVbnRpbCA9IGNsYWltc1snZXhwJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0b2tlbiB3aWxsIGV4cGlyZSBhZnRlciAyNGggYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICB2YWxpZFVudGlsID0gdmFsaWRTaW5jZSArIDg2NDAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAoISFub3cgJiZcclxuICAgICAgICAhIXZhbGlkU2luY2UgJiZcclxuICAgICAgICAhIXZhbGlkVW50aWwgJiZcclxuICAgICAgICBub3cgPj0gdmFsaWRTaW5jZSAmJlxyXG4gICAgICAgIG5vdyA8PSB2YWxpZFVudGlsKTtcclxufTtcclxuLyoqXHJcbiAqIERlY29kZXMgYSBGaXJlYmFzZSBhdXRoLiB0b2tlbiBhbmQgcmV0dXJucyBpdHMgaXNzdWVkIGF0IHRpbWUgaWYgdmFsaWQsIG51bGwgb3RoZXJ3aXNlLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIG51bGwgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNzdWVkQXRUaW1lID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgY2xhaW1zID0gZGVjb2RlKHRva2VuKS5jbGFpbXM7XHJcbiAgICBpZiAodHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcgJiYgY2xhaW1zLmhhc093blByb3BlcnR5KCdpYXQnKSkge1xyXG4gICAgICAgIHJldHVybiBjbGFpbXNbJ2lhdCddO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn07XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgRmlyZWJhc2UgYXV0aC4gdG9rZW4gYW5kIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgaXRzIGZvcm1hdC4gRXhwZWN0cyBhIHZhbGlkIGlzc3VlZC1hdCB0aW1lLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIGEgZmFsc2UgbmVnYXRpdmUgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNWYWxpZEZvcm1hdCA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdmFyIGRlY29kZWQgPSBkZWNvZGUodG9rZW4pLCBjbGFpbXMgPSBkZWNvZGVkLmNsYWltcztcclxuICAgIHJldHVybiAhIWNsYWltcyAmJiB0eXBlb2YgY2xhaW1zID09PSAnb2JqZWN0JyAmJiBjbGFpbXMuaGFzT3duUHJvcGVydHkoJ2lhdCcpO1xyXG59O1xyXG4vKipcclxuICogQXR0ZW1wdHMgdG8gcGVlciBpbnRvIGFuIGF1dGggdG9rZW4gYW5kIGRldGVybWluZSBpZiBpdCdzIGFuIGFkbWluIGF1dGggdG9rZW4gYnkgbG9va2luZyBhdCB0aGUgY2xhaW1zIHBvcnRpb24uXHJcbiAqXHJcbiAqIE5vdGVzOlxyXG4gKiAtIE1heSByZXR1cm4gYSBmYWxzZSBuZWdhdGl2ZSBpZiB0aGVyZSdzIG5vIG5hdGl2ZSBiYXNlNjQgZGVjb2Rpbmcgc3VwcG9ydC5cclxuICogLSBEb2Vzbid0IGNoZWNrIGlmIHRoZSB0b2tlbiBpcyBhY3R1YWxseSB2YWxpZC5cclxuICovXHJcbnZhciBpc0FkbWluID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgY2xhaW1zID0gZGVjb2RlKHRva2VuKS5jbGFpbXM7XHJcbiAgICByZXR1cm4gdHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcgJiYgY2xhaW1zWydhZG1pbiddID09PSB0cnVlO1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5mdW5jdGlvbiBjb250YWlucyhvYmosIGtleSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSk7XHJcbn1cclxuZnVuY3Rpb24gc2FmZUdldChvYmosIGtleSkge1xyXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGlzRW1wdHkob2JqKSB7XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcbmZ1bmN0aW9uIG1hcChvYmosIGZuLCBjb250ZXh0T2JqKSB7XHJcbiAgICB2YXIgcmVzID0ge307XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICAgICAgcmVzW2tleV0gPSBmbi5jYWxsKGNvbnRleHRPYmosIG9ialtrZXldLCBrZXksIG9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxufVxuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogUmV0dXJucyBhIHF1ZXJ5c3RyaW5nLWZvcm1hdHRlZCBzdHJpbmcgKGUuZy4gJmFyZz12YWwmYXJnMj12YWwyKSBmcm9tIGFcclxuICogcGFyYW1zIG9iamVjdCAoZS5nLiB7YXJnOiAndmFsJywgYXJnMjogJ3ZhbDInfSlcclxuICogTm90ZTogWW91IG11c3QgcHJlcGVuZCBpdCB3aXRoID8gd2hlbiBhZGRpbmcgaXQgdG8gYSBVUkwuXHJcbiAqL1xyXG5mdW5jdGlvbiBxdWVyeXN0cmluZyhxdWVyeXN0cmluZ1BhcmFtcykge1xyXG4gICAgdmFyIHBhcmFtcyA9IFtdO1xyXG4gICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uIChhcnJheVZhbCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoYXJyYXlWYWwpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gT2JqZWN0LmVudHJpZXMocXVlcnlzdHJpbmdQYXJhbXMpOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBfYiA9IF9hW19pXSwga2V5ID0gX2JbMF0sIHZhbHVlID0gX2JbMV07XHJcbiAgICAgICAgX2xvb3BfMShrZXksIHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXMubGVuZ3RoID8gJyYnICsgcGFyYW1zLmpvaW4oJyYnKSA6ICcnO1xyXG59XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgcXVlcnlzdHJpbmcgKGUuZy4gP2FyZz12YWwmYXJnMj12YWwyKSBpbnRvIGEgcGFyYW1zIG9iamVjdFxyXG4gKiAoZS5nLiB7YXJnOiAndmFsJywgYXJnMjogJ3ZhbDInfSlcclxuICovXHJcbmZ1bmN0aW9uIHF1ZXJ5c3RyaW5nRGVjb2RlKHF1ZXJ5c3RyaW5nKSB7XHJcbiAgICB2YXIgb2JqID0ge307XHJcbiAgICB2YXIgdG9rZW5zID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sICcnKS5zcGxpdCgnJicpO1xyXG4gICAgdG9rZW5zLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBrZXkgPSB0b2tlbi5zcGxpdCgnPScpO1xyXG4gICAgICAgICAgICBvYmpba2V5WzBdXSA9IGtleVsxXTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYmo7XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEBmaWxlb3ZlcnZpZXcgU0hBLTEgY3J5cHRvZ3JhcGhpYyBoYXNoLlxyXG4gKiBWYXJpYWJsZSBuYW1lcyBmb2xsb3cgdGhlIG5vdGF0aW9uIGluIEZJUFMgUFVCIDE4MC0zOlxyXG4gKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTgwLTMvZmlwczE4MC0zX2ZpbmFsLnBkZi5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqICAgdmFyIHNoYTEgPSBuZXcgc2hhMSgpO1xyXG4gKiAgIHNoYTEudXBkYXRlKGJ5dGVzKTtcclxuICogICB2YXIgaGFzaCA9IHNoYTEuZGlnZXN0KCk7XHJcbiAqXHJcbiAqIFBlcmZvcm1hbmNlOlxyXG4gKiAgIENocm9tZSAyMzogICB+NDAwIE1iaXQvc1xyXG4gKiAgIEZpcmVmb3ggMTY6ICB+MjUwIE1iaXQvc1xyXG4gKlxyXG4gKi9cclxuLyoqXHJcbiAqIFNIQS0xIGNyeXB0b2dyYXBoaWMgaGFzaCBjb25zdHJ1Y3Rvci5cclxuICpcclxuICogVGhlIHByb3BlcnRpZXMgZGVjbGFyZWQgaGVyZSBhcmUgZGlzY3Vzc2VkIGluIHRoZSBhYm92ZSBhbGdvcml0aG0gZG9jdW1lbnQuXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAZmluYWxcclxuICogQHN0cnVjdFxyXG4gKi9cclxudmFyIFNoYTEgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTaGExKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEhvbGRzIHRoZSBwcmV2aW91cyB2YWx1ZXMgb2YgYWNjdW11bGF0ZWQgdmFyaWFibGVzIGEtZSBpbiB0aGUgY29tcHJlc3NfXHJcbiAgICAgICAgICogZnVuY3Rpb24uXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNoYWluXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgYnVmZmVyIGhvbGRpbmcgdGhlIHBhcnRpYWxseSBjb21wdXRlZCBoYXNoIHJlc3VsdC5cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnVmXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IG9mIDgwIGJ5dGVzLCBlYWNoIGEgcGFydCBvZiB0aGUgbWVzc2FnZSB0byBiZSBoYXNoZWQuICBSZWZlcnJlZCB0b1xyXG4gICAgICAgICAqIGFzIHRoZSBtZXNzYWdlIHNjaGVkdWxlIGluIHRoZSBkb2NzLlxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5XXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbnRhaW5zIGRhdGEgbmVlZGVkIHRvIHBhZCBtZXNzYWdlcyBsZXNzIHRoYW4gNjQgYnl0ZXMuXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBhZF8gPSBbXTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5idWZfID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudG90YWxfID0gMDtcclxuICAgICAgICB0aGlzLmJsb2NrU2l6ZSA9IDUxMiAvIDg7XHJcbiAgICAgICAgdGhpcy5wYWRfWzBdID0gMTI4O1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdGhpcy5ibG9ja1NpemU7ICsraSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZF9baV0gPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICBTaGExLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNoYWluX1swXSA9IDB4Njc0NTIzMDE7XHJcbiAgICAgICAgdGhpcy5jaGFpbl9bMV0gPSAweGVmY2RhYjg5O1xyXG4gICAgICAgIHRoaXMuY2hhaW5fWzJdID0gMHg5OGJhZGNmZTtcclxuICAgICAgICB0aGlzLmNoYWluX1szXSA9IDB4MTAzMjU0NzY7XHJcbiAgICAgICAgdGhpcy5jaGFpbl9bNF0gPSAweGMzZDJlMWYwO1xyXG4gICAgICAgIHRoaXMuaW5idWZfID0gMDtcclxuICAgICAgICB0aGlzLnRvdGFsXyA9IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBjb21wcmVzcyBoZWxwZXIgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0gYnVmIEJsb2NrIHRvIGNvbXByZXNzLlxyXG4gICAgICogQHBhcmFtIG9mZnNldCBPZmZzZXQgb2YgdGhlIGJsb2NrIGluIHRoZSBidWZmZXIuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBTaGExLnByb3RvdHlwZS5jb21wcmVzc18gPSBmdW5jdGlvbiAoYnVmLCBvZmZzZXQpIHtcclxuICAgICAgICBpZiAoIW9mZnNldCkge1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgVyA9IHRoaXMuV187XHJcbiAgICAgICAgLy8gZ2V0IDE2IGJpZyBlbmRpYW4gd29yZHNcclxuICAgICAgICBpZiAodHlwZW9mIGJ1ZiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPKHVzZXIpOiBbYnVnIDgxNDAxMjJdIFJlY2VudCB2ZXJzaW9ucyBvZiBTYWZhcmkgZm9yIE1hYyBPUyBhbmQgaU9TXHJcbiAgICAgICAgICAgICAgICAvLyBoYXZlIGEgYnVnIHRoYXQgdHVybnMgdGhlIHBvc3QtaW5jcmVtZW50ICsrIG9wZXJhdG9yIGludG8gcHJlLWluY3JlbWVudFxyXG4gICAgICAgICAgICAgICAgLy8gZHVyaW5nIEpJVCBjb21waWxhdGlvbi4gIFdlIGhhdmUgY29kZSB0aGF0IGRlcGVuZHMgaGVhdmlseSBvbiBTSEEtMSBmb3JcclxuICAgICAgICAgICAgICAgIC8vIGNvcnJlY3RuZXNzIGFuZCB3aGljaCBpcyBhZmZlY3RlZCBieSB0aGlzIGJ1Zywgc28gSSd2ZSByZW1vdmVkIGFsbCB1c2VzXHJcbiAgICAgICAgICAgICAgICAvLyBvZiBwb3N0LWluY3JlbWVudCArKyBpbiB3aGljaCB0aGUgcmVzdWx0IHZhbHVlIGlzIHVzZWQuICBXZSBjYW4gcmV2ZXJ0XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNoYW5nZSBvbmNlIHRoZSBTYWZhcmkgYnVnXHJcbiAgICAgICAgICAgICAgICAvLyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAzNikgaGFzIGJlZW4gZml4ZWQgYW5kXHJcbiAgICAgICAgICAgICAgICAvLyBtb3N0IGNsaWVudHMgaGF2ZSBiZWVuIHVwZGF0ZWQuXHJcbiAgICAgICAgICAgICAgICBXW2ldID1cclxuICAgICAgICAgICAgICAgICAgICAoYnVmLmNoYXJDb2RlQXQob2Zmc2V0KSA8PCAyNCkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnVmLmNoYXJDb2RlQXQob2Zmc2V0ICsgMSkgPDwgMTYpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1Zi5jaGFyQ29kZUF0KG9mZnNldCArIDIpIDw8IDgpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmNoYXJDb2RlQXQob2Zmc2V0ICsgMyk7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBXW2ldID1cclxuICAgICAgICAgICAgICAgICAgICAoYnVmW29mZnNldF0gPDwgMjQpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZltvZmZzZXQgKyAxXSA8PCAxNikgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnVmW29mZnNldCArIDJdIDw8IDgpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW29mZnNldCArIDNdO1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZXhwYW5kIHRvIDgwIHdvcmRzXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDE2OyBpIDwgODA7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgdCA9IFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl07XHJcbiAgICAgICAgICAgIFdbaV0gPSAoKHQgPDwgMSkgfCAodCA+Pj4gMzEpKSAmIDB4ZmZmZmZmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBhID0gdGhpcy5jaGFpbl9bMF07XHJcbiAgICAgICAgdmFyIGIgPSB0aGlzLmNoYWluX1sxXTtcclxuICAgICAgICB2YXIgYyA9IHRoaXMuY2hhaW5fWzJdO1xyXG4gICAgICAgIHZhciBkID0gdGhpcy5jaGFpbl9bM107XHJcbiAgICAgICAgdmFyIGUgPSB0aGlzLmNoYWluX1s0XTtcclxuICAgICAgICB2YXIgZiwgaztcclxuICAgICAgICAvLyBUT0RPKHVzZXIpOiBUcnkgdG8gdW5yb2xsIHRoaXMgbG9vcCB0byBzcGVlZCB1cCB0aGUgY29tcHV0YXRpb24uXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDwgNDApIHtcclxuICAgICAgICAgICAgICAgIGlmIChpIDwgMjApIHtcclxuICAgICAgICAgICAgICAgICAgICBmID0gZCBeIChiICYgKGMgXiBkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgayA9IDB4NWE4Mjc5OTk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmID0gYiBeIGMgXiBkO1xyXG4gICAgICAgICAgICAgICAgICAgIGsgPSAweDZlZDllYmExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCA2MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGYgPSAoYiAmIGMpIHwgKGQgJiAoYiB8IGMpKTtcclxuICAgICAgICAgICAgICAgICAgICBrID0gMHg4ZjFiYmNkYztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGYgPSBiIF4gYyBeIGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgayA9IDB4Y2E2MmMxZDY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHQgPSAoKChhIDw8IDUpIHwgKGEgPj4+IDI3KSkgKyBmICsgZSArIGsgKyBXW2ldKSAmIDB4ZmZmZmZmZmY7XHJcbiAgICAgICAgICAgIGUgPSBkO1xyXG4gICAgICAgICAgICBkID0gYztcclxuICAgICAgICAgICAgYyA9ICgoYiA8PCAzMCkgfCAoYiA+Pj4gMikpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICAgICAgYiA9IGE7XHJcbiAgICAgICAgICAgIGEgPSB0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYWluX1swXSA9ICh0aGlzLmNoYWluX1swXSArIGEpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1sxXSA9ICh0aGlzLmNoYWluX1sxXSArIGIpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1syXSA9ICh0aGlzLmNoYWluX1syXSArIGMpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1szXSA9ICh0aGlzLmNoYWluX1szXSArIGQpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1s0XSA9ICh0aGlzLmNoYWluX1s0XSArIGUpICYgMHhmZmZmZmZmZjtcclxuICAgIH07XHJcbiAgICBTaGExLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoYnl0ZXMsIGxlbmd0aCkge1xyXG4gICAgICAgIC8vIFRPRE8oam9obmxlbnopOiB0aWdodGVuIHRoZSBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHJlbW92ZSB0aGlzIGNoZWNrXHJcbiAgICAgICAgaWYgKGJ5dGVzID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgbGVuZ3RoID0gYnl0ZXMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbGVuZ3RoTWludXNCbG9jayA9IGxlbmd0aCAtIHRoaXMuYmxvY2tTaXplO1xyXG4gICAgICAgIHZhciBuID0gMDtcclxuICAgICAgICAvLyBVc2luZyBsb2NhbCBpbnN0ZWFkIG9mIG1lbWJlciB2YXJpYWJsZXMgZ2l2ZXMgfjUlIHNwZWVkdXAgb24gRmlyZWZveCAxNi5cclxuICAgICAgICB2YXIgYnVmID0gdGhpcy5idWZfO1xyXG4gICAgICAgIHZhciBpbmJ1ZiA9IHRoaXMuaW5idWZfO1xyXG4gICAgICAgIC8vIFRoZSBvdXRlciB3aGlsZSBsb29wIHNob3VsZCBleGVjdXRlIGF0IG1vc3QgdHdpY2UuXHJcbiAgICAgICAgd2hpbGUgKG4gPCBsZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8gV2hlbiB3ZSBoYXZlIG5vIGRhdGEgaW4gdGhlIGJsb2NrIHRvIHRvcCB1cCwgd2UgY2FuIGRpcmVjdGx5IHByb2Nlc3MgdGhlXHJcbiAgICAgICAgICAgIC8vIGlucHV0IGJ1ZmZlciAoYXNzdW1pbmcgaXQgY29udGFpbnMgc3VmZmljaWVudCBkYXRhKS4gVGhpcyBnaXZlcyB+MjUlXHJcbiAgICAgICAgICAgIC8vIHNwZWVkdXAgb24gQ2hyb21lIDIzIGFuZCB+MTUlIHNwZWVkdXAgb24gRmlyZWZveCAxNiwgYnV0IHJlcXVpcmVzIHRoYXRcclxuICAgICAgICAgICAgLy8gdGhlIGRhdGEgaXMgcHJvdmlkZWQgaW4gbGFyZ2UgY2h1bmtzIChvciBpbiBtdWx0aXBsZXMgb2YgNjQgYnl0ZXMpLlxyXG4gICAgICAgICAgICBpZiAoaW5idWYgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChuIDw9IGxlbmd0aE1pbnVzQmxvY2spIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXByZXNzXyhieXRlcywgbik7XHJcbiAgICAgICAgICAgICAgICAgICAgbiArPSB0aGlzLmJsb2NrU2l6ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGJ5dGVzID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKG4gPCBsZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBidWZbaW5idWZdID0gYnl0ZXMuY2hhckNvZGVBdChuKTtcclxuICAgICAgICAgICAgICAgICAgICArK2luYnVmO1xyXG4gICAgICAgICAgICAgICAgICAgICsrbjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5idWYgPT09IHRoaXMuYmxvY2tTaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHJlc3NfKGJ1Zik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVtcCB0byB0aGUgb3V0ZXIgbG9vcCBzbyB3ZSB1c2UgdGhlIGZ1bGwtYmxvY2sgb3B0aW1pemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAobiA8IGxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1ZltpbmJ1Zl0gPSBieXRlc1tuXTtcclxuICAgICAgICAgICAgICAgICAgICArK2luYnVmO1xyXG4gICAgICAgICAgICAgICAgICAgICsrbjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5idWYgPT09IHRoaXMuYmxvY2tTaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHJlc3NfKGJ1Zik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVtcCB0byB0aGUgb3V0ZXIgbG9vcCBzbyB3ZSB1c2UgdGhlIGZ1bGwtYmxvY2sgb3B0aW1pemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbmJ1Zl8gPSBpbmJ1ZjtcclxuICAgICAgICB0aGlzLnRvdGFsXyArPSBsZW5ndGg7XHJcbiAgICB9O1xyXG4gICAgLyoqIEBvdmVycmlkZSAqL1xyXG4gICAgU2hhMS5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBkaWdlc3QgPSBbXTtcclxuICAgICAgICB2YXIgdG90YWxCaXRzID0gdGhpcy50b3RhbF8gKiA4O1xyXG4gICAgICAgIC8vIEFkZCBwYWQgMHg4MCAweDAwKi5cclxuICAgICAgICBpZiAodGhpcy5pbmJ1Zl8gPCA1Nikge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0aGlzLnBhZF8sIDU2IC0gdGhpcy5pbmJ1Zl8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5wYWRfLCB0aGlzLmJsb2NrU2l6ZSAtICh0aGlzLmluYnVmXyAtIDU2KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFkZCAjIGJpdHMuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuYmxvY2tTaXplIC0gMTsgaSA+PSA1NjsgaS0tKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmX1tpXSA9IHRvdGFsQml0cyAmIDI1NTtcclxuICAgICAgICAgICAgdG90YWxCaXRzIC89IDI1NjsgLy8gRG9uJ3QgdXNlIGJpdC1zaGlmdGluZyBoZXJlIVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbXByZXNzXyh0aGlzLmJ1Zl8pO1xyXG4gICAgICAgIHZhciBuID0gMDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMjQ7IGogPj0gMDsgaiAtPSA4KSB7XHJcbiAgICAgICAgICAgICAgICBkaWdlc3Rbbl0gPSAodGhpcy5jaGFpbl9baV0gPj4gaikgJiAyNTU7XHJcbiAgICAgICAgICAgICAgICArK247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRpZ2VzdDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gU2hhMTtcclxufSgpKTtcblxuLyoqXHJcbiAqIEhlbHBlciB0byBtYWtlIGEgU3Vic2NyaWJlIGZ1bmN0aW9uIChqdXN0IGxpa2UgUHJvbWlzZSBoZWxwcyBtYWtlIGFcclxuICogVGhlbmFibGUpLlxyXG4gKlxyXG4gKiBAcGFyYW0gZXhlY3V0b3IgRnVuY3Rpb24gd2hpY2ggY2FuIG1ha2UgY2FsbHMgdG8gYSBzaW5nbGUgT2JzZXJ2ZXJcclxuICogICAgIGFzIGEgcHJveHkuXHJcbiAqIEBwYXJhbSBvbk5vT2JzZXJ2ZXJzIENhbGxiYWNrIHdoZW4gY291bnQgb2YgT2JzZXJ2ZXJzIGdvZXMgdG8gemVyby5cclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmliZShleGVjdXRvciwgb25Ob09ic2VydmVycykge1xyXG4gICAgdmFyIHByb3h5ID0gbmV3IE9ic2VydmVyUHJveHkoZXhlY3V0b3IsIG9uTm9PYnNlcnZlcnMpO1xyXG4gICAgcmV0dXJuIHByb3h5LnN1YnNjcmliZS5iaW5kKHByb3h5KTtcclxufVxyXG4vKipcclxuICogSW1wbGVtZW50IGZhbi1vdXQgZm9yIGFueSBudW1iZXIgb2YgT2JzZXJ2ZXJzIGF0dGFjaGVkIHZpYSBhIHN1YnNjcmliZVxyXG4gKiBmdW5jdGlvbi5cclxuICovXHJcbnZhciBPYnNlcnZlclByb3h5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0gZXhlY3V0b3IgRnVuY3Rpb24gd2hpY2ggY2FuIG1ha2UgY2FsbHMgdG8gYSBzaW5nbGUgT2JzZXJ2ZXJcclxuICAgICAqICAgICBhcyBhIHByb3h5LlxyXG4gICAgICogQHBhcmFtIG9uTm9PYnNlcnZlcnMgQ2FsbGJhY2sgd2hlbiBjb3VudCBvZiBPYnNlcnZlcnMgZ29lcyB0byB6ZXJvLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBPYnNlcnZlclByb3h5KGV4ZWN1dG9yLCBvbk5vT2JzZXJ2ZXJzKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICB0aGlzLm9ic2VydmVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVzID0gW107XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlckNvdW50ID0gMDtcclxuICAgICAgICAvLyBNaWNyby10YXNrIHNjaGVkdWxpbmcgYnkgY2FsbGluZyB0YXNrLnRoZW4oKS5cclxuICAgICAgICB0aGlzLnRhc2sgPSBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICB0aGlzLmZpbmFsaXplZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25Ob09ic2VydmVycyA9IG9uTm9PYnNlcnZlcnM7XHJcbiAgICAgICAgLy8gQ2FsbCB0aGUgZXhlY3V0b3IgYXN5bmNocm9ub3VzbHkgc28gc3Vic2NyaWJlcnMgdGhhdCBhcmUgY2FsbGVkXHJcbiAgICAgICAgLy8gc3luY2hyb25vdXNseSBhZnRlciB0aGUgY3JlYXRpb24gb2YgdGhlIHN1YnNjcmliZSBmdW5jdGlvblxyXG4gICAgICAgIC8vIGNhbiBzdGlsbCByZWNlaXZlIHRoZSB2ZXJ5IGZpcnN0IHZhbHVlIGdlbmVyYXRlZCBpbiB0aGUgZXhlY3V0b3IuXHJcbiAgICAgICAgdGhpcy50YXNrXHJcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgZXhlY3V0b3IoX3RoaXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5lcnJvcihlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgT2JzZXJ2ZXJQcm94eS5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoZXJyb3IpO1xyXG4gICAgfTtcclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuZm9yRWFjaE9ic2VydmVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBhbiBPYnNlcnZlciB0byB0aGUgZmFuLW91dCBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIC0gV2UgcmVxdWlyZSB0aGF0IG5vIGV2ZW50IGlzIHNlbnQgdG8gYSBzdWJzY3JpYmVyIHN5Y2hyb25vdXNseSB0byB0aGVpclxyXG4gICAgICogICBjYWxsIHRvIHN1YnNjcmliZSgpLlxyXG4gICAgICovXHJcbiAgICBPYnNlcnZlclByb3h5LnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiAobmV4dE9yT2JzZXJ2ZXIsIGVycm9yLCBjb21wbGV0ZSkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdmFyIG9ic2VydmVyO1xyXG4gICAgICAgIGlmIChuZXh0T3JPYnNlcnZlciA9PT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIGVycm9yID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgY29tcGxldGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgT2JzZXJ2ZXIuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFzc2VtYmxlIGFuIE9ic2VydmVyIG9iamVjdCB3aGVuIHBhc3NlZCBhcyBjYWxsYmFjayBmdW5jdGlvbnMuXHJcbiAgICAgICAgaWYgKGltcGxlbWVudHNBbnlNZXRob2RzKG5leHRPck9ic2VydmVyLCBbXHJcbiAgICAgICAgICAgICduZXh0JyxcclxuICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgJ2NvbXBsZXRlJ1xyXG4gICAgICAgIF0pKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyID0gbmV4dE9yT2JzZXJ2ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvYnNlcnZlciA9IHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IG5leHRPck9ic2VydmVyLFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYnNlcnZlci5uZXh0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCA9IG5vb3A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYnNlcnZlci5lcnJvciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yID0gbm9vcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUgPSBub29wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdW5zdWIgPSB0aGlzLnVuc3Vic2NyaWJlT25lLmJpbmQodGhpcywgdGhpcy5vYnNlcnZlcnMubGVuZ3RoKTtcclxuICAgICAgICAvLyBBdHRlbXB0IHRvIHN1YnNjcmliZSB0byBhIHRlcm1pbmF0ZWQgT2JzZXJ2YWJsZSAtIHdlXHJcbiAgICAgICAgLy8ganVzdCByZXNwb25kIHRvIHRoZSBPYnNlcnZlciB3aXRoIHRoZSBmaW5hbCBlcnJvciBvciBjb21wbGV0ZVxyXG4gICAgICAgIC8vIGV2ZW50LlxyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXHJcbiAgICAgICAgICAgIHRoaXMudGFzay50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzLmZpbmFsRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoX3RoaXMuZmluYWxFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XHJcbiAgICAgICAgcmV0dXJuIHVuc3ViO1xyXG4gICAgfTtcclxuICAgIC8vIFVuc3Vic2NyaWJlIGlzIHN5bmNocm9ub3VzIC0gd2UgZ3VhcmFudGVlIHRoYXQgbm8gZXZlbnRzIGFyZSBzZW50IHRvXHJcbiAgICAvLyBhbnkgdW5zdWJzY3JpYmVkIE9ic2VydmVyLlxyXG4gICAgT2JzZXJ2ZXJQcm94eS5wcm90b3R5cGUudW5zdWJzY3JpYmVPbmUgPSBmdW5jdGlvbiAoaSkge1xyXG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVycyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMub2JzZXJ2ZXJzW2ldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZWxldGUgdGhpcy5vYnNlcnZlcnNbaV07XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlckNvdW50IC09IDE7XHJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJDb3VudCA9PT0gMCAmJiB0aGlzLm9uTm9PYnNlcnZlcnMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uTm9PYnNlcnZlcnModGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLmZvckVhY2hPYnNlcnZlciA9IGZ1bmN0aW9uIChmbikge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICAvLyBBbHJlYWR5IGNsb3NlZCBieSBwcmV2aW91cyBldmVudC4uLi5qdXN0IGVhdCB0aGUgYWRkaXRpb25hbCB2YWx1ZXMuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gU2luY2Ugc2VuZE9uZSBjYWxscyBhc3luY2hyb25vdXNseSAtIHRoZXJlIGlzIG5vIGNoYW5jZSB0aGF0XHJcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcnMgd2lsbCBiZWNvbWUgdW5kZWZpbmVkLlxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYnNlcnZlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kT25lKGksIGZuKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLy8gQ2FsbCB0aGUgT2JzZXJ2ZXIgdmlhIG9uZSBvZiBpdCdzIGNhbGxiYWNrIGZ1bmN0aW9uLiBXZSBhcmUgY2FyZWZ1bCB0b1xyXG4gICAgLy8gY29uZmlybSB0aGF0IHRoZSBvYnNlcnZlIGhhcyBub3QgYmVlbiB1bnN1YnNjcmliZWQgc2luY2UgdGhpcyBhc3luY2hyb25vdXNcclxuICAgIC8vIGZ1bmN0aW9uIGhhZCBiZWVuIHF1ZXVlZC5cclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLnNlbmRPbmUgPSBmdW5jdGlvbiAoaSwgZm4pIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNhbGxiYWNrIGFzeW5jaHJvbm91c2x5XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xyXG4gICAgICAgIHRoaXMudGFzay50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKF90aGlzLm9ic2VydmVycyAhPT0gdW5kZWZpbmVkICYmIF90aGlzLm9ic2VydmVyc1tpXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZuKF90aGlzLm9ic2VydmVyc1tpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBleGNlcHRpb25zIHJhaXNlZCBpbiBPYnNlcnZlcnMgb3IgbWlzc2luZyBtZXRob2RzIG9mIGFuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gT2JzZXJ2ZXIuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTG9nIGVycm9yIHRvIGNvbnNvbGUuIGIvMzE0MDQ4MDZcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBPYnNlcnZlclByb3h5LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmluYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZXJyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5hbEVycm9yID0gZXJyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcm94eSBpcyBubyBsb25nZXIgbmVlZGVkIC0gZ2FyYmFnZSBjb2xsZWN0IHJlZmVyZW5jZXNcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXHJcbiAgICAgICAgdGhpcy50YXNrLnRoZW4oZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIF90aGlzLm9uTm9PYnNlcnZlcnMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIE9ic2VydmVyUHJveHk7XHJcbn0oKSk7XHJcbi8qKiBUdXJuIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGludG8gb25lIGNhbGxlZCBhc3luY2hyb25vdXNseS4gKi9cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZnVuY3Rpb24gYXN5bmMoZm4sIG9uRXJyb3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGZuLmFwcGx5KHZvaWQgMCwgYXJncyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAob25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgb25FcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgcGFzc2VkIGluIGltcGxlbWVudHMgYW55IG9mIHRoZSBuYW1lZCBtZXRob2RzLlxyXG4gKi9cclxuZnVuY3Rpb24gaW1wbGVtZW50c0FueU1ldGhvZHMob2JqLCBtZXRob2RzKSB7XHJcbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBtZXRob2RzXzEgPSBtZXRob2RzOyBfaSA8IG1ldGhvZHNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgbWV0aG9kID0gbWV0aG9kc18xW19pXTtcclxuICAgICAgICBpZiAobWV0aG9kIGluIG9iaiAmJiB0eXBlb2Ygb2JqW21ldGhvZF0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIG5vb3AoKSB7XHJcbiAgICAvLyBkbyBub3RoaW5nXHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgYXBwcm9wcmlhdGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgZm9yIGEgcHVibGljIGZ1bmN0aW9uLlxyXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgaXQgZmFpbHMuXHJcbiAqXHJcbiAqIEBwYXJhbSBmbk5hbWUgVGhlIGZ1bmN0aW9uIG5hbWVcclxuICogQHBhcmFtIG1pbkNvdW50IFRoZSBtaW5pbXVtIG51bWJlciBvZiBhcmd1bWVudHMgdG8gYWxsb3cgZm9yIHRoZSBmdW5jdGlvbiBjYWxsXHJcbiAqIEBwYXJhbSBtYXhDb3VudCBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXJndW1lbnQgdG8gYWxsb3cgZm9yIHRoZSBmdW5jdGlvbiBjYWxsXHJcbiAqIEBwYXJhbSBhcmdDb3VudCBUaGUgYWN0dWFsIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQuXHJcbiAqL1xyXG52YXIgdmFsaWRhdGVBcmdDb3VudCA9IGZ1bmN0aW9uIChmbk5hbWUsIG1pbkNvdW50LCBtYXhDb3VudCwgYXJnQ291bnQpIHtcclxuICAgIHZhciBhcmdFcnJvcjtcclxuICAgIGlmIChhcmdDb3VudCA8IG1pbkNvdW50KSB7XHJcbiAgICAgICAgYXJnRXJyb3IgPSAnYXQgbGVhc3QgJyArIG1pbkNvdW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYXJnQ291bnQgPiBtYXhDb3VudCkge1xyXG4gICAgICAgIGFyZ0Vycm9yID0gbWF4Q291bnQgPT09IDAgPyAnbm9uZScgOiAnbm8gbW9yZSB0aGFuICcgKyBtYXhDb3VudDtcclxuICAgIH1cclxuICAgIGlmIChhcmdFcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IGZuTmFtZSArXHJcbiAgICAgICAgICAgICcgZmFpbGVkOiBXYXMgY2FsbGVkIHdpdGggJyArXHJcbiAgICAgICAgICAgIGFyZ0NvdW50ICtcclxuICAgICAgICAgICAgKGFyZ0NvdW50ID09PSAxID8gJyBhcmd1bWVudC4nIDogJyBhcmd1bWVudHMuJykgK1xyXG4gICAgICAgICAgICAnIEV4cGVjdHMgJyArXHJcbiAgICAgICAgICAgIGFyZ0Vycm9yICtcclxuICAgICAgICAgICAgJy4nO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbn07XHJcbi8qKlxyXG4gKiBHZW5lcmF0ZXMgYSBzdHJpbmcgdG8gcHJlZml4IGFuIGVycm9yIG1lc3NhZ2UgYWJvdXQgZmFpbGVkIGFyZ3VtZW50IHZhbGlkYXRpb25cclxuICpcclxuICogQHBhcmFtIGZuTmFtZSBUaGUgZnVuY3Rpb24gbmFtZVxyXG4gKiBAcGFyYW0gYXJndW1lbnROdW1iZXIgVGhlIGluZGV4IG9mIHRoZSBhcmd1bWVudFxyXG4gKiBAcGFyYW0gb3B0aW9uYWwgV2hldGhlciBvciBub3QgdGhlIGFyZ3VtZW50IGlzIG9wdGlvbmFsXHJcbiAqIEByZXR1cm4gVGhlIHByZWZpeCB0byBhZGQgdG8gdGhlIGVycm9yIHRocm93biBmb3IgdmFsaWRhdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIGVycm9yUHJlZml4KGZuTmFtZSwgYXJndW1lbnROdW1iZXIsIG9wdGlvbmFsKSB7XHJcbiAgICB2YXIgYXJnTmFtZSA9ICcnO1xyXG4gICAgc3dpdGNoIChhcmd1bWVudE51bWJlcikge1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgYXJnTmFtZSA9IG9wdGlvbmFsID8gJ2ZpcnN0JyA6ICdGaXJzdCc7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgYXJnTmFtZSA9IG9wdGlvbmFsID8gJ3NlY29uZCcgOiAnU2Vjb25kJztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICBhcmdOYW1lID0gb3B0aW9uYWwgPyAndGhpcmQnIDogJ1RoaXJkJztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICBhcmdOYW1lID0gb3B0aW9uYWwgPyAnZm91cnRoJyA6ICdGb3VydGgnO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Vycm9yUHJlZml4IGNhbGxlZCB3aXRoIGFyZ3VtZW50TnVtYmVyID4gNC4gIE5lZWQgdG8gdXBkYXRlIGl0PycpO1xyXG4gICAgfVxyXG4gICAgdmFyIGVycm9yID0gZm5OYW1lICsgJyBmYWlsZWQ6ICc7XHJcbiAgICBlcnJvciArPSBhcmdOYW1lICsgJyBhcmd1bWVudCAnO1xyXG4gICAgcmV0dXJuIGVycm9yO1xyXG59XHJcbi8qKlxyXG4gKiBAcGFyYW0gZm5OYW1lXHJcbiAqIEBwYXJhbSBhcmd1bWVudE51bWJlclxyXG4gKiBAcGFyYW0gbmFtZXNwYWNlXHJcbiAqIEBwYXJhbSBvcHRpb25hbFxyXG4gKi9cclxuZnVuY3Rpb24gdmFsaWRhdGVOYW1lc3BhY2UoZm5OYW1lLCBhcmd1bWVudE51bWJlciwgbmFtZXNwYWNlLCBvcHRpb25hbCkge1xyXG4gICAgaWYgKG9wdGlvbmFsICYmICFuYW1lc3BhY2UpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG5hbWVzcGFjZSAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAvL1RPRE86IEkgc2hvdWxkIGRvIG1vcmUgdmFsaWRhdGlvbiBoZXJlLiBXZSBvbmx5IGFsbG93IGNlcnRhaW4gY2hhcnMgaW4gbmFtZXNwYWNlcy5cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JQcmVmaXgoZm5OYW1lLCBhcmd1bWVudE51bWJlciwgb3B0aW9uYWwpICtcclxuICAgICAgICAgICAgJ211c3QgYmUgYSB2YWxpZCBmaXJlYmFzZSBuYW1lc3BhY2UuJyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdmFsaWRhdGVDYWxsYmFjayhmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuY2FsbGJhY2ssIG9wdGlvbmFsKSB7XHJcbiAgICBpZiAob3B0aW9uYWwgJiYgIWNhbGxiYWNrKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvclByZWZpeChmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBvcHRpb25hbCkgK1xyXG4gICAgICAgICAgICAnbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLicpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHZhbGlkYXRlQ29udGV4dE9iamVjdChmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBjb250ZXh0LCBvcHRpb25hbCkge1xyXG4gICAgaWYgKG9wdGlvbmFsICYmICFjb250ZXh0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBjb250ZXh0ICE9PSAnb2JqZWN0JyB8fCBjb250ZXh0ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yUHJlZml4KGZuTmFtZSwgYXJndW1lbnROdW1iZXIsIG9wdGlvbmFsKSArXHJcbiAgICAgICAgICAgICdtdXN0IGJlIGEgdmFsaWQgY29udGV4dCBvYmplY3QuJyk7XHJcbiAgICB9XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLy8gQ29kZSBvcmlnaW5hbGx5IGNhbWUgZnJvbSBnb29nLmNyeXB0LnN0cmluZ1RvVXRmOEJ5dGVBcnJheSwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGV5XHJcbi8vIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgJ1xcclxcbicgd2l0aCAnXFxuJywgYW5kIHRoZXkgZGlkbid0IGhhbmRsZSBzdXJyb2dhdGUgcGFpcnMsXHJcbi8vIHNvIGl0J3MgYmVlbiBtb2RpZmllZC5cclxuLy8gTm90ZSB0aGF0IG5vdCBhbGwgVW5pY29kZSBjaGFyYWN0ZXJzIGFwcGVhciBhcyBzaW5nbGUgY2hhcmFjdGVycyBpbiBKYXZhU2NyaXB0IHN0cmluZ3MuXHJcbi8vIGZyb21DaGFyQ29kZSByZXR1cm5zIHRoZSBVVEYtMTYgZW5jb2Rpbmcgb2YgYSBjaGFyYWN0ZXIgLSBzbyBzb21lIFVuaWNvZGUgY2hhcmFjdGVyc1xyXG4vLyB1c2UgMiBjaGFyYWN0ZXJzIGluIEphdmFzY3JpcHQuICBBbGwgNC1ieXRlIFVURi04IGNoYXJhY3RlcnMgYmVnaW4gd2l0aCBhIGZpcnN0XHJcbi8vIGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UgMHhEODAwIC0gMHhEQkZGICh0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgc28tY2FsbGVkIHN1cnJvZ2F0ZVxyXG4vLyBwYWlyKS5cclxuLy8gU2VlIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi81LjEvI3NlYy0xNS4xLjNcclxuLyoqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcclxuICogQHJldHVybiB7QXJyYXl9XHJcbiAqL1xyXG52YXIgc3RyaW5nVG9CeXRlQXJyYXkkMSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHZhciBvdXQgPSBbXTtcclxuICAgIHZhciBwID0gMDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAvLyBJcyB0aGlzIHRoZSBsZWFkIHN1cnJvZ2F0ZSBpbiBhIHN1cnJvZ2F0ZSBwYWlyP1xyXG4gICAgICAgIGlmIChjID49IDB4ZDgwMCAmJiBjIDw9IDB4ZGJmZikge1xyXG4gICAgICAgICAgICB2YXIgaGlnaCA9IGMgLSAweGQ4MDA7IC8vIHRoZSBoaWdoIDEwIGJpdHMuXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgYXNzZXJ0KGkgPCBzdHIubGVuZ3RoLCAnU3Vycm9nYXRlIHBhaXIgbWlzc2luZyB0cmFpbCBzdXJyb2dhdGUuJyk7XHJcbiAgICAgICAgICAgIHZhciBsb3cgPSBzdHIuY2hhckNvZGVBdChpKSAtIDB4ZGMwMDsgLy8gdGhlIGxvdyAxMCBiaXRzLlxyXG4gICAgICAgICAgICBjID0gMHgxMDAwMCArIChoaWdoIDw8IDEwKSArIGxvdztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGMgPCAxMjgpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSBjO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjIDwgMjA0OCkge1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjID4+IDYpIHwgMTkyO1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjICYgNjMpIHwgMTI4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjIDwgNjU1MzYpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxMikgfCAyMjQ7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDYpICYgNjMpIHwgMTI4O1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjICYgNjMpIHwgMTI4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxOCkgfCAyNDA7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDEyKSAmIDYzKSB8IDEyODtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dDtcclxufTtcclxuLyoqXHJcbiAqIENhbGN1bGF0ZSBsZW5ndGggd2l0aG91dCBhY3R1YWxseSBjb252ZXJ0aW5nOyB1c2VmdWwgZm9yIGRvaW5nIGNoZWFwZXIgdmFsaWRhdGlvbi5cclxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9XHJcbiAqL1xyXG52YXIgc3RyaW5nTGVuZ3RoID0gZnVuY3Rpb24gKHN0cikge1xyXG4gICAgdmFyIHAgPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIGlmIChjIDwgMTI4KSB7XHJcbiAgICAgICAgICAgIHArKztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYyA8IDIwNDgpIHtcclxuICAgICAgICAgICAgcCArPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjID49IDB4ZDgwMCAmJiBjIDw9IDB4ZGJmZikge1xyXG4gICAgICAgICAgICAvLyBMZWFkIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLiAgVGhlIHBhaXIgdG9nZXRoZXIgd2lsbCB0YWtlIDQgYnl0ZXMgdG8gcmVwcmVzZW50LlxyXG4gICAgICAgICAgICBwICs9IDQ7XHJcbiAgICAgICAgICAgIGkrKzsgLy8gc2tpcCB0cmFpbCBzdXJyb2dhdGUuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwICs9IDM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHA7XHJcbn07XG5cbi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcbi8qKlxyXG4gKiBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBleHBvbmVudGlhbGx5IGluY3JlYXNlLlxyXG4gKi9cclxudmFyIERFRkFVTFRfSU5URVJWQUxfTUlMTElTID0gMTAwMDtcclxuLyoqXHJcbiAqIFRoZSBmYWN0b3IgdG8gYmFja29mZiBieS5cclxuICogU2hvdWxkIGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAxLlxyXG4gKi9cclxudmFyIERFRkFVTFRfQkFDS09GRl9GQUNUT1IgPSAyO1xyXG4vKipcclxuICogVGhlIG1heGltdW0gbWlsbGlzZWNvbmRzIHRvIGluY3JlYXNlIHRvLlxyXG4gKlxyXG4gKiA8cD5WaXNpYmxlIGZvciB0ZXN0aW5nXHJcbiAqL1xyXG52YXIgTUFYX1ZBTFVFX01JTExJUyA9IDQgKiA2MCAqIDYwICogMTAwMDsgLy8gRm91ciBob3VycywgbGlrZSBpT1MgYW5kIEFuZHJvaWQuXHJcbi8qKlxyXG4gKiBUaGUgcGVyY2VudGFnZSBvZiBiYWNrb2ZmIHRpbWUgdG8gcmFuZG9taXplIGJ5LlxyXG4gKiBTZWVcclxuICogaHR0cDovL2dvL3NhZmUtY2xpZW50LWJlaGF2aW9yI3N0ZXAtMS1kZXRlcm1pbmUtdGhlLWFwcHJvcHJpYXRlLXJldHJ5LWludGVydmFsLXRvLWhhbmRsZS1zcGlrZS10cmFmZmljXHJcbiAqIGZvciBjb250ZXh0LlxyXG4gKlxyXG4gKiA8cD5WaXNpYmxlIGZvciB0ZXN0aW5nXHJcbiAqL1xyXG52YXIgUkFORE9NX0ZBQ1RPUiA9IDAuNTtcclxuLyoqXHJcbiAqIEJhc2VkIG9uIHRoZSBiYWNrb2ZmIG1ldGhvZCBmcm9tXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvY2xvc3VyZS1saWJyYXJ5L2Jsb2IvbWFzdGVyL2Nsb3N1cmUvZ29vZy9tYXRoL2V4cG9uZW50aWFsYmFja29mZi5qcy5cclxuICogRXh0cmFjdGVkIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCB0byBwYXNzIG1ldGFkYXRhIGFuZCBhIHN0YXRlZnVsIEV4cG9uZW50aWFsQmFja29mZiBvYmplY3QgYXJvdW5kLlxyXG4gKi9cclxuZnVuY3Rpb24gY2FsY3VsYXRlQmFja29mZk1pbGxpcyhiYWNrb2ZmQ291bnQsIGludGVydmFsTWlsbGlzLCBiYWNrb2ZmRmFjdG9yKSB7XHJcbiAgICBpZiAoaW50ZXJ2YWxNaWxsaXMgPT09IHZvaWQgMCkgeyBpbnRlcnZhbE1pbGxpcyA9IERFRkFVTFRfSU5URVJWQUxfTUlMTElTOyB9XHJcbiAgICBpZiAoYmFja29mZkZhY3RvciA9PT0gdm9pZCAwKSB7IGJhY2tvZmZGYWN0b3IgPSBERUZBVUxUX0JBQ0tPRkZfRkFDVE9SOyB9XHJcbiAgICAvLyBDYWxjdWxhdGVzIGFuIGV4cG9uZW50aWFsbHkgaW5jcmVhc2luZyB2YWx1ZS5cclxuICAgIC8vIERldmlhdGlvbjogY2FsY3VsYXRlcyB2YWx1ZSBmcm9tIGNvdW50IGFuZCBhIGNvbnN0YW50IGludGVydmFsLCBzbyB3ZSBvbmx5IG5lZWQgdG8gc2F2ZSB2YWx1ZVxyXG4gICAgLy8gYW5kIGNvdW50IHRvIHJlc3RvcmUgc3RhdGUuXHJcbiAgICB2YXIgY3VyckJhc2VWYWx1ZSA9IGludGVydmFsTWlsbGlzICogTWF0aC5wb3coYmFja29mZkZhY3RvciwgYmFja29mZkNvdW50KTtcclxuICAgIC8vIEEgcmFuZG9tIFwiZnV6elwiIHRvIGF2b2lkIHdhdmVzIG9mIHJldHJpZXMuXHJcbiAgICAvLyBEZXZpYXRpb246IHJhbmRvbUZhY3RvciBpcyByZXF1aXJlZC5cclxuICAgIHZhciByYW5kb21XYWl0ID0gTWF0aC5yb3VuZChcclxuICAgIC8vIEEgZnJhY3Rpb24gb2YgdGhlIGJhY2tvZmYgdmFsdWUgdG8gYWRkL3N1YnRyYWN0LlxyXG4gICAgLy8gRGV2aWF0aW9uOiBjaGFuZ2VzIG11bHRpcGxpY2F0aW9uIG9yZGVyIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuXHJcbiAgICBSQU5ET01fRkFDVE9SICpcclxuICAgICAgICBjdXJyQmFzZVZhbHVlICpcclxuICAgICAgICAvLyBBIHJhbmRvbSBmbG9hdCAocm91bmRlZCB0byBpbnQgYnkgTWF0aC5yb3VuZCBhYm92ZSkgaW4gdGhlIHJhbmdlIFstMSwgMV0uIERldGVybWluZXNcclxuICAgICAgICAvLyBpZiB3ZSBhZGQgb3Igc3VidHJhY3QuXHJcbiAgICAgICAgKE1hdGgucmFuZG9tKCkgLSAwLjUpICpcclxuICAgICAgICAyKTtcclxuICAgIC8vIExpbWl0cyBiYWNrb2ZmIHRvIG1heCB0byBhdm9pZCBlZmZlY3RpdmVseSBwZXJtYW5lbnQgYmFja29mZi5cclxuICAgIHJldHVybiBNYXRoLm1pbihNQVhfVkFMVUVfTUlMTElTLCBjdXJyQmFzZVZhbHVlICsgcmFuZG9tV2FpdCk7XHJcbn1cblxuZXhwb3J0cy5DT05TVEFOVFMgPSBDT05TVEFOVFM7XG5leHBvcnRzLkRlZmVycmVkID0gRGVmZXJyZWQ7XG5leHBvcnRzLkVycm9yRmFjdG9yeSA9IEVycm9yRmFjdG9yeTtcbmV4cG9ydHMuRmlyZWJhc2VFcnJvciA9IEZpcmViYXNlRXJyb3I7XG5leHBvcnRzLk1BWF9WQUxVRV9NSUxMSVMgPSBNQVhfVkFMVUVfTUlMTElTO1xuZXhwb3J0cy5SQU5ET01fRkFDVE9SID0gUkFORE9NX0ZBQ1RPUjtcbmV4cG9ydHMuU2hhMSA9IFNoYTE7XG5leHBvcnRzLmFyZUNvb2tpZXNFbmFibGVkID0gYXJlQ29va2llc0VuYWJsZWQ7XG5leHBvcnRzLmFzc2VydCA9IGFzc2VydDtcbmV4cG9ydHMuYXNzZXJ0aW9uRXJyb3IgPSBhc3NlcnRpb25FcnJvcjtcbmV4cG9ydHMuYXN5bmMgPSBhc3luYztcbmV4cG9ydHMuYmFzZTY0ID0gYmFzZTY0O1xuZXhwb3J0cy5iYXNlNjREZWNvZGUgPSBiYXNlNjREZWNvZGU7XG5leHBvcnRzLmJhc2U2NEVuY29kZSA9IGJhc2U2NEVuY29kZTtcbmV4cG9ydHMuY2FsY3VsYXRlQmFja29mZk1pbGxpcyA9IGNhbGN1bGF0ZUJhY2tvZmZNaWxsaXM7XG5leHBvcnRzLmNvbnRhaW5zID0gY29udGFpbnM7XG5leHBvcnRzLmNyZWF0ZVN1YnNjcmliZSA9IGNyZWF0ZVN1YnNjcmliZTtcbmV4cG9ydHMuZGVjb2RlID0gZGVjb2RlO1xuZXhwb3J0cy5kZWVwQ29weSA9IGRlZXBDb3B5O1xuZXhwb3J0cy5kZWVwRXh0ZW5kID0gZGVlcEV4dGVuZDtcbmV4cG9ydHMuZXJyb3JQcmVmaXggPSBlcnJvclByZWZpeDtcbmV4cG9ydHMuZ2V0VUEgPSBnZXRVQTtcbmV4cG9ydHMuaXNBZG1pbiA9IGlzQWRtaW47XG5leHBvcnRzLmlzQnJvd3NlciA9IGlzQnJvd3NlcjtcbmV4cG9ydHMuaXNCcm93c2VyRXh0ZW5zaW9uID0gaXNCcm93c2VyRXh0ZW5zaW9uO1xuZXhwb3J0cy5pc0VsZWN0cm9uID0gaXNFbGVjdHJvbjtcbmV4cG9ydHMuaXNFbXB0eSA9IGlzRW1wdHk7XG5leHBvcnRzLmlzSUUgPSBpc0lFO1xuZXhwb3J0cy5pc0luZGV4ZWREQkF2YWlsYWJsZSA9IGlzSW5kZXhlZERCQXZhaWxhYmxlO1xuZXhwb3J0cy5pc01vYmlsZUNvcmRvdmEgPSBpc01vYmlsZUNvcmRvdmE7XG5leHBvcnRzLmlzTm9kZSA9IGlzTm9kZTtcbmV4cG9ydHMuaXNOb2RlU2RrID0gaXNOb2RlU2RrO1xuZXhwb3J0cy5pc1JlYWN0TmF0aXZlID0gaXNSZWFjdE5hdGl2ZTtcbmV4cG9ydHMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcbmV4cG9ydHMuaXNVV1AgPSBpc1VXUDtcbmV4cG9ydHMuaXNWYWxpZEZvcm1hdCA9IGlzVmFsaWRGb3JtYXQ7XG5leHBvcnRzLmlzVmFsaWRUaW1lc3RhbXAgPSBpc1ZhbGlkVGltZXN0YW1wO1xuZXhwb3J0cy5pc3N1ZWRBdFRpbWUgPSBpc3N1ZWRBdFRpbWU7XG5leHBvcnRzLmpzb25FdmFsID0ganNvbkV2YWw7XG5leHBvcnRzLm1hcCA9IG1hcDtcbmV4cG9ydHMucXVlcnlzdHJpbmcgPSBxdWVyeXN0cmluZztcbmV4cG9ydHMucXVlcnlzdHJpbmdEZWNvZGUgPSBxdWVyeXN0cmluZ0RlY29kZTtcbmV4cG9ydHMuc2FmZUdldCA9IHNhZmVHZXQ7XG5leHBvcnRzLnN0cmluZ0xlbmd0aCA9IHN0cmluZ0xlbmd0aDtcbmV4cG9ydHMuc3RyaW5nVG9CeXRlQXJyYXkgPSBzdHJpbmdUb0J5dGVBcnJheSQxO1xuZXhwb3J0cy5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7XG5leHBvcnRzLnZhbGlkYXRlQXJnQ291bnQgPSB2YWxpZGF0ZUFyZ0NvdW50O1xuZXhwb3J0cy52YWxpZGF0ZUNhbGxiYWNrID0gdmFsaWRhdGVDYWxsYmFjaztcbmV4cG9ydHMudmFsaWRhdGVDb250ZXh0T2JqZWN0ID0gdmFsaWRhdGVDb250ZXh0T2JqZWN0O1xuZXhwb3J0cy52YWxpZGF0ZUluZGV4ZWREQk9wZW5hYmxlID0gdmFsaWRhdGVJbmRleGVkREJPcGVuYWJsZTtcbmV4cG9ydHMudmFsaWRhdGVOYW1lc3BhY2UgPSB2YWxpZGF0ZU5hbWVzcGFjZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmNqcy5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@firebase/util/dist/index.cjs.js\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nvar tslib = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nvar assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nvar assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar stringToByteArray = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [];\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n var out = [];\r\n var pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n var c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n var c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n var c4 = bytes[pos++];\r\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n var c2 = bytes[pos++];\r\n var c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray: function (input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n var byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length; i += 3) {\r\n var byte1 = input[i];\r\n var haveByte2 = i + 1 < input.length;\r\n var byte2 = haveByte2 ? input[i + 1] : 0;\r\n var haveByte3 = i + 2 < input.length;\r\n var byte3 = haveByte3 ? input[i + 2] : 0;\r\n var outByte1 = byte1 >> 2;\r\n var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n var outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString: function (input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray: function (input, webSafe) {\r\n this.init_();\r\n var charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n var output = [];\r\n for (var i = 0; i < input.length;) {\r\n var byte1 = charToByteMap[input.charAt(i++)];\r\n var haveByte2 = i < input.length;\r\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n var haveByte3 = i < input.length;\r\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n var haveByte4 = i < input.length;\r\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_: function () {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nvar base64Encode = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n var dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (var prop in source) {\r\n if (!source.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n this.reject = function () { };\r\n this.resolve = function () { };\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n Deferred.prototype.wrapCallback = function (callback) {\r\n var _this = this;\r\n return function (error, value) {\r\n if (error) {\r\n _this.reject(error);\r\n }\r\n else {\r\n _this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n _this.promise.catch(function () { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n };\r\n return Deferred;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n try {\r\n return (Object.prototype.toString.call(__webpack_require__.g.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n var runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n var ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n return 'indexedDB' in self && indexedDB != null;\r\n}\r\n/**\r\n * This method validates browser context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise(function (resolve, reject) {\r\n try {\r\n var preExist_1 = true;\r\n var DB_CHECK_NAME_1 = 'validate-browser-context-for-indexeddb-analytics-module';\r\n var request_1 = window.indexedDB.open(DB_CHECK_NAME_1);\r\n request_1.onsuccess = function () {\r\n request_1.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist_1) {\r\n window.indexedDB.deleteDatabase(DB_CHECK_NAME_1);\r\n }\r\n resolve(true);\r\n };\r\n request_1.onupgradeneeded = function () {\r\n preExist_1 = false;\r\n };\r\n request_1.onerror = function () {\r\n var _a;\r\n reject(((_a = request_1.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (!navigator || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nvar FirebaseError = /** @class */ (function (_super) {\r\n tslib.__extends(FirebaseError, _super);\r\n function FirebaseError(code, message) {\r\n var _this = _super.call(this, message) || this;\r\n _this.code = code;\r\n _this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\r\n }\r\n return _this;\r\n }\r\n return FirebaseError;\r\n}(Error));\r\nvar ErrorFactory = /** @class */ (function () {\r\n function ErrorFactory(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n ErrorFactory.prototype.create = function (code) {\r\n var data = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n data[_i - 1] = arguments[_i];\r\n }\r\n var customData = data[0] || {};\r\n var fullCode = this.service + \"/\" + code;\r\n var template = this.errors[code];\r\n var message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\r\n var error = new FirebaseError(fullCode, fullMessage);\r\n // Keys with an underscore at the end of their name are not included in\r\n // error.data for some reason.\r\n // TODO: Replace with Object.entries when lib is updated to es2017.\r\n for (var _a = 0, _b = Object.keys(customData); _a < _b.length; _a++) {\r\n var key = _b[_a];\r\n if (key.slice(-1) !== '_') {\r\n if (key in error) {\r\n console.warn(\"Overwriting FirebaseError base field \\\"\" + key + \"\\\" can cause unexpected behavior.\");\r\n }\r\n error[key] = customData[key];\r\n }\r\n }\r\n return error;\r\n };\r\n return ErrorFactory;\r\n}());\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, function (_, key) {\r\n var value = data[key];\r\n return value != null ? String(value) : \"<\" + key + \"?>\";\r\n });\r\n}\r\nvar PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar decode = function (token) {\r\n var header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n var parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header: header,\r\n claims: claims,\r\n data: data,\r\n signature: signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidTimestamp = function (token) {\r\n var claims = decode(token).claims;\r\n var now = Math.floor(new Date().getTime() / 1000);\r\n var validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar issuedAtTime = function (token) {\r\n var claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isValidFormat = function (token) {\r\n var decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nvar isAdmin = function (token) {\r\n var claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n var res = {};\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n var params = [];\r\n var _loop_1 = function (key, value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(function (arrayVal) {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n };\r\n for (var _i = 0, _a = Object.entries(querystringParams); _i < _a.length; _i++) {\r\n var _b = _a[_i], key = _b[0], value = _b[1];\r\n _loop_1(key, value);\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n var obj = {};\r\n var tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(function (token) {\r\n if (token) {\r\n var key = token.split('=');\r\n obj[key[0]] = key[1];\r\n }\r\n });\r\n return obj;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function () {\r\n function Sha1() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (var i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n Sha1.prototype.reset = function () {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n };\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n Sha1.prototype.compress_ = function (buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n var W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (var i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (var i = 16; i < 80; i++) {\r\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n var a = this.chain_[0];\r\n var b = this.chain_[1];\r\n var c = this.chain_[2];\r\n var d = this.chain_[3];\r\n var e = this.chain_[4];\r\n var f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n };\r\n Sha1.prototype.update = function (bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n var lengthMinusBlock = length - this.blockSize;\r\n var n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n var buf = this.buf_;\r\n var inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n };\r\n /** @override */\r\n Sha1.prototype.digest = function () {\r\n var digest = [];\r\n var totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (var i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n var n = 0;\r\n for (var i = 0; i < 5; i++) {\r\n for (var j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n };\r\n return Sha1;\r\n}());\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n var proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n function ObserverProxy(executor, onNoObservers) {\r\n var _this = this;\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(function () {\r\n executor(_this);\r\n })\r\n .catch(function (e) {\r\n _this.error(e);\r\n });\r\n }\r\n ObserverProxy.prototype.next = function (value) {\r\n this.forEachObserver(function (observer) {\r\n observer.next(value);\r\n });\r\n };\r\n ObserverProxy.prototype.error = function (error) {\r\n this.forEachObserver(function (observer) {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n };\r\n ObserverProxy.prototype.complete = function () {\r\n this.forEachObserver(function (observer) {\r\n observer.complete();\r\n });\r\n this.close();\r\n };\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n var _this = this;\r\n var observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error: error,\r\n complete: complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n try {\r\n if (_this.finalError) {\r\n observer.error(_this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n };\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n };\r\n ObserverProxy.prototype.forEachObserver = function (fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (var i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n };\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n ObserverProxy.prototype.sendOne = function (i, fn) {\r\n var _this = this;\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n try {\r\n fn(_this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n ObserverProxy.prototype.close = function (err) {\r\n var _this = this;\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(function () {\r\n _this.observers = undefined;\r\n _this.onNoObservers = undefined;\r\n });\r\n };\r\n return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n Promise.resolve(true)\r\n .then(function () {\r\n fn.apply(void 0, args);\r\n })\r\n .catch(function (error) {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n var method = methods_1[_i];\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n var argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n var error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argumentNumber The index of the argument\r\n * @param optional Whether or not the argument is optional\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n var argName = '';\r\n switch (argumentNumber) {\r\n case 1:\r\n argName = optional ? 'first' : 'First';\r\n break;\r\n case 2:\r\n argName = optional ? 'second' : 'Second';\r\n break;\r\n case 3:\r\n argName = optional ? 'third' : 'Third';\r\n break;\r\n case 4:\r\n argName = optional ? 'fourth' : 'Fourth';\r\n break;\r\n default:\r\n throw new Error('errorPrefix called with argumentNumber > 4. Need to update it?');\r\n }\r\n var error = fnName + ' failed: ';\r\n error += argName + ' argument ';\r\n return error;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n var out = [];\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n var high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n var p = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nvar DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nvar DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nvar MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nvar RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis, backoffFactor) {\r\n if (intervalMillis === void 0) { intervalMillis = DEFAULT_INTERVAL_MILLIS; }\r\n if (backoffFactor === void 0) { backoffFactor = DEFAULT_BACKOFF_FACTOR; }\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n var currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n var randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\nexports.CONSTANTS = CONSTANTS;\nexports.Deferred = Deferred;\nexports.ErrorFactory = ErrorFactory;\nexports.FirebaseError = FirebaseError;\nexports.MAX_VALUE_MILLIS = MAX_VALUE_MILLIS;\nexports.RANDOM_FACTOR = RANDOM_FACTOR;\nexports.Sha1 = Sha1;\nexports.areCookiesEnabled = areCookiesEnabled;\nexports.assert = assert;\nexports.assertionError = assertionError;\nexports.async = async;\nexports.base64 = base64;\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\nexports.calculateBackoffMillis = calculateBackoffMillis;\nexports.contains = contains;\nexports.createSubscribe = createSubscribe;\nexports.decode = decode;\nexports.deepCopy = deepCopy;\nexports.deepExtend = deepExtend;\nexports.errorPrefix = errorPrefix;\nexports.getUA = getUA;\nexports.isAdmin = isAdmin;\nexports.isBrowser = isBrowser;\nexports.isBrowserExtension = isBrowserExtension;\nexports.isElectron = isElectron;\nexports.isEmpty = isEmpty;\nexports.isIE = isIE;\nexports.isIndexedDBAvailable = isIndexedDBAvailable;\nexports.isMobileCordova = isMobileCordova;\nexports.isNode = isNode;\nexports.isNodeSdk = isNodeSdk;\nexports.isReactNative = isReactNative;\nexports.isSafari = isSafari;\nexports.isUWP = isUWP;\nexports.isValidFormat = isValidFormat;\nexports.isValidTimestamp = isValidTimestamp;\nexports.issuedAtTime = issuedAtTime;\nexports.jsonEval = jsonEval;\nexports.map = map;\nexports.querystring = querystring;\nexports.querystringDecode = querystringDecode;\nexports.safeGet = safeGet;\nexports.stringLength = stringLength;\nexports.stringToByteArray = stringToByteArray$1;\nexports.stringify = stringify;\nexports.validateArgCount = validateArgCount;\nexports.validateCallback = validateCallback;\nexports.validateContextObject = validateContextObject;\nexports.validateIndexedDBOpenable = validateIndexedDBOpenable;\nexports.validateNamespace = validateNamespace;\n//# sourceMappingURL=index.cjs.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3V0aWwvZGlzdC9pbmRleC5janMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDLEVBQUUsYUFBYSxFQUFDOztBQUU3RCxZQUFZLG1CQUFPLENBQUMsZ0RBQU87O0FBRTNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrQkFBa0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsOEJBQThCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MscUJBQU07QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix1QkFBdUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGdCQUFnQjtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLE1BQU0sSUFBSTs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxHQUFHO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixhQUFhLFdBQVc7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseUJBQXlCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxnQkFBZ0I7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isb0JBQW9CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFFBQVE7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFFBQVE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsUUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxTQUFTO0FBQ2xEO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixPQUFPO0FBQy9CLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDJCQUEyQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5Qix1QkFBdUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsdUJBQXVCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRCxXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQyxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQjtBQUNqQixnQkFBZ0I7QUFDaEIsb0JBQW9CO0FBQ3BCLHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIscUJBQXFCO0FBQ3JCLFlBQVk7QUFDWix5QkFBeUI7QUFDekIsY0FBYztBQUNkLHNCQUFzQjtBQUN0QixhQUFhO0FBQ2IsY0FBYztBQUNkLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsOEJBQThCO0FBQzlCLGdCQUFnQjtBQUNoQix1QkFBdUI7QUFDdkIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsbUJBQW1CO0FBQ25CLGFBQWE7QUFDYixlQUFlO0FBQ2YsaUJBQWlCO0FBQ2pCLDBCQUEwQjtBQUMxQixrQkFBa0I7QUFDbEIsZUFBZTtBQUNmLFlBQVk7QUFDWiw0QkFBNEI7QUFDNUIsdUJBQXVCO0FBQ3ZCLGNBQWM7QUFDZCxpQkFBaUI7QUFDakIscUJBQXFCO0FBQ3JCLGdCQUFnQjtBQUNoQixhQUFhO0FBQ2IscUJBQXFCO0FBQ3JCLHdCQUF3QjtBQUN4QixvQkFBb0I7QUFDcEIsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWCxtQkFBbUI7QUFDbkIseUJBQXlCO0FBQ3pCLGVBQWU7QUFDZixvQkFBb0I7QUFDcEIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQix3QkFBd0I7QUFDeEIsd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFDakMseUJBQXlCO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AZmlyZWJhc2UvdXRpbC9kaXN0L2luZGV4LmNqcy5qcz9jZDUxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblxudmFyIHRzbGliID0gcmVxdWlyZSgndHNsaWInKTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEBmaWxlb3ZlcnZpZXcgRmlyZWJhc2UgY29uc3RhbnRzLiAgU29tZSBvZiB0aGVzZSAoQGRlZmluZXMpIGNhbiBiZSBvdmVycmlkZGVuIGF0IGNvbXBpbGUtdGltZS5cclxuICovXHJcbnZhciBDT05TVEFOVFMgPSB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZWZpbmUge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBpcyB0aGUgY2xpZW50IE5vZGUuanMgU0RLLlxyXG4gICAgICovXHJcbiAgICBOT0RFX0NMSUVOVDogZmFsc2UsXHJcbiAgICAvKipcclxuICAgICAqIEBkZWZpbmUge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBpcyB0aGUgQWRtaW4gTm9kZS5qcyBTREsuXHJcbiAgICAgKi9cclxuICAgIE5PREVfQURNSU46IGZhbHNlLFxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlYmFzZSBTREsgVmVyc2lvblxyXG4gICAgICovXHJcbiAgICBTREtfVkVSU0lPTjogJyR7SlNDT1JFX1ZFUlNJT059J1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBwcm92aWRlZCBhc3NlcnRpb24gaXMgZmFsc3lcclxuICovXHJcbnZhciBhc3NlcnQgPSBmdW5jdGlvbiAoYXNzZXJ0aW9uLCBtZXNzYWdlKSB7XHJcbiAgICBpZiAoIWFzc2VydGlvbikge1xyXG4gICAgICAgIHRocm93IGFzc2VydGlvbkVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG59O1xyXG4vKipcclxuICogUmV0dXJucyBhbiBFcnJvciBvYmplY3Qgc3VpdGFibGUgZm9yIHRocm93aW5nLlxyXG4gKi9cclxudmFyIGFzc2VydGlvbkVycm9yID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcclxuICAgIHJldHVybiBuZXcgRXJyb3IoJ0ZpcmViYXNlIERhdGFiYXNlICgnICtcclxuICAgICAgICBDT05TVEFOVFMuU0RLX1ZFUlNJT04gK1xyXG4gICAgICAgICcpIElOVEVSTkFMIEFTU0VSVCBGQUlMRUQ6ICcgK1xyXG4gICAgICAgIG1lc3NhZ2UpO1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG52YXIgc3RyaW5nVG9CeXRlQXJyYXkgPSBmdW5jdGlvbiAoc3RyKSB7XHJcbiAgICAvLyBUT0RPKHVzZXIpOiBVc2UgbmF0aXZlIGltcGxlbWVudGF0aW9ucyBpZi93aGVuIGF2YWlsYWJsZVxyXG4gICAgdmFyIG91dCA9IFtdO1xyXG4gICAgdmFyIHAgPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIGlmIChjIDwgMTI4KSB7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gYztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYyA8IDIwNDgpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiA2KSB8IDE5MjtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyAmIDYzKSB8IDEyODtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGMgJiAweGZjMDApID09PSAweGQ4MDAgJiZcclxuICAgICAgICAgICAgaSArIDEgPCBzdHIubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIChzdHIuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcclxuICAgICAgICAgICAgLy8gU3Vycm9nYXRlIFBhaXJcclxuICAgICAgICAgICAgYyA9IDB4MTAwMDAgKyAoKGMgJiAweDAzZmYpIDw8IDEwKSArIChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHgwM2ZmKTtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxOCkgfCAyNDA7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDEyKSAmIDYzKSB8IDEyODtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjID4+IDEyKSB8IDIyNDtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dDtcclxufTtcclxuLyoqXHJcbiAqIFR1cm5zIGFuIGFycmF5IG9mIG51bWJlcnMgaW50byB0aGUgc3RyaW5nIGdpdmVuIGJ5IHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZVxyXG4gKiBjaGFyYWN0ZXJzIHRvIHdoaWNoIHRoZSBudW1iZXJzIGNvcnJlc3BvbmQuXHJcbiAqIEBwYXJhbSBieXRlcyBBcnJheSBvZiBudW1iZXJzIHJlcHJlc2VudGluZyBjaGFyYWN0ZXJzLlxyXG4gKiBAcmV0dXJuIFN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgYXJyYXkuXHJcbiAqL1xyXG52YXIgYnl0ZUFycmF5VG9TdHJpbmcgPSBmdW5jdGlvbiAoYnl0ZXMpIHtcclxuICAgIC8vIFRPRE8odXNlcik6IFVzZSBuYXRpdmUgaW1wbGVtZW50YXRpb25zIGlmL3doZW4gYXZhaWxhYmxlXHJcbiAgICB2YXIgb3V0ID0gW107XHJcbiAgICB2YXIgcG9zID0gMCwgYyA9IDA7XHJcbiAgICB3aGlsZSAocG9zIDwgYnl0ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFyIGMxID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgIGlmIChjMSA8IDEyOCkge1xyXG4gICAgICAgICAgICBvdXRbYysrXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYzEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjMSA+IDE5MSAmJiBjMSA8IDIyNCkge1xyXG4gICAgICAgICAgICB2YXIgYzIgPSBieXRlc1twb3MrK107XHJcbiAgICAgICAgICAgIG91dFtjKytdID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMxICYgMzEpIDw8IDYpIHwgKGMyICYgNjMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYzEgPiAyMzkgJiYgYzEgPCAzNjUpIHtcclxuICAgICAgICAgICAgLy8gU3Vycm9nYXRlIFBhaXJcclxuICAgICAgICAgICAgdmFyIGMyID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgICAgICB2YXIgYzMgPSBieXRlc1twb3MrK107XHJcbiAgICAgICAgICAgIHZhciBjNCA9IGJ5dGVzW3BvcysrXTtcclxuICAgICAgICAgICAgdmFyIHUgPSAoKChjMSAmIDcpIDw8IDE4KSB8ICgoYzIgJiA2MykgPDwgMTIpIHwgKChjMyAmIDYzKSA8PCA2KSB8IChjNCAmIDYzKSkgLVxyXG4gICAgICAgICAgICAgICAgMHgxMDAwMDtcclxuICAgICAgICAgICAgb3V0W2MrK10gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZDgwMCArICh1ID4+IDEwKSk7XHJcbiAgICAgICAgICAgIG91dFtjKytdID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGRjMDAgKyAodSAmIDEwMjMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBjMiA9IGJ5dGVzW3BvcysrXTtcclxuICAgICAgICAgICAgdmFyIGMzID0gYnl0ZXNbcG9zKytdO1xyXG4gICAgICAgICAgICBvdXRbYysrXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYgNjMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3V0LmpvaW4oJycpO1xyXG59O1xyXG4vLyBXZSBkZWZpbmUgaXQgYXMgYW4gb2JqZWN0IGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNsYXNzIGJlY2F1c2UgYSBjbGFzcyBjb21waWxlZCBkb3duIHRvIGVzNSBjYW4ndFxyXG4vLyBiZSB0cmVlc2hha2VkLiBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvMTY5MVxyXG4vLyBTdGF0aWMgbG9va3VwIG1hcHMsIGxhemlseSBwb3B1bGF0ZWQgYnkgaW5pdF8oKVxyXG52YXIgYmFzZTY0ID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGJ5dGVzIHRvIGNoYXJhY3RlcnMuXHJcbiAgICAgKi9cclxuICAgIGJ5dGVUb0NoYXJNYXBfOiBudWxsLFxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGNoYXJhY3RlcnMgdG8gYnl0ZXMuXHJcbiAgICAgKi9cclxuICAgIGNoYXJUb0J5dGVNYXBfOiBudWxsLFxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGJ5dGVzIHRvIHdlYnNhZmUgY2hhcmFjdGVycy5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIGJ5dGVUb0NoYXJNYXBXZWJTYWZlXzogbnVsbCxcclxuICAgIC8qKlxyXG4gICAgICogTWFwcyB3ZWJzYWZlIGNoYXJhY3RlcnMgdG8gYnl0ZXMuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBjaGFyVG9CeXRlTWFwV2ViU2FmZV86IG51bGwsXHJcbiAgICAvKipcclxuICAgICAqIE91ciBkZWZhdWx0IGFscGhhYmV0LCBzaGFyZWQgYmV0d2VlblxyXG4gICAgICogRU5DT0RFRF9WQUxTIGFuZCBFTkNPREVEX1ZBTFNfV0VCU0FGRVxyXG4gICAgICovXHJcbiAgICBFTkNPREVEX1ZBTFNfQkFTRTogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyArICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgKyAnMDEyMzQ1Njc4OScsXHJcbiAgICAvKipcclxuICAgICAqIE91ciBkZWZhdWx0IGFscGhhYmV0LiBWYWx1ZSA2NCAoPSkgaXMgc3BlY2lhbDsgaXQgbWVhbnMgXCJub3RoaW5nLlwiXHJcbiAgICAgKi9cclxuICAgIGdldCBFTkNPREVEX1ZBTFMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UgKyAnKy89JztcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIE91ciB3ZWJzYWZlIGFscGhhYmV0LlxyXG4gICAgICovXHJcbiAgICBnZXQgRU5DT0RFRF9WQUxTX1dFQlNBRkUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UgKyAnLV8uJztcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhpcyBicm93c2VyIHN1cHBvcnRzIHRoZSBhdG9iIGFuZCBidG9hIGZ1bmN0aW9ucy4gVGhpcyBleHRlbnNpb25cclxuICAgICAqIHN0YXJ0ZWQgYXQgTW96aWxsYSBidXQgaXMgbm93IGltcGxlbWVudGVkIGJ5IG1hbnkgYnJvd3NlcnMuIFdlIHVzZSB0aGVcclxuICAgICAqIEFTU1VNRV8qIHZhcmlhYmxlcyB0byBhdm9pZCBwdWxsaW5nIGluIHRoZSBmdWxsIHVzZXJhZ2VudCBkZXRlY3Rpb24gbGlicmFyeVxyXG4gICAgICogYnV0IHN0aWxsIGFsbG93aW5nIHRoZSBzdGFuZGFyZCBwZXItYnJvd3NlciBjb21waWxhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBIQVNfTkFUSVZFX1NVUFBPUlQ6IHR5cGVvZiBhdG9iID09PSAnZnVuY3Rpb24nLFxyXG4gICAgLyoqXHJcbiAgICAgKiBCYXNlNjQtZW5jb2RlIGFuIGFycmF5IG9mIGJ5dGVzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpbnB1dCBBbiBhcnJheSBvZiBieXRlcyAobnVtYmVycyB3aXRoXHJcbiAgICAgKiAgICAgdmFsdWUgaW4gWzAsIDI1NV0pIHRvIGVuY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIEJvb2xlYW4gaW5kaWNhdGluZyB3ZSBzaG91bGQgdXNlIHRoZVxyXG4gICAgICogICAgIGFsdGVybmF0aXZlIGFscGhhYmV0LlxyXG4gICAgICogQHJldHVybiBUaGUgYmFzZTY0IGVuY29kZWQgc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBlbmNvZGVCeXRlQXJyYXk6IGZ1bmN0aW9uIChpbnB1dCwgd2ViU2FmZSkge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2VuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluaXRfKCk7XHJcbiAgICAgICAgdmFyIGJ5dGVUb0NoYXJNYXAgPSB3ZWJTYWZlXHJcbiAgICAgICAgICAgID8gdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9cclxuICAgICAgICAgICAgOiB0aGlzLmJ5dGVUb0NoYXJNYXBfO1xyXG4gICAgICAgIHZhciBvdXRwdXQgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XHJcbiAgICAgICAgICAgIHZhciBieXRlMSA9IGlucHV0W2ldO1xyXG4gICAgICAgICAgICB2YXIgaGF2ZUJ5dGUyID0gaSArIDEgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMiA9IGhhdmVCeXRlMiA/IGlucHV0W2kgKyAxXSA6IDA7XHJcbiAgICAgICAgICAgIHZhciBoYXZlQnl0ZTMgPSBpICsgMiA8IGlucHV0Lmxlbmd0aDtcclxuICAgICAgICAgICAgdmFyIGJ5dGUzID0gaGF2ZUJ5dGUzID8gaW5wdXRbaSArIDJdIDogMDtcclxuICAgICAgICAgICAgdmFyIG91dEJ5dGUxID0gYnl0ZTEgPj4gMjtcclxuICAgICAgICAgICAgdmFyIG91dEJ5dGUyID0gKChieXRlMSAmIDB4MDMpIDw8IDQpIHwgKGJ5dGUyID4+IDQpO1xyXG4gICAgICAgICAgICB2YXIgb3V0Qnl0ZTMgPSAoKGJ5dGUyICYgMHgwZikgPDwgMikgfCAoYnl0ZTMgPj4gNik7XHJcbiAgICAgICAgICAgIHZhciBvdXRCeXRlNCA9IGJ5dGUzICYgMHgzZjtcclxuICAgICAgICAgICAgaWYgKCFoYXZlQnl0ZTMpIHtcclxuICAgICAgICAgICAgICAgIG91dEJ5dGU0ID0gNjQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWhhdmVCeXRlMikge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dEJ5dGUzID0gNjQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3V0cHV0LnB1c2goYnl0ZVRvQ2hhck1hcFtvdXRCeXRlMV0sIGJ5dGVUb0NoYXJNYXBbb3V0Qnl0ZTJdLCBieXRlVG9DaGFyTWFwW291dEJ5dGUzXSwgYnl0ZVRvQ2hhck1hcFtvdXRCeXRlNF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0LmpvaW4oJycpO1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogQmFzZTY0LWVuY29kZSBhIHN0cmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaW5wdXQgQSBzdHJpbmcgdG8gZW5jb2RlLlxyXG4gICAgICogQHBhcmFtIHdlYlNhZmUgSWYgdHJ1ZSwgd2Ugc2hvdWxkIHVzZSB0aGVcclxuICAgICAqICAgICBhbHRlcm5hdGl2ZSBhbHBoYWJldC5cclxuICAgICAqIEByZXR1cm4gVGhlIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgZW5jb2RlU3RyaW5nOiBmdW5jdGlvbiAoaW5wdXQsIHdlYlNhZmUpIHtcclxuICAgICAgICAvLyBTaG9ydGN1dCBmb3IgTW96aWxsYSBicm93c2VycyB0aGF0IGltcGxlbWVudFxyXG4gICAgICAgIC8vIGEgbmF0aXZlIGJhc2U2NCBlbmNvZGVyIGluIHRoZSBmb3JtIG9mIFwiYnRvYS9hdG9iXCJcclxuICAgICAgICBpZiAodGhpcy5IQVNfTkFUSVZFX1NVUFBPUlQgJiYgIXdlYlNhZmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGJ0b2EoaW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5lbmNvZGVCeXRlQXJyYXkoc3RyaW5nVG9CeXRlQXJyYXkoaW5wdXQpLCB3ZWJTYWZlKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIEJhc2U2NC1kZWNvZGUgYSBzdHJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlucHV0IHRvIGRlY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIFRydWUgaWYgd2Ugc2hvdWxkIHVzZSB0aGVcclxuICAgICAqICAgICBhbHRlcm5hdGl2ZSBhbHBoYWJldC5cclxuICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgZGVjb2RlZCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgZGVjb2RlU3RyaW5nOiBmdW5jdGlvbiAoaW5wdXQsIHdlYlNhZmUpIHtcclxuICAgICAgICAvLyBTaG9ydGN1dCBmb3IgTW96aWxsYSBicm93c2VycyB0aGF0IGltcGxlbWVudFxyXG4gICAgICAgIC8vIGEgbmF0aXZlIGJhc2U2NCBlbmNvZGVyIGluIHRoZSBmb3JtIG9mIFwiYnRvYS9hdG9iXCJcclxuICAgICAgICBpZiAodGhpcy5IQVNfTkFUSVZFX1NVUFBPUlQgJiYgIXdlYlNhZmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF0b2IoaW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZUFycmF5VG9TdHJpbmcodGhpcy5kZWNvZGVTdHJpbmdUb0J5dGVBcnJheShpbnB1dCwgd2ViU2FmZSkpO1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogQmFzZTY0LWRlY29kZSBhIHN0cmluZy5cclxuICAgICAqXHJcbiAgICAgKiBJbiBiYXNlLTY0IGRlY29kaW5nLCBncm91cHMgb2YgZm91ciBjaGFyYWN0ZXJzIGFyZSBjb252ZXJ0ZWQgaW50byB0aHJlZVxyXG4gICAgICogYnl0ZXMuICBJZiB0aGUgZW5jb2RlciBkaWQgbm90IGFwcGx5IHBhZGRpbmcsIHRoZSBpbnB1dCBsZW5ndGggbWF5IG5vdFxyXG4gICAgICogYmUgYSBtdWx0aXBsZSBvZiA0LlxyXG4gICAgICpcclxuICAgICAqIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgZ3JvdXAgd2lsbCBoYXZlIGZld2VyIHRoYW4gNCBjaGFyYWN0ZXJzLCBhbmRcclxuICAgICAqIHBhZGRpbmcgd2lsbCBiZSBpbmZlcnJlZC4gIElmIHRoZSBncm91cCBoYXMgb25lIG9yIHR3byBjaGFyYWN0ZXJzLCBpdCBkZWNvZGVzXHJcbiAgICAgKiB0byBvbmUgYnl0ZS4gIElmIHRoZSBncm91cCBoYXMgdGhyZWUgY2hhcmFjdGVycywgaXQgZGVjb2RlcyB0byB0d28gYnl0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGlucHV0IElucHV0IHRvIGRlY29kZS5cclxuICAgICAqIEBwYXJhbSB3ZWJTYWZlIFRydWUgaWYgd2Ugc2hvdWxkIHVzZSB0aGUgd2ViLXNhZmUgYWxwaGFiZXQuXHJcbiAgICAgKiBAcmV0dXJuIGJ5dGVzIHJlcHJlc2VudGluZyB0aGUgZGVjb2RlZCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgZGVjb2RlU3RyaW5nVG9CeXRlQXJyYXk6IGZ1bmN0aW9uIChpbnB1dCwgd2ViU2FmZSkge1xyXG4gICAgICAgIHRoaXMuaW5pdF8oKTtcclxuICAgICAgICB2YXIgY2hhclRvQnl0ZU1hcCA9IHdlYlNhZmVcclxuICAgICAgICAgICAgPyB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1xyXG4gICAgICAgICAgICA6IHRoaXMuY2hhclRvQnl0ZU1hcF87XHJcbiAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOykge1xyXG4gICAgICAgICAgICB2YXIgYnl0ZTEgPSBjaGFyVG9CeXRlTWFwW2lucHV0LmNoYXJBdChpKyspXTtcclxuICAgICAgICAgICAgdmFyIGhhdmVCeXRlMiA9IGkgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMiA9IGhhdmVCeXRlMiA/IGNoYXJUb0J5dGVNYXBbaW5wdXQuY2hhckF0KGkpXSA6IDA7XHJcbiAgICAgICAgICAgICsraTtcclxuICAgICAgICAgICAgdmFyIGhhdmVCeXRlMyA9IGkgPCBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIHZhciBieXRlMyA9IGhhdmVCeXRlMyA/IGNoYXJUb0J5dGVNYXBbaW5wdXQuY2hhckF0KGkpXSA6IDY0O1xyXG4gICAgICAgICAgICArK2k7XHJcbiAgICAgICAgICAgIHZhciBoYXZlQnl0ZTQgPSBpIDwgaW5wdXQubGVuZ3RoO1xyXG4gICAgICAgICAgICB2YXIgYnl0ZTQgPSBoYXZlQnl0ZTQgPyBjaGFyVG9CeXRlTWFwW2lucHV0LmNoYXJBdChpKV0gOiA2NDtcclxuICAgICAgICAgICAgKytpO1xyXG4gICAgICAgICAgICBpZiAoYnl0ZTEgPT0gbnVsbCB8fCBieXRlMiA9PSBudWxsIHx8IGJ5dGUzID09IG51bGwgfHwgYnl0ZTQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgb3V0Qnl0ZTEgPSAoYnl0ZTEgPDwgMikgfCAoYnl0ZTIgPj4gNCk7XHJcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKG91dEJ5dGUxKTtcclxuICAgICAgICAgICAgaWYgKGJ5dGUzICE9PSA2NCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG91dEJ5dGUyID0gKChieXRlMiA8PCA0KSAmIDB4ZjApIHwgKGJ5dGUzID4+IDIpO1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0LnB1c2gob3V0Qnl0ZTIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGJ5dGU0ICE9PSA2NCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBvdXRCeXRlMyA9ICgoYnl0ZTMgPDwgNikgJiAweGMwKSB8IGJ5dGU0O1xyXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKG91dEJ5dGUzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICogTGF6eSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIENhbGxlZCBiZWZvcmVcclxuICAgICAqIGFjY2Vzc2luZyBhbnkgb2YgdGhlIHN0YXRpYyBtYXAgdmFyaWFibGVzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgaW5pdF86IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYnl0ZVRvQ2hhck1hcF8pIHtcclxuICAgICAgICAgICAgdGhpcy5ieXRlVG9DaGFyTWFwXyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBfID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcFdlYlNhZmVfID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuY2hhclRvQnl0ZU1hcFdlYlNhZmVfID0ge307XHJcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgcXVpY2sgbWFwcGluZ3MgYmFjayBhbmQgZm9ydGgsIHNvIHdlIHByZWNvbXB1dGUgdHdvIG1hcHMuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5FTkNPREVEX1ZBTFMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcF9baV0gPSB0aGlzLkVOQ09ERURfVkFMUy5jaGFyQXQoaSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBfW3RoaXMuYnl0ZVRvQ2hhck1hcF9baV1dID0gaTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZVRvQ2hhck1hcFdlYlNhZmVfW2ldID0gdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQoaSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1t0aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlX1tpXV0gPSBpO1xyXG4gICAgICAgICAgICAgICAgLy8gQmUgZm9yZ2l2aW5nIHdoZW4gZGVjb2RpbmcgYW5kIGNvcnJlY3RseSBkZWNvZGUgYm90aCBlbmNvZGluZ3MuXHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSB0aGlzLkVOQ09ERURfVkFMU19CQVNFLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQoaSldID0gaTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlX1t0aGlzLkVOQ09ERURfVkFMUy5jaGFyQXQoaSldID0gaTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuLyoqXHJcbiAqIFVSTC1zYWZlIGJhc2U2NCBlbmNvZGluZ1xyXG4gKi9cclxudmFyIGJhc2U2NEVuY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHZhciB1dGY4Qnl0ZXMgPSBzdHJpbmdUb0J5dGVBcnJheShzdHIpO1xyXG4gICAgcmV0dXJuIGJhc2U2NC5lbmNvZGVCeXRlQXJyYXkodXRmOEJ5dGVzLCB0cnVlKTtcclxufTtcclxuLyoqXHJcbiAqIFVSTC1zYWZlIGJhc2U2NCBkZWNvZGluZ1xyXG4gKlxyXG4gKiBOT1RFOiBETyBOT1QgdXNlIHRoZSBnbG9iYWwgYXRvYigpIGZ1bmN0aW9uIC0gaXQgZG9lcyBOT1Qgc3VwcG9ydCB0aGVcclxuICogYmFzZTY0VXJsIHZhcmlhbnQgZW5jb2RpbmcuXHJcbiAqXHJcbiAqIEBwYXJhbSBzdHIgVG8gYmUgZGVjb2RlZFxyXG4gKiBAcmV0dXJuIERlY29kZWQgcmVzdWx0LCBpZiBwb3NzaWJsZVxyXG4gKi9cclxudmFyIGJhc2U2NERlY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgcmV0dXJuIGJhc2U2NC5kZWNvZGVTdHJpbmcoc3RyLCB0cnVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignYmFzZTY0RGVjb2RlIGZhaWxlZDogJywgZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIERvIGEgZGVlcC1jb3B5IG9mIGJhc2ljIEphdmFTY3JpcHQgT2JqZWN0cyBvciBBcnJheXMuXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWVwQ29weSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIGRlZXBFeHRlbmQodW5kZWZpbmVkLCB2YWx1ZSk7XHJcbn1cclxuLyoqXHJcbiAqIENvcHkgcHJvcGVydGllcyBmcm9tIHNvdXJjZSB0byB0YXJnZXQgKHJlY3Vyc2l2ZWx5IGFsbG93cyBleHRlbnNpb25cclxuICogb2YgT2JqZWN0cyBhbmQgQXJyYXlzKS4gIFNjYWxhciB2YWx1ZXMgaW4gdGhlIHRhcmdldCBhcmUgb3Zlci13cml0dGVuLlxyXG4gKiBJZiB0YXJnZXQgaXMgdW5kZWZpbmVkLCBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUgd2lsbCBiZSBjcmVhdGVkXHJcbiAqIChhbmQgcmV0dXJuZWQpLlxyXG4gKlxyXG4gKiBXZSByZWN1cnNpdmVseSBjb3B5IGFsbCBjaGlsZCBwcm9wZXJ0aWVzIG9mIHBsYWluIE9iamVjdHMgaW4gdGhlIHNvdXJjZS0gc29cclxuICogdGhhdCBuYW1lc3BhY2UtIGxpa2UgZGljdGlvbmFyaWVzIGFyZSBtZXJnZWQuXHJcbiAqXHJcbiAqIE5vdGUgdGhhdCB0aGUgdGFyZ2V0IGNhbiBiZSBhIGZ1bmN0aW9uLCBpbiB3aGljaCBjYXNlIHRoZSBwcm9wZXJ0aWVzIGluXHJcbiAqIHRoZSBzb3VyY2UgT2JqZWN0IGFyZSBjb3BpZWQgb250byBpdCBhcyBzdGF0aWMgcHJvcGVydGllcyBvZiB0aGUgRnVuY3Rpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldCwgc291cmNlKSB7XHJcbiAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAoc291cmNlLmNvbnN0cnVjdG9yKSB7XHJcbiAgICAgICAgY2FzZSBEYXRlOlxyXG4gICAgICAgICAgICAvLyBUcmVhdCBEYXRlcyBsaWtlIHNjYWxhcnM7IGlmIHRoZSB0YXJnZXQgZGF0ZSBvYmplY3QgaGFkIGFueSBjaGlsZFxyXG4gICAgICAgICAgICAvLyBwcm9wZXJ0aWVzIC0gdGhleSB3aWxsIGJlIGxvc3QhXHJcbiAgICAgICAgICAgIHZhciBkYXRlVmFsdWUgPSBzb3VyY2U7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlVmFsdWUuZ2V0VGltZSgpKTtcclxuICAgICAgICBjYXNlIE9iamVjdDpcclxuICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEFycmF5OlxyXG4gICAgICAgICAgICAvLyBBbHdheXMgY29weSB0aGUgYXJyYXkgc291cmNlIGFuZCBvdmVyd3JpdGUgdGhlIHRhcmdldC5cclxuICAgICAgICAgICAgdGFyZ2V0ID0gW107XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIC8vIE5vdCBhIHBsYWluIE9iamVjdCAtIHRyZWF0IGl0IGFzIGEgc2NhbGFyLlxyXG4gICAgICAgICAgICByZXR1cm4gc291cmNlO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgcHJvcCBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gZGVlcEV4dGVuZCh0YXJnZXRbcHJvcF0sIHNvdXJjZVtwcm9wXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG59XG5cbi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcbnZhciBEZWZlcnJlZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIERlZmVycmVkKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5yZWplY3QgPSBmdW5jdGlvbiAoKSB7IH07XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlID0gZnVuY3Rpb24gKCkgeyB9O1xyXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgX3RoaXMucmVzb2x2ZSA9IHJlc29sdmU7XHJcbiAgICAgICAgICAgIF90aGlzLnJlamVjdCA9IHJlamVjdDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT3VyIEFQSSBpbnRlcm5hbHMgYXJlIG5vdCBwcm9taXNlaWZpZWQgYW5kIGNhbm5vdCBiZWNhdXNlIG91ciBjYWxsYmFjayBBUElzIGhhdmUgc3VidGxlIGV4cGVjdGF0aW9ucyBhcm91bmRcclxuICAgICAqIGludm9raW5nIHByb21pc2VzIGlubGluZSwgd2hpY2ggUHJvbWlzZXMgYXJlIGZvcmJpZGRlbiB0byBkby4gVGhpcyBtZXRob2QgYWNjZXB0cyBhbiBvcHRpb25hbCBub2RlLXN0eWxlIGNhbGxiYWNrXHJcbiAgICAgKiBhbmQgcmV0dXJucyBhIG5vZGUtc3R5bGUgY2FsbGJhY2sgd2hpY2ggd2lsbCByZXNvbHZlIG9yIHJlamVjdCB0aGUgRGVmZXJyZWQncyBwcm9taXNlLlxyXG4gICAgICovXHJcbiAgICBEZWZlcnJlZC5wcm90b3R5cGUud3JhcENhbGxiYWNrID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGVycm9yLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLnJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5yZXNvbHZlKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBBdHRhY2hpbmcgbm9vcCBoYW5kbGVyIGp1c3QgaW4gY2FzZSBkZXZlbG9wZXIgd2Fzbid0IGV4cGVjdGluZ1xyXG4gICAgICAgICAgICAgICAgLy8gcHJvbWlzZXNcclxuICAgICAgICAgICAgICAgIF90aGlzLnByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkgeyB9KTtcclxuICAgICAgICAgICAgICAgIC8vIFNvbWUgb2Ygb3VyIGNhbGxiYWNrcyBkb24ndCBleHBlY3QgYSB2YWx1ZSBhbmQgb3VyIG93biB0ZXN0c1xyXG4gICAgICAgICAgICAgICAgLy8gYXNzZXJ0IHRoYXQgdGhlIHBhcmFtZXRlciBsZW5ndGggaXMgMVxyXG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBEZWZlcnJlZDtcclxufSgpKTtcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIFJldHVybnMgbmF2aWdhdG9yLnVzZXJBZ2VudCBzdHJpbmcgb3IgJycgaWYgaXQncyBub3QgZGVmaW5lZC5cclxuICogQHJldHVybiB1c2VyIGFnZW50IHN0cmluZ1xyXG4gKi9cclxuZnVuY3Rpb24gZ2V0VUEoKSB7XHJcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICB0eXBlb2YgbmF2aWdhdG9yWyd1c2VyQWdlbnQnXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gbmF2aWdhdG9yWyd1c2VyQWdlbnQnXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4vKipcclxuICogRGV0ZWN0IENvcmRvdmEgLyBQaG9uZUdhcCAvIElvbmljIGZyYW1ld29ya3Mgb24gYSBtb2JpbGUgZGV2aWNlLlxyXG4gKlxyXG4gKiBEZWxpYmVyYXRlbHkgZG9lcyBub3QgcmVseSBvbiBjaGVja2luZyBgZmlsZTovL2AgVVJMcyAoYXMgdGhpcyBmYWlscyBQaG9uZUdhcFxyXG4gKiBpbiB0aGUgUmlwcGxlIGVtdWxhdG9yKSBub3IgQ29yZG92YSBgb25EZXZpY2VSZWFkeWAsIHdoaWNoIHdvdWxkIG5vcm1hbGx5XHJcbiAqIHdhaXQgZm9yIGEgY2FsbGJhY2suXHJcbiAqL1xyXG5mdW5jdGlvbiBpc01vYmlsZUNvcmRvdmEoKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZSBTZXR0aW5nIHVwIGFuIGJyb2FkbHkgYXBwbGljYWJsZSBpbmRleCBzaWduYXR1cmUgZm9yIFdpbmRvd1xyXG4gICAgICAgIC8vIGp1c3QgdG8gZGVhbCB3aXRoIHRoaXMgY2FzZSB3b3VsZCBwcm9iYWJseSBiZSBhIGJhZCBpZGVhLlxyXG4gICAgICAgICEhKHdpbmRvd1snY29yZG92YSddIHx8IHdpbmRvd1sncGhvbmVnYXAnXSB8fCB3aW5kb3dbJ1Bob25lR2FwJ10pICYmXHJcbiAgICAgICAgL2lvc3xpcGhvbmV8aXBvZHxpcGFkfGFuZHJvaWR8YmxhY2tiZXJyeXxpZW1vYmlsZS9pLnRlc3QoZ2V0VUEoKSkpO1xyXG59XHJcbi8qKlxyXG4gKiBEZXRlY3QgTm9kZS5qcy5cclxuICpcclxuICogQHJldHVybiB0cnVlIGlmIE5vZGUuanMgZW52aXJvbm1lbnQgaXMgZGV0ZWN0ZWQuXHJcbiAqL1xyXG4vLyBOb2RlIGRldGVjdGlvbiBsb2dpYyBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vaWxpYWthbi9kZXRlY3Qtbm9kZS9cclxuZnVuY3Rpb24gaXNOb2RlKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChnbG9iYWwucHJvY2VzcykgPT09ICdbb2JqZWN0IHByb2Nlc3NdJyk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogRGV0ZWN0IEJyb3dzZXIgRW52aXJvbm1lbnRcclxuICovXHJcbmZ1bmN0aW9uIGlzQnJvd3NlcigpIHtcclxuICAgIHJldHVybiB0eXBlb2Ygc2VsZiA9PT0gJ29iamVjdCcgJiYgc2VsZi5zZWxmID09PSBzZWxmO1xyXG59XHJcbmZ1bmN0aW9uIGlzQnJvd3NlckV4dGVuc2lvbigpIHtcclxuICAgIHZhciBydW50aW1lID0gdHlwZW9mIGNocm9tZSA9PT0gJ29iamVjdCdcclxuICAgICAgICA/IGNocm9tZS5ydW50aW1lXHJcbiAgICAgICAgOiB0eXBlb2YgYnJvd3NlciA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgPyBicm93c2VyLnJ1bnRpbWVcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdHlwZW9mIHJ1bnRpbWUgPT09ICdvYmplY3QnICYmIHJ1bnRpbWUuaWQgIT09IHVuZGVmaW5lZDtcclxufVxyXG4vKipcclxuICogRGV0ZWN0IFJlYWN0IE5hdGl2ZS5cclxuICpcclxuICogQHJldHVybiB0cnVlIGlmIFJlYWN0TmF0aXZlIGVudmlyb25tZW50IGlzIGRldGVjdGVkLlxyXG4gKi9cclxuZnVuY3Rpb24gaXNSZWFjdE5hdGl2ZSgpIHtcclxuICAgIHJldHVybiAodHlwZW9mIG5hdmlnYXRvciA9PT0gJ29iamVjdCcgJiYgbmF2aWdhdG9yWydwcm9kdWN0J10gPT09ICdSZWFjdE5hdGl2ZScpO1xyXG59XHJcbi8qKiBEZXRlY3RzIEVsZWN0cm9uIGFwcHMuICovXHJcbmZ1bmN0aW9uIGlzRWxlY3Ryb24oKSB7XHJcbiAgICByZXR1cm4gZ2V0VUEoKS5pbmRleE9mKCdFbGVjdHJvbi8nKSA+PSAwO1xyXG59XHJcbi8qKiBEZXRlY3RzIEludGVybmV0IEV4cGxvcmVyLiAqL1xyXG5mdW5jdGlvbiBpc0lFKCkge1xyXG4gICAgdmFyIHVhID0gZ2V0VUEoKTtcclxuICAgIHJldHVybiB1YS5pbmRleE9mKCdNU0lFICcpID49IDAgfHwgdWEuaW5kZXhPZignVHJpZGVudC8nKSA+PSAwO1xyXG59XHJcbi8qKiBEZXRlY3RzIFVuaXZlcnNhbCBXaW5kb3dzIFBsYXRmb3JtIGFwcHMuICovXHJcbmZ1bmN0aW9uIGlzVVdQKCkge1xyXG4gICAgcmV0dXJuIGdldFVBKCkuaW5kZXhPZignTVNBcHBIb3N0LycpID49IDA7XHJcbn1cclxuLyoqXHJcbiAqIERldGVjdCB3aGV0aGVyIHRoZSBjdXJyZW50IFNESyBidWlsZCBpcyB0aGUgTm9kZSB2ZXJzaW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHRydWUgaWYgaXQncyB0aGUgTm9kZSBTREsgYnVpbGQuXHJcbiAqL1xyXG5mdW5jdGlvbiBpc05vZGVTZGsoKSB7XHJcbiAgICByZXR1cm4gQ09OU1RBTlRTLk5PREVfQ0xJRU5UID09PSB0cnVlIHx8IENPTlNUQU5UUy5OT0RFX0FETUlOID09PSB0cnVlO1xyXG59XHJcbi8qKiBSZXR1cm5zIHRydWUgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gU2FmYXJpLiAqL1xyXG5mdW5jdGlvbiBpc1NhZmFyaSgpIHtcclxuICAgIHJldHVybiAoIWlzTm9kZSgpICYmXHJcbiAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnU2FmYXJpJykgJiZcclxuICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJykpO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgaW5kZXhlZERCIGlzIHN1cHBvcnRlZCBieSBjdXJyZW50IGJyb3dzZXIvc2VydmljZSB3b3JrZXIgY29udGV4dFxyXG4gKiBAcmV0dXJuIHRydWUgaWYgaW5kZXhlZERCIGlzIHN1cHBvcnRlZCBieSBjdXJyZW50IGJyb3dzZXIvc2VydmljZSB3b3JrZXIgY29udGV4dFxyXG4gKi9cclxuZnVuY3Rpb24gaXNJbmRleGVkREJBdmFpbGFibGUoKSB7XHJcbiAgICByZXR1cm4gJ2luZGV4ZWREQicgaW4gc2VsZiAmJiBpbmRleGVkREIgIT0gbnVsbDtcclxufVxyXG4vKipcclxuICogVGhpcyBtZXRob2QgdmFsaWRhdGVzIGJyb3dzZXIgY29udGV4dCBmb3IgaW5kZXhlZERCIGJ5IG9wZW5pbmcgYSBkdW1teSBpbmRleGVkREIgZGF0YWJhc2UgYW5kIHJlamVjdFxyXG4gKiBpZiBlcnJvcnMgb2NjdXIgZHVyaW5nIHRoZSBkYXRhYmFzZSBvcGVuIG9wZXJhdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIHZhbGlkYXRlSW5kZXhlZERCT3BlbmFibGUoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBwcmVFeGlzdF8xID0gdHJ1ZTtcclxuICAgICAgICAgICAgdmFyIERCX0NIRUNLX05BTUVfMSA9ICd2YWxpZGF0ZS1icm93c2VyLWNvbnRleHQtZm9yLWluZGV4ZWRkYi1hbmFseXRpY3MtbW9kdWxlJztcclxuICAgICAgICAgICAgdmFyIHJlcXVlc3RfMSA9IHdpbmRvdy5pbmRleGVkREIub3BlbihEQl9DSEVDS19OQU1FXzEpO1xyXG4gICAgICAgICAgICByZXF1ZXN0XzEub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmVxdWVzdF8xLnJlc3VsdC5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgLy8gZGVsZXRlIGRhdGFiYXNlIG9ubHkgd2hlbiBpdCBkb2Vzbid0IHByZS1leGlzdFxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmVFeGlzdF8xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShEQl9DSEVDS19OQU1FXzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmVxdWVzdF8xLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHByZUV4aXN0XzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmVxdWVzdF8xLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoKChfYSA9IHJlcXVlc3RfMS5lcnJvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1lc3NhZ2UpIHx8ICcnKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuLyoqXHJcbiAqXHJcbiAqIFRoaXMgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGNvb2tpZSBpcyBlbmFibGVkIHdpdGhpbiBjdXJyZW50IGJyb3dzZXJcclxuICogQHJldHVybiB0cnVlIGlmIGNvb2tpZSBpcyBlbmFibGVkIHdpdGhpbiBjdXJyZW50IGJyb3dzZXJcclxuICovXHJcbmZ1bmN0aW9uIGFyZUNvb2tpZXNFbmFibGVkKCkge1xyXG4gICAgaWYgKCFuYXZpZ2F0b3IgfHwgIW5hdmlnYXRvci5jb29raWVFbmFibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxudmFyIEVSUk9SX05BTUUgPSAnRmlyZWJhc2VFcnJvcic7XHJcbi8vIEJhc2VkIG9uIGNvZGUgZnJvbTpcclxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRXJyb3IjQ3VzdG9tX0Vycm9yX1R5cGVzXHJcbnZhciBGaXJlYmFzZUVycm9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgdHNsaWIuX19leHRlbmRzKEZpcmViYXNlRXJyb3IsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBGaXJlYmFzZUVycm9yKGNvZGUsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBtZXNzYWdlKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmNvZGUgPSBjb2RlO1xyXG4gICAgICAgIF90aGlzLm5hbWUgPSBFUlJPUl9OQU1FO1xyXG4gICAgICAgIC8vIEZpeCBGb3IgRVM1XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0LXdpa2kvYmxvYi9tYXN0ZXIvQnJlYWtpbmctQ2hhbmdlcy5tZCNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcclxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX3RoaXMsIEZpcmViYXNlRXJyb3IucHJvdG90eXBlKTtcclxuICAgICAgICAvLyBNYWludGFpbnMgcHJvcGVyIHN0YWNrIHRyYWNlIGZvciB3aGVyZSBvdXIgZXJyb3Igd2FzIHRocm93bi5cclxuICAgICAgICAvLyBPbmx5IGF2YWlsYWJsZSBvbiBWOC5cclxuICAgICAgICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcclxuICAgICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoX3RoaXMsIEVycm9yRmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEZpcmViYXNlRXJyb3I7XHJcbn0oRXJyb3IpKTtcclxudmFyIEVycm9yRmFjdG9yeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEVycm9yRmFjdG9yeShzZXJ2aWNlLCBzZXJ2aWNlTmFtZSwgZXJyb3JzKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcclxuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XHJcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XHJcbiAgICB9XHJcbiAgICBFcnJvckZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZSA9IGZ1bmN0aW9uIChjb2RlKSB7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBkYXRhW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY3VzdG9tRGF0YSA9IGRhdGFbMF0gfHwge307XHJcbiAgICAgICAgdmFyIGZ1bGxDb2RlID0gdGhpcy5zZXJ2aWNlICsgXCIvXCIgKyBjb2RlO1xyXG4gICAgICAgIHZhciB0ZW1wbGF0ZSA9IHRoaXMuZXJyb3JzW2NvZGVdO1xyXG4gICAgICAgIHZhciBtZXNzYWdlID0gdGVtcGxhdGUgPyByZXBsYWNlVGVtcGxhdGUodGVtcGxhdGUsIGN1c3RvbURhdGEpIDogJ0Vycm9yJztcclxuICAgICAgICAvLyBTZXJ2aWNlIE5hbWU6IEVycm9yIG1lc3NhZ2UgKHNlcnZpY2UvY29kZSkuXHJcbiAgICAgICAgdmFyIGZ1bGxNZXNzYWdlID0gdGhpcy5zZXJ2aWNlTmFtZSArIFwiOiBcIiArIG1lc3NhZ2UgKyBcIiAoXCIgKyBmdWxsQ29kZSArIFwiKS5cIjtcclxuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRmlyZWJhc2VFcnJvcihmdWxsQ29kZSwgZnVsbE1lc3NhZ2UpO1xyXG4gICAgICAgIC8vIEtleXMgd2l0aCBhbiB1bmRlcnNjb3JlIGF0IHRoZSBlbmQgb2YgdGhlaXIgbmFtZSBhcmUgbm90IGluY2x1ZGVkIGluXHJcbiAgICAgICAgLy8gZXJyb3IuZGF0YSBmb3Igc29tZSByZWFzb24uXHJcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB3aXRoIE9iamVjdC5lbnRyaWVzIHdoZW4gbGliIGlzIHVwZGF0ZWQgdG8gZXMyMDE3LlxyXG4gICAgICAgIGZvciAodmFyIF9hID0gMCwgX2IgPSBPYmplY3Qua2V5cyhjdXN0b21EYXRhKTsgX2EgPCBfYi5sZW5ndGg7IF9hKyspIHtcclxuICAgICAgICAgICAgdmFyIGtleSA9IF9iW19hXTtcclxuICAgICAgICAgICAgaWYgKGtleS5zbGljZSgtMSkgIT09ICdfJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiBlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIk92ZXJ3cml0aW5nIEZpcmViYXNlRXJyb3IgYmFzZSBmaWVsZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZXJyb3Jba2V5XSA9IGN1c3RvbURhdGFba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIEVycm9yRmFjdG9yeTtcclxufSgpKTtcclxuZnVuY3Rpb24gcmVwbGFjZVRlbXBsYXRlKHRlbXBsYXRlLCBkYXRhKSB7XHJcbiAgICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZShQQVRURVJOLCBmdW5jdGlvbiAoXywga2V5KSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsID8gU3RyaW5nKHZhbHVlKSA6IFwiPFwiICsga2V5ICsgXCI/PlwiO1xyXG4gICAgfSk7XHJcbn1cclxudmFyIFBBVFRFUk4gPSAvXFx7XFwkKFtefV0rKX0vZztcblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEV2YWx1YXRlcyBhIEpTT04gc3RyaW5nIGludG8gYSBqYXZhc2NyaXB0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciBBIHN0cmluZyBjb250YWluaW5nIEpTT04uXHJcbiAqIEByZXR1cm4geyp9IFRoZSBqYXZhc2NyaXB0IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmllZCBKU09OLlxyXG4gKi9cclxuZnVuY3Rpb24ganNvbkV2YWwoc3RyKSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdHIpO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIEpTT04gcmVwcmVzZW50aW5nIGEgamF2YXNjcmlwdCBvYmplY3QuXHJcbiAqIEBwYXJhbSB7Kn0gZGF0YSBKYXZhc2NyaXB0IG9iamVjdCB0byBiZSBzdHJpbmdpZmllZC5cclxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgSlNPTiBjb250ZW50cyBvZiB0aGUgb2JqZWN0LlxyXG4gKi9cclxuZnVuY3Rpb24gc3RyaW5naWZ5KGRhdGEpIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcclxufVxuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogRGVjb2RlcyBhIEZpcmViYXNlIGF1dGguIHRva2VuIGludG8gY29uc3RpdHVlbnQgcGFydHMuXHJcbiAqXHJcbiAqIE5vdGVzOlxyXG4gKiAtIE1heSByZXR1cm4gd2l0aCBpbnZhbGlkIC8gaW5jb21wbGV0ZSBjbGFpbXMgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgZGVjb2RlID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgaGVhZGVyID0ge30sIGNsYWltcyA9IHt9LCBkYXRhID0ge30sIHNpZ25hdHVyZSA9ICcnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgICAgIGhlYWRlciA9IGpzb25FdmFsKGJhc2U2NERlY29kZShwYXJ0c1swXSkgfHwgJycpO1xyXG4gICAgICAgIGNsYWltcyA9IGpzb25FdmFsKGJhc2U2NERlY29kZShwYXJ0c1sxXSkgfHwgJycpO1xyXG4gICAgICAgIHNpZ25hdHVyZSA9IHBhcnRzWzJdO1xyXG4gICAgICAgIGRhdGEgPSBjbGFpbXNbJ2QnXSB8fCB7fTtcclxuICAgICAgICBkZWxldGUgY2xhaW1zWydkJ107XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkgeyB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogaGVhZGVyLFxyXG4gICAgICAgIGNsYWltczogY2xhaW1zLFxyXG4gICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmVcclxuICAgIH07XHJcbn07XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgRmlyZWJhc2UgYXV0aC4gdG9rZW4gYW5kIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgaXRzIHRpbWUtYmFzZWQgY2xhaW1zLiBXaWxsIHJldHVybiB0cnVlIGlmIHRoZVxyXG4gKiB0b2tlbiBpcyB3aXRoaW4gdGhlIHRpbWUgd2luZG93IGF1dGhvcml6ZWQgYnkgdGhlICduYmYnIChub3QtYmVmb3JlKSBhbmQgJ2lhdCcgKGlzc3VlZC1hdCkgY2xhaW1zLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIGEgZmFsc2UgbmVnYXRpdmUgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNWYWxpZFRpbWVzdGFtcCA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdmFyIGNsYWltcyA9IGRlY29kZSh0b2tlbikuY2xhaW1zO1xyXG4gICAgdmFyIG5vdyA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcclxuICAgIHZhciB2YWxpZFNpbmNlID0gMCwgdmFsaWRVbnRpbCA9IDA7XHJcbiAgICBpZiAodHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpZiAoY2xhaW1zLmhhc093blByb3BlcnR5KCduYmYnKSkge1xyXG4gICAgICAgICAgICB2YWxpZFNpbmNlID0gY2xhaW1zWyduYmYnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY2xhaW1zLmhhc093blByb3BlcnR5KCdpYXQnKSkge1xyXG4gICAgICAgICAgICB2YWxpZFNpbmNlID0gY2xhaW1zWydpYXQnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNsYWltcy5oYXNPd25Qcm9wZXJ0eSgnZXhwJykpIHtcclxuICAgICAgICAgICAgdmFsaWRVbnRpbCA9IGNsYWltc1snZXhwJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0b2tlbiB3aWxsIGV4cGlyZSBhZnRlciAyNGggYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICB2YWxpZFVudGlsID0gdmFsaWRTaW5jZSArIDg2NDAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAoISFub3cgJiZcclxuICAgICAgICAhIXZhbGlkU2luY2UgJiZcclxuICAgICAgICAhIXZhbGlkVW50aWwgJiZcclxuICAgICAgICBub3cgPj0gdmFsaWRTaW5jZSAmJlxyXG4gICAgICAgIG5vdyA8PSB2YWxpZFVudGlsKTtcclxufTtcclxuLyoqXHJcbiAqIERlY29kZXMgYSBGaXJlYmFzZSBhdXRoLiB0b2tlbiBhbmQgcmV0dXJucyBpdHMgaXNzdWVkIGF0IHRpbWUgaWYgdmFsaWQsIG51bGwgb3RoZXJ3aXNlLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIG51bGwgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNzdWVkQXRUaW1lID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgY2xhaW1zID0gZGVjb2RlKHRva2VuKS5jbGFpbXM7XHJcbiAgICBpZiAodHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcgJiYgY2xhaW1zLmhhc093blByb3BlcnR5KCdpYXQnKSkge1xyXG4gICAgICAgIHJldHVybiBjbGFpbXNbJ2lhdCddO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn07XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgRmlyZWJhc2UgYXV0aC4gdG9rZW4gYW5kIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgaXRzIGZvcm1hdC4gRXhwZWN0cyBhIHZhbGlkIGlzc3VlZC1hdCB0aW1lLlxyXG4gKlxyXG4gKiBOb3RlczpcclxuICogLSBNYXkgcmV0dXJuIGEgZmFsc2UgbmVnYXRpdmUgaWYgdGhlcmUncyBubyBuYXRpdmUgYmFzZTY0IGRlY29kaW5nIHN1cHBvcnQuXHJcbiAqIC0gRG9lc24ndCBjaGVjayBpZiB0aGUgdG9rZW4gaXMgYWN0dWFsbHkgdmFsaWQuXHJcbiAqL1xyXG52YXIgaXNWYWxpZEZvcm1hdCA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdmFyIGRlY29kZWQgPSBkZWNvZGUodG9rZW4pLCBjbGFpbXMgPSBkZWNvZGVkLmNsYWltcztcclxuICAgIHJldHVybiAhIWNsYWltcyAmJiB0eXBlb2YgY2xhaW1zID09PSAnb2JqZWN0JyAmJiBjbGFpbXMuaGFzT3duUHJvcGVydHkoJ2lhdCcpO1xyXG59O1xyXG4vKipcclxuICogQXR0ZW1wdHMgdG8gcGVlciBpbnRvIGFuIGF1dGggdG9rZW4gYW5kIGRldGVybWluZSBpZiBpdCdzIGFuIGFkbWluIGF1dGggdG9rZW4gYnkgbG9va2luZyBhdCB0aGUgY2xhaW1zIHBvcnRpb24uXHJcbiAqXHJcbiAqIE5vdGVzOlxyXG4gKiAtIE1heSByZXR1cm4gYSBmYWxzZSBuZWdhdGl2ZSBpZiB0aGVyZSdzIG5vIG5hdGl2ZSBiYXNlNjQgZGVjb2Rpbmcgc3VwcG9ydC5cclxuICogLSBEb2Vzbid0IGNoZWNrIGlmIHRoZSB0b2tlbiBpcyBhY3R1YWxseSB2YWxpZC5cclxuICovXHJcbnZhciBpc0FkbWluID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICB2YXIgY2xhaW1zID0gZGVjb2RlKHRva2VuKS5jbGFpbXM7XHJcbiAgICByZXR1cm4gdHlwZW9mIGNsYWltcyA9PT0gJ29iamVjdCcgJiYgY2xhaW1zWydhZG1pbiddID09PSB0cnVlO1xyXG59O1xuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5mdW5jdGlvbiBjb250YWlucyhvYmosIGtleSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSk7XHJcbn1cclxuZnVuY3Rpb24gc2FmZUdldChvYmosIGtleSkge1xyXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGlzRW1wdHkob2JqKSB7XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcbmZ1bmN0aW9uIG1hcChvYmosIGZuLCBjb250ZXh0T2JqKSB7XHJcbiAgICB2YXIgcmVzID0ge307XHJcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICAgICAgcmVzW2tleV0gPSBmbi5jYWxsKGNvbnRleHRPYmosIG9ialtrZXldLCBrZXksIG9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxufVxuXG4vKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogUmV0dXJucyBhIHF1ZXJ5c3RyaW5nLWZvcm1hdHRlZCBzdHJpbmcgKGUuZy4gJmFyZz12YWwmYXJnMj12YWwyKSBmcm9tIGFcclxuICogcGFyYW1zIG9iamVjdCAoZS5nLiB7YXJnOiAndmFsJywgYXJnMjogJ3ZhbDInfSlcclxuICogTm90ZTogWW91IG11c3QgcHJlcGVuZCBpdCB3aXRoID8gd2hlbiBhZGRpbmcgaXQgdG8gYSBVUkwuXHJcbiAqL1xyXG5mdW5jdGlvbiBxdWVyeXN0cmluZyhxdWVyeXN0cmluZ1BhcmFtcykge1xyXG4gICAgdmFyIHBhcmFtcyA9IFtdO1xyXG4gICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uIChhcnJheVZhbCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoYXJyYXlWYWwpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gT2JqZWN0LmVudHJpZXMocXVlcnlzdHJpbmdQYXJhbXMpOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBfYiA9IF9hW19pXSwga2V5ID0gX2JbMF0sIHZhbHVlID0gX2JbMV07XHJcbiAgICAgICAgX2xvb3BfMShrZXksIHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXMubGVuZ3RoID8gJyYnICsgcGFyYW1zLmpvaW4oJyYnKSA6ICcnO1xyXG59XHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgcXVlcnlzdHJpbmcgKGUuZy4gP2FyZz12YWwmYXJnMj12YWwyKSBpbnRvIGEgcGFyYW1zIG9iamVjdFxyXG4gKiAoZS5nLiB7YXJnOiAndmFsJywgYXJnMjogJ3ZhbDInfSlcclxuICovXHJcbmZ1bmN0aW9uIHF1ZXJ5c3RyaW5nRGVjb2RlKHF1ZXJ5c3RyaW5nKSB7XHJcbiAgICB2YXIgb2JqID0ge307XHJcbiAgICB2YXIgdG9rZW5zID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sICcnKS5zcGxpdCgnJicpO1xyXG4gICAgdG9rZW5zLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBrZXkgPSB0b2tlbi5zcGxpdCgnPScpO1xyXG4gICAgICAgICAgICBvYmpba2V5WzBdXSA9IGtleVsxXTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYmo7XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIEBmaWxlb3ZlcnZpZXcgU0hBLTEgY3J5cHRvZ3JhcGhpYyBoYXNoLlxyXG4gKiBWYXJpYWJsZSBuYW1lcyBmb2xsb3cgdGhlIG5vdGF0aW9uIGluIEZJUFMgUFVCIDE4MC0zOlxyXG4gKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTgwLTMvZmlwczE4MC0zX2ZpbmFsLnBkZi5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqICAgdmFyIHNoYTEgPSBuZXcgc2hhMSgpO1xyXG4gKiAgIHNoYTEudXBkYXRlKGJ5dGVzKTtcclxuICogICB2YXIgaGFzaCA9IHNoYTEuZGlnZXN0KCk7XHJcbiAqXHJcbiAqIFBlcmZvcm1hbmNlOlxyXG4gKiAgIENocm9tZSAyMzogICB+NDAwIE1iaXQvc1xyXG4gKiAgIEZpcmVmb3ggMTY6ICB+MjUwIE1iaXQvc1xyXG4gKlxyXG4gKi9cclxuLyoqXHJcbiAqIFNIQS0xIGNyeXB0b2dyYXBoaWMgaGFzaCBjb25zdHJ1Y3Rvci5cclxuICpcclxuICogVGhlIHByb3BlcnRpZXMgZGVjbGFyZWQgaGVyZSBhcmUgZGlzY3Vzc2VkIGluIHRoZSBhYm92ZSBhbGdvcml0aG0gZG9jdW1lbnQuXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAZmluYWxcclxuICogQHN0cnVjdFxyXG4gKi9cclxudmFyIFNoYTEgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTaGExKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEhvbGRzIHRoZSBwcmV2aW91cyB2YWx1ZXMgb2YgYWNjdW11bGF0ZWQgdmFyaWFibGVzIGEtZSBpbiB0aGUgY29tcHJlc3NfXHJcbiAgICAgICAgICogZnVuY3Rpb24uXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNoYWluXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgYnVmZmVyIGhvbGRpbmcgdGhlIHBhcnRpYWxseSBjb21wdXRlZCBoYXNoIHJlc3VsdC5cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnVmXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IG9mIDgwIGJ5dGVzLCBlYWNoIGEgcGFydCBvZiB0aGUgbWVzc2FnZSB0byBiZSBoYXNoZWQuICBSZWZlcnJlZCB0b1xyXG4gICAgICAgICAqIGFzIHRoZSBtZXNzYWdlIHNjaGVkdWxlIGluIHRoZSBkb2NzLlxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5XXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbnRhaW5zIGRhdGEgbmVlZGVkIHRvIHBhZCBtZXNzYWdlcyBsZXNzIHRoYW4gNjQgYnl0ZXMuXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBhZF8gPSBbXTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5idWZfID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudG90YWxfID0gMDtcclxuICAgICAgICB0aGlzLmJsb2NrU2l6ZSA9IDUxMiAvIDg7XHJcbiAgICAgICAgdGhpcy5wYWRfWzBdID0gMTI4O1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdGhpcy5ibG9ja1NpemU7ICsraSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZF9baV0gPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICBTaGExLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNoYWluX1swXSA9IDB4Njc0NTIzMDE7XHJcbiAgICAgICAgdGhpcy5jaGFpbl9bMV0gPSAweGVmY2RhYjg5O1xyXG4gICAgICAgIHRoaXMuY2hhaW5fWzJdID0gMHg5OGJhZGNmZTtcclxuICAgICAgICB0aGlzLmNoYWluX1szXSA9IDB4MTAzMjU0NzY7XHJcbiAgICAgICAgdGhpcy5jaGFpbl9bNF0gPSAweGMzZDJlMWYwO1xyXG4gICAgICAgIHRoaXMuaW5idWZfID0gMDtcclxuICAgICAgICB0aGlzLnRvdGFsXyA9IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBjb21wcmVzcyBoZWxwZXIgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0gYnVmIEJsb2NrIHRvIGNvbXByZXNzLlxyXG4gICAgICogQHBhcmFtIG9mZnNldCBPZmZzZXQgb2YgdGhlIGJsb2NrIGluIHRoZSBidWZmZXIuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBTaGExLnByb3RvdHlwZS5jb21wcmVzc18gPSBmdW5jdGlvbiAoYnVmLCBvZmZzZXQpIHtcclxuICAgICAgICBpZiAoIW9mZnNldCkge1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgVyA9IHRoaXMuV187XHJcbiAgICAgICAgLy8gZ2V0IDE2IGJpZyBlbmRpYW4gd29yZHNcclxuICAgICAgICBpZiAodHlwZW9mIGJ1ZiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPKHVzZXIpOiBbYnVnIDgxNDAxMjJdIFJlY2VudCB2ZXJzaW9ucyBvZiBTYWZhcmkgZm9yIE1hYyBPUyBhbmQgaU9TXHJcbiAgICAgICAgICAgICAgICAvLyBoYXZlIGEgYnVnIHRoYXQgdHVybnMgdGhlIHBvc3QtaW5jcmVtZW50ICsrIG9wZXJhdG9yIGludG8gcHJlLWluY3JlbWVudFxyXG4gICAgICAgICAgICAgICAgLy8gZHVyaW5nIEpJVCBjb21waWxhdGlvbi4gIFdlIGhhdmUgY29kZSB0aGF0IGRlcGVuZHMgaGVhdmlseSBvbiBTSEEtMSBmb3JcclxuICAgICAgICAgICAgICAgIC8vIGNvcnJlY3RuZXNzIGFuZCB3aGljaCBpcyBhZmZlY3RlZCBieSB0aGlzIGJ1Zywgc28gSSd2ZSByZW1vdmVkIGFsbCB1c2VzXHJcbiAgICAgICAgICAgICAgICAvLyBvZiBwb3N0LWluY3JlbWVudCArKyBpbiB3aGljaCB0aGUgcmVzdWx0IHZhbHVlIGlzIHVzZWQuICBXZSBjYW4gcmV2ZXJ0XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNoYW5nZSBvbmNlIHRoZSBTYWZhcmkgYnVnXHJcbiAgICAgICAgICAgICAgICAvLyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAzNikgaGFzIGJlZW4gZml4ZWQgYW5kXHJcbiAgICAgICAgICAgICAgICAvLyBtb3N0IGNsaWVudHMgaGF2ZSBiZWVuIHVwZGF0ZWQuXHJcbiAgICAgICAgICAgICAgICBXW2ldID1cclxuICAgICAgICAgICAgICAgICAgICAoYnVmLmNoYXJDb2RlQXQob2Zmc2V0KSA8PCAyNCkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnVmLmNoYXJDb2RlQXQob2Zmc2V0ICsgMSkgPDwgMTYpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1Zi5jaGFyQ29kZUF0KG9mZnNldCArIDIpIDw8IDgpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmNoYXJDb2RlQXQob2Zmc2V0ICsgMyk7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBXW2ldID1cclxuICAgICAgICAgICAgICAgICAgICAoYnVmW29mZnNldF0gPDwgMjQpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZltvZmZzZXQgKyAxXSA8PCAxNikgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnVmW29mZnNldCArIDJdIDw8IDgpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW29mZnNldCArIDNdO1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZXhwYW5kIHRvIDgwIHdvcmRzXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDE2OyBpIDwgODA7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgdCA9IFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl07XHJcbiAgICAgICAgICAgIFdbaV0gPSAoKHQgPDwgMSkgfCAodCA+Pj4gMzEpKSAmIDB4ZmZmZmZmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBhID0gdGhpcy5jaGFpbl9bMF07XHJcbiAgICAgICAgdmFyIGIgPSB0aGlzLmNoYWluX1sxXTtcclxuICAgICAgICB2YXIgYyA9IHRoaXMuY2hhaW5fWzJdO1xyXG4gICAgICAgIHZhciBkID0gdGhpcy5jaGFpbl9bM107XHJcbiAgICAgICAgdmFyIGUgPSB0aGlzLmNoYWluX1s0XTtcclxuICAgICAgICB2YXIgZiwgaztcclxuICAgICAgICAvLyBUT0RPKHVzZXIpOiBUcnkgdG8gdW5yb2xsIHRoaXMgbG9vcCB0byBzcGVlZCB1cCB0aGUgY29tcHV0YXRpb24uXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDwgNDApIHtcclxuICAgICAgICAgICAgICAgIGlmIChpIDwgMjApIHtcclxuICAgICAgICAgICAgICAgICAgICBmID0gZCBeIChiICYgKGMgXiBkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgayA9IDB4NWE4Mjc5OTk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmID0gYiBeIGMgXiBkO1xyXG4gICAgICAgICAgICAgICAgICAgIGsgPSAweDZlZDllYmExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCA2MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGYgPSAoYiAmIGMpIHwgKGQgJiAoYiB8IGMpKTtcclxuICAgICAgICAgICAgICAgICAgICBrID0gMHg4ZjFiYmNkYztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGYgPSBiIF4gYyBeIGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgayA9IDB4Y2E2MmMxZDY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHQgPSAoKChhIDw8IDUpIHwgKGEgPj4+IDI3KSkgKyBmICsgZSArIGsgKyBXW2ldKSAmIDB4ZmZmZmZmZmY7XHJcbiAgICAgICAgICAgIGUgPSBkO1xyXG4gICAgICAgICAgICBkID0gYztcclxuICAgICAgICAgICAgYyA9ICgoYiA8PCAzMCkgfCAoYiA+Pj4gMikpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICAgICAgYiA9IGE7XHJcbiAgICAgICAgICAgIGEgPSB0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYWluX1swXSA9ICh0aGlzLmNoYWluX1swXSArIGEpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1sxXSA9ICh0aGlzLmNoYWluX1sxXSArIGIpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1syXSA9ICh0aGlzLmNoYWluX1syXSArIGMpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1szXSA9ICh0aGlzLmNoYWluX1szXSArIGQpICYgMHhmZmZmZmZmZjtcclxuICAgICAgICB0aGlzLmNoYWluX1s0XSA9ICh0aGlzLmNoYWluX1s0XSArIGUpICYgMHhmZmZmZmZmZjtcclxuICAgIH07XHJcbiAgICBTaGExLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoYnl0ZXMsIGxlbmd0aCkge1xyXG4gICAgICAgIC8vIFRPRE8oam9obmxlbnopOiB0aWdodGVuIHRoZSBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHJlbW92ZSB0aGlzIGNoZWNrXHJcbiAgICAgICAgaWYgKGJ5dGVzID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgbGVuZ3RoID0gYnl0ZXMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbGVuZ3RoTWludXNCbG9jayA9IGxlbmd0aCAtIHRoaXMuYmxvY2tTaXplO1xyXG4gICAgICAgIHZhciBuID0gMDtcclxuICAgICAgICAvLyBVc2luZyBsb2NhbCBpbnN0ZWFkIG9mIG1lbWJlciB2YXJpYWJsZXMgZ2l2ZXMgfjUlIHNwZWVkdXAgb24gRmlyZWZveCAxNi5cclxuICAgICAgICB2YXIgYnVmID0gdGhpcy5idWZfO1xyXG4gICAgICAgIHZhciBpbmJ1ZiA9IHRoaXMuaW5idWZfO1xyXG4gICAgICAgIC8vIFRoZSBvdXRlciB3aGlsZSBsb29wIHNob3VsZCBleGVjdXRlIGF0IG1vc3QgdHdpY2UuXHJcbiAgICAgICAgd2hpbGUgKG4gPCBsZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8gV2hlbiB3ZSBoYXZlIG5vIGRhdGEgaW4gdGhlIGJsb2NrIHRvIHRvcCB1cCwgd2UgY2FuIGRpcmVjdGx5IHByb2Nlc3MgdGhlXHJcbiAgICAgICAgICAgIC8vIGlucHV0IGJ1ZmZlciAoYXNzdW1pbmcgaXQgY29udGFpbnMgc3VmZmljaWVudCBkYXRhKS4gVGhpcyBnaXZlcyB+MjUlXHJcbiAgICAgICAgICAgIC8vIHNwZWVkdXAgb24gQ2hyb21lIDIzIGFuZCB+MTUlIHNwZWVkdXAgb24gRmlyZWZveCAxNiwgYnV0IHJlcXVpcmVzIHRoYXRcclxuICAgICAgICAgICAgLy8gdGhlIGRhdGEgaXMgcHJvdmlkZWQgaW4gbGFyZ2UgY2h1bmtzIChvciBpbiBtdWx0aXBsZXMgb2YgNjQgYnl0ZXMpLlxyXG4gICAgICAgICAgICBpZiAoaW5idWYgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChuIDw9IGxlbmd0aE1pbnVzQmxvY2spIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXByZXNzXyhieXRlcywgbik7XHJcbiAgICAgICAgICAgICAgICAgICAgbiArPSB0aGlzLmJsb2NrU2l6ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGJ5dGVzID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKG4gPCBsZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBidWZbaW5idWZdID0gYnl0ZXMuY2hhckNvZGVBdChuKTtcclxuICAgICAgICAgICAgICAgICAgICArK2luYnVmO1xyXG4gICAgICAgICAgICAgICAgICAgICsrbjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5idWYgPT09IHRoaXMuYmxvY2tTaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHJlc3NfKGJ1Zik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVtcCB0byB0aGUgb3V0ZXIgbG9vcCBzbyB3ZSB1c2UgdGhlIGZ1bGwtYmxvY2sgb3B0aW1pemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAobiA8IGxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1ZltpbmJ1Zl0gPSBieXRlc1tuXTtcclxuICAgICAgICAgICAgICAgICAgICArK2luYnVmO1xyXG4gICAgICAgICAgICAgICAgICAgICsrbjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5idWYgPT09IHRoaXMuYmxvY2tTaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHJlc3NfKGJ1Zik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVtcCB0byB0aGUgb3V0ZXIgbG9vcCBzbyB3ZSB1c2UgdGhlIGZ1bGwtYmxvY2sgb3B0aW1pemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbmJ1Zl8gPSBpbmJ1ZjtcclxuICAgICAgICB0aGlzLnRvdGFsXyArPSBsZW5ndGg7XHJcbiAgICB9O1xyXG4gICAgLyoqIEBvdmVycmlkZSAqL1xyXG4gICAgU2hhMS5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBkaWdlc3QgPSBbXTtcclxuICAgICAgICB2YXIgdG90YWxCaXRzID0gdGhpcy50b3RhbF8gKiA4O1xyXG4gICAgICAgIC8vIEFkZCBwYWQgMHg4MCAweDAwKi5cclxuICAgICAgICBpZiAodGhpcy5pbmJ1Zl8gPCA1Nikge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0aGlzLnBhZF8sIDU2IC0gdGhpcy5pbmJ1Zl8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5wYWRfLCB0aGlzLmJsb2NrU2l6ZSAtICh0aGlzLmluYnVmXyAtIDU2KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFkZCAjIGJpdHMuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuYmxvY2tTaXplIC0gMTsgaSA+PSA1NjsgaS0tKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmX1tpXSA9IHRvdGFsQml0cyAmIDI1NTtcclxuICAgICAgICAgICAgdG90YWxCaXRzIC89IDI1NjsgLy8gRG9uJ3QgdXNlIGJpdC1zaGlmdGluZyBoZXJlIVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbXByZXNzXyh0aGlzLmJ1Zl8pO1xyXG4gICAgICAgIHZhciBuID0gMDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMjQ7IGogPj0gMDsgaiAtPSA4KSB7XHJcbiAgICAgICAgICAgICAgICBkaWdlc3Rbbl0gPSAodGhpcy5jaGFpbl9baV0gPj4gaikgJiAyNTU7XHJcbiAgICAgICAgICAgICAgICArK247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRpZ2VzdDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gU2hhMTtcclxufSgpKTtcblxuLyoqXHJcbiAqIEhlbHBlciB0byBtYWtlIGEgU3Vic2NyaWJlIGZ1bmN0aW9uIChqdXN0IGxpa2UgUHJvbWlzZSBoZWxwcyBtYWtlIGFcclxuICogVGhlbmFibGUpLlxyXG4gKlxyXG4gKiBAcGFyYW0gZXhlY3V0b3IgRnVuY3Rpb24gd2hpY2ggY2FuIG1ha2UgY2FsbHMgdG8gYSBzaW5nbGUgT2JzZXJ2ZXJcclxuICogICAgIGFzIGEgcHJveHkuXHJcbiAqIEBwYXJhbSBvbk5vT2JzZXJ2ZXJzIENhbGxiYWNrIHdoZW4gY291bnQgb2YgT2JzZXJ2ZXJzIGdvZXMgdG8gemVyby5cclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmliZShleGVjdXRvciwgb25Ob09ic2VydmVycykge1xyXG4gICAgdmFyIHByb3h5ID0gbmV3IE9ic2VydmVyUHJveHkoZXhlY3V0b3IsIG9uTm9PYnNlcnZlcnMpO1xyXG4gICAgcmV0dXJuIHByb3h5LnN1YnNjcmliZS5iaW5kKHByb3h5KTtcclxufVxyXG4vKipcclxuICogSW1wbGVtZW50IGZhbi1vdXQgZm9yIGFueSBudW1iZXIgb2YgT2JzZXJ2ZXJzIGF0dGFjaGVkIHZpYSBhIHN1YnNjcmliZVxyXG4gKiBmdW5jdGlvbi5cclxuICovXHJcbnZhciBPYnNlcnZlclByb3h5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0gZXhlY3V0b3IgRnVuY3Rpb24gd2hpY2ggY2FuIG1ha2UgY2FsbHMgdG8gYSBzaW5nbGUgT2JzZXJ2ZXJcclxuICAgICAqICAgICBhcyBhIHByb3h5LlxyXG4gICAgICogQHBhcmFtIG9uTm9PYnNlcnZlcnMgQ2FsbGJhY2sgd2hlbiBjb3VudCBvZiBPYnNlcnZlcnMgZ29lcyB0byB6ZXJvLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBPYnNlcnZlclByb3h5KGV4ZWN1dG9yLCBvbk5vT2JzZXJ2ZXJzKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICB0aGlzLm9ic2VydmVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVzID0gW107XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlckNvdW50ID0gMDtcclxuICAgICAgICAvLyBNaWNyby10YXNrIHNjaGVkdWxpbmcgYnkgY2FsbGluZyB0YXNrLnRoZW4oKS5cclxuICAgICAgICB0aGlzLnRhc2sgPSBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICB0aGlzLmZpbmFsaXplZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25Ob09ic2VydmVycyA9IG9uTm9PYnNlcnZlcnM7XHJcbiAgICAgICAgLy8gQ2FsbCB0aGUgZXhlY3V0b3IgYXN5bmNocm9ub3VzbHkgc28gc3Vic2NyaWJlcnMgdGhhdCBhcmUgY2FsbGVkXHJcbiAgICAgICAgLy8gc3luY2hyb25vdXNseSBhZnRlciB0aGUgY3JlYXRpb24gb2YgdGhlIHN1YnNjcmliZSBmdW5jdGlvblxyXG4gICAgICAgIC8vIGNhbiBzdGlsbCByZWNlaXZlIHRoZSB2ZXJ5IGZpcnN0IHZhbHVlIGdlbmVyYXRlZCBpbiB0aGUgZXhlY3V0b3IuXHJcbiAgICAgICAgdGhpcy50YXNrXHJcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgZXhlY3V0b3IoX3RoaXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5lcnJvcihlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgT2JzZXJ2ZXJQcm94eS5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiAoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoZXJyb3IpO1xyXG4gICAgfTtcclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuZm9yRWFjaE9ic2VydmVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBhbiBPYnNlcnZlciB0byB0aGUgZmFuLW91dCBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIC0gV2UgcmVxdWlyZSB0aGF0IG5vIGV2ZW50IGlzIHNlbnQgdG8gYSBzdWJzY3JpYmVyIHN5Y2hyb25vdXNseSB0byB0aGVpclxyXG4gICAgICogICBjYWxsIHRvIHN1YnNjcmliZSgpLlxyXG4gICAgICovXHJcbiAgICBPYnNlcnZlclByb3h5LnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiAobmV4dE9yT2JzZXJ2ZXIsIGVycm9yLCBjb21wbGV0ZSkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdmFyIG9ic2VydmVyO1xyXG4gICAgICAgIGlmIChuZXh0T3JPYnNlcnZlciA9PT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIGVycm9yID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgY29tcGxldGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgT2JzZXJ2ZXIuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFzc2VtYmxlIGFuIE9ic2VydmVyIG9iamVjdCB3aGVuIHBhc3NlZCBhcyBjYWxsYmFjayBmdW5jdGlvbnMuXHJcbiAgICAgICAgaWYgKGltcGxlbWVudHNBbnlNZXRob2RzKG5leHRPck9ic2VydmVyLCBbXHJcbiAgICAgICAgICAgICduZXh0JyxcclxuICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgJ2NvbXBsZXRlJ1xyXG4gICAgICAgIF0pKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyID0gbmV4dE9yT2JzZXJ2ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvYnNlcnZlciA9IHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IG5leHRPck9ic2VydmVyLFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYnNlcnZlci5uZXh0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCA9IG5vb3A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYnNlcnZlci5lcnJvciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yID0gbm9vcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUgPSBub29wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdW5zdWIgPSB0aGlzLnVuc3Vic2NyaWJlT25lLmJpbmQodGhpcywgdGhpcy5vYnNlcnZlcnMubGVuZ3RoKTtcclxuICAgICAgICAvLyBBdHRlbXB0IHRvIHN1YnNjcmliZSB0byBhIHRlcm1pbmF0ZWQgT2JzZXJ2YWJsZSAtIHdlXHJcbiAgICAgICAgLy8ganVzdCByZXNwb25kIHRvIHRoZSBPYnNlcnZlciB3aXRoIHRoZSBmaW5hbCBlcnJvciBvciBjb21wbGV0ZVxyXG4gICAgICAgIC8vIGV2ZW50LlxyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXHJcbiAgICAgICAgICAgIHRoaXMudGFzay50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzLmZpbmFsRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoX3RoaXMuZmluYWxFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XHJcbiAgICAgICAgcmV0dXJuIHVuc3ViO1xyXG4gICAgfTtcclxuICAgIC8vIFVuc3Vic2NyaWJlIGlzIHN5bmNocm9ub3VzIC0gd2UgZ3VhcmFudGVlIHRoYXQgbm8gZXZlbnRzIGFyZSBzZW50IHRvXHJcbiAgICAvLyBhbnkgdW5zdWJzY3JpYmVkIE9ic2VydmVyLlxyXG4gICAgT2JzZXJ2ZXJQcm94eS5wcm90b3R5cGUudW5zdWJzY3JpYmVPbmUgPSBmdW5jdGlvbiAoaSkge1xyXG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVycyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMub2JzZXJ2ZXJzW2ldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkZWxldGUgdGhpcy5vYnNlcnZlcnNbaV07XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlckNvdW50IC09IDE7XHJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJDb3VudCA9PT0gMCAmJiB0aGlzLm9uTm9PYnNlcnZlcnMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uTm9PYnNlcnZlcnModGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLmZvckVhY2hPYnNlcnZlciA9IGZ1bmN0aW9uIChmbikge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICAvLyBBbHJlYWR5IGNsb3NlZCBieSBwcmV2aW91cyBldmVudC4uLi5qdXN0IGVhdCB0aGUgYWRkaXRpb25hbCB2YWx1ZXMuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gU2luY2Ugc2VuZE9uZSBjYWxscyBhc3luY2hyb25vdXNseSAtIHRoZXJlIGlzIG5vIGNoYW5jZSB0aGF0XHJcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcnMgd2lsbCBiZWNvbWUgdW5kZWZpbmVkLlxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYnNlcnZlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kT25lKGksIGZuKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLy8gQ2FsbCB0aGUgT2JzZXJ2ZXIgdmlhIG9uZSBvZiBpdCdzIGNhbGxiYWNrIGZ1bmN0aW9uLiBXZSBhcmUgY2FyZWZ1bCB0b1xyXG4gICAgLy8gY29uZmlybSB0aGF0IHRoZSBvYnNlcnZlIGhhcyBub3QgYmVlbiB1bnN1YnNjcmliZWQgc2luY2UgdGhpcyBhc3luY2hyb25vdXNcclxuICAgIC8vIGZ1bmN0aW9uIGhhZCBiZWVuIHF1ZXVlZC5cclxuICAgIE9ic2VydmVyUHJveHkucHJvdG90eXBlLnNlbmRPbmUgPSBmdW5jdGlvbiAoaSwgZm4pIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNhbGxiYWNrIGFzeW5jaHJvbm91c2x5XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xyXG4gICAgICAgIHRoaXMudGFzay50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKF90aGlzLm9ic2VydmVycyAhPT0gdW5kZWZpbmVkICYmIF90aGlzLm9ic2VydmVyc1tpXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZuKF90aGlzLm9ic2VydmVyc1tpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBleGNlcHRpb25zIHJhaXNlZCBpbiBPYnNlcnZlcnMgb3IgbWlzc2luZyBtZXRob2RzIG9mIGFuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gT2JzZXJ2ZXIuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTG9nIGVycm9yIHRvIGNvbnNvbGUuIGIvMzE0MDQ4MDZcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBPYnNlcnZlclByb3h5LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbmFsaXplZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmluYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZXJyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5hbEVycm9yID0gZXJyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcm94eSBpcyBubyBsb25nZXIgbmVlZGVkIC0gZ2FyYmFnZSBjb2xsZWN0IHJlZmVyZW5jZXNcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXHJcbiAgICAgICAgdGhpcy50YXNrLnRoZW4oZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIF90aGlzLm9uTm9PYnNlcnZlcnMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIE9ic2VydmVyUHJveHk7XHJcbn0oKSk7XHJcbi8qKiBUdXJuIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGludG8gb25lIGNhbGxlZCBhc3luY2hyb25vdXNseS4gKi9cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZnVuY3Rpb24gYXN5bmMoZm4sIG9uRXJyb3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGZuLmFwcGx5KHZvaWQgMCwgYXJncyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xyXG4gICAgICAgICAgICBpZiAob25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgb25FcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgcGFzc2VkIGluIGltcGxlbWVudHMgYW55IG9mIHRoZSBuYW1lZCBtZXRob2RzLlxyXG4gKi9cclxuZnVuY3Rpb24gaW1wbGVtZW50c0FueU1ldGhvZHMob2JqLCBtZXRob2RzKSB7XHJcbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBtZXRob2RzXzEgPSBtZXRob2RzOyBfaSA8IG1ldGhvZHNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgbWV0aG9kID0gbWV0aG9kc18xW19pXTtcclxuICAgICAgICBpZiAobWV0aG9kIGluIG9iaiAmJiB0eXBlb2Ygb2JqW21ldGhvZF0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIG5vb3AoKSB7XHJcbiAgICAvLyBkbyBub3RoaW5nXHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLyoqXHJcbiAqIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgYXBwcm9wcmlhdGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgZm9yIGEgcHVibGljIGZ1bmN0aW9uLlxyXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgaXQgZmFpbHMuXHJcbiAqXHJcbiAqIEBwYXJhbSBmbk5hbWUgVGhlIGZ1bmN0aW9uIG5hbWVcclxuICogQHBhcmFtIG1pbkNvdW50IFRoZSBtaW5pbXVtIG51bWJlciBvZiBhcmd1bWVudHMgdG8gYWxsb3cgZm9yIHRoZSBmdW5jdGlvbiBjYWxsXHJcbiAqIEBwYXJhbSBtYXhDb3VudCBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXJndW1lbnQgdG8gYWxsb3cgZm9yIHRoZSBmdW5jdGlvbiBjYWxsXHJcbiAqIEBwYXJhbSBhcmdDb3VudCBUaGUgYWN0dWFsIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQuXHJcbiAqL1xyXG52YXIgdmFsaWRhdGVBcmdDb3VudCA9IGZ1bmN0aW9uIChmbk5hbWUsIG1pbkNvdW50LCBtYXhDb3VudCwgYXJnQ291bnQpIHtcclxuICAgIHZhciBhcmdFcnJvcjtcclxuICAgIGlmIChhcmdDb3VudCA8IG1pbkNvdW50KSB7XHJcbiAgICAgICAgYXJnRXJyb3IgPSAnYXQgbGVhc3QgJyArIG1pbkNvdW50O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYXJnQ291bnQgPiBtYXhDb3VudCkge1xyXG4gICAgICAgIGFyZ0Vycm9yID0gbWF4Q291bnQgPT09IDAgPyAnbm9uZScgOiAnbm8gbW9yZSB0aGFuICcgKyBtYXhDb3VudDtcclxuICAgIH1cclxuICAgIGlmIChhcmdFcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IGZuTmFtZSArXHJcbiAgICAgICAgICAgICcgZmFpbGVkOiBXYXMgY2FsbGVkIHdpdGggJyArXHJcbiAgICAgICAgICAgIGFyZ0NvdW50ICtcclxuICAgICAgICAgICAgKGFyZ0NvdW50ID09PSAxID8gJyBhcmd1bWVudC4nIDogJyBhcmd1bWVudHMuJykgK1xyXG4gICAgICAgICAgICAnIEV4cGVjdHMgJyArXHJcbiAgICAgICAgICAgIGFyZ0Vycm9yICtcclxuICAgICAgICAgICAgJy4nO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbn07XHJcbi8qKlxyXG4gKiBHZW5lcmF0ZXMgYSBzdHJpbmcgdG8gcHJlZml4IGFuIGVycm9yIG1lc3NhZ2UgYWJvdXQgZmFpbGVkIGFyZ3VtZW50IHZhbGlkYXRpb25cclxuICpcclxuICogQHBhcmFtIGZuTmFtZSBUaGUgZnVuY3Rpb24gbmFtZVxyXG4gKiBAcGFyYW0gYXJndW1lbnROdW1iZXIgVGhlIGluZGV4IG9mIHRoZSBhcmd1bWVudFxyXG4gKiBAcGFyYW0gb3B0aW9uYWwgV2hldGhlciBvciBub3QgdGhlIGFyZ3VtZW50IGlzIG9wdGlvbmFsXHJcbiAqIEByZXR1cm4gVGhlIHByZWZpeCB0byBhZGQgdG8gdGhlIGVycm9yIHRocm93biBmb3IgdmFsaWRhdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIGVycm9yUHJlZml4KGZuTmFtZSwgYXJndW1lbnROdW1iZXIsIG9wdGlvbmFsKSB7XHJcbiAgICB2YXIgYXJnTmFtZSA9ICcnO1xyXG4gICAgc3dpdGNoIChhcmd1bWVudE51bWJlcikge1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgYXJnTmFtZSA9IG9wdGlvbmFsID8gJ2ZpcnN0JyA6ICdGaXJzdCc7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgYXJnTmFtZSA9IG9wdGlvbmFsID8gJ3NlY29uZCcgOiAnU2Vjb25kJztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICBhcmdOYW1lID0gb3B0aW9uYWwgPyAndGhpcmQnIDogJ1RoaXJkJztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICBhcmdOYW1lID0gb3B0aW9uYWwgPyAnZm91cnRoJyA6ICdGb3VydGgnO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Vycm9yUHJlZml4IGNhbGxlZCB3aXRoIGFyZ3VtZW50TnVtYmVyID4gNC4gIE5lZWQgdG8gdXBkYXRlIGl0PycpO1xyXG4gICAgfVxyXG4gICAgdmFyIGVycm9yID0gZm5OYW1lICsgJyBmYWlsZWQ6ICc7XHJcbiAgICBlcnJvciArPSBhcmdOYW1lICsgJyBhcmd1bWVudCAnO1xyXG4gICAgcmV0dXJuIGVycm9yO1xyXG59XHJcbi8qKlxyXG4gKiBAcGFyYW0gZm5OYW1lXHJcbiAqIEBwYXJhbSBhcmd1bWVudE51bWJlclxyXG4gKiBAcGFyYW0gbmFtZXNwYWNlXHJcbiAqIEBwYXJhbSBvcHRpb25hbFxyXG4gKi9cclxuZnVuY3Rpb24gdmFsaWRhdGVOYW1lc3BhY2UoZm5OYW1lLCBhcmd1bWVudE51bWJlciwgbmFtZXNwYWNlLCBvcHRpb25hbCkge1xyXG4gICAgaWYgKG9wdGlvbmFsICYmICFuYW1lc3BhY2UpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG5hbWVzcGFjZSAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAvL1RPRE86IEkgc2hvdWxkIGRvIG1vcmUgdmFsaWRhdGlvbiBoZXJlLiBXZSBvbmx5IGFsbG93IGNlcnRhaW4gY2hhcnMgaW4gbmFtZXNwYWNlcy5cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JQcmVmaXgoZm5OYW1lLCBhcmd1bWVudE51bWJlciwgb3B0aW9uYWwpICtcclxuICAgICAgICAgICAgJ211c3QgYmUgYSB2YWxpZCBmaXJlYmFzZSBuYW1lc3BhY2UuJyk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdmFsaWRhdGVDYWxsYmFjayhmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuY2FsbGJhY2ssIG9wdGlvbmFsKSB7XHJcbiAgICBpZiAob3B0aW9uYWwgJiYgIWNhbGxiYWNrKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvclByZWZpeChmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBvcHRpb25hbCkgK1xyXG4gICAgICAgICAgICAnbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLicpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIHZhbGlkYXRlQ29udGV4dE9iamVjdChmbk5hbWUsIGFyZ3VtZW50TnVtYmVyLCBjb250ZXh0LCBvcHRpb25hbCkge1xyXG4gICAgaWYgKG9wdGlvbmFsICYmICFjb250ZXh0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBjb250ZXh0ICE9PSAnb2JqZWN0JyB8fCBjb250ZXh0ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yUHJlZml4KGZuTmFtZSwgYXJndW1lbnROdW1iZXIsIG9wdGlvbmFsKSArXHJcbiAgICAgICAgICAgICdtdXN0IGJlIGEgdmFsaWQgY29udGV4dCBvYmplY3QuJyk7XHJcbiAgICB9XHJcbn1cblxuLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuLy8gQ29kZSBvcmlnaW5hbGx5IGNhbWUgZnJvbSBnb29nLmNyeXB0LnN0cmluZ1RvVXRmOEJ5dGVBcnJheSwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGV5XHJcbi8vIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgJ1xcclxcbicgd2l0aCAnXFxuJywgYW5kIHRoZXkgZGlkbid0IGhhbmRsZSBzdXJyb2dhdGUgcGFpcnMsXHJcbi8vIHNvIGl0J3MgYmVlbiBtb2RpZmllZC5cclxuLy8gTm90ZSB0aGF0IG5vdCBhbGwgVW5pY29kZSBjaGFyYWN0ZXJzIGFwcGVhciBhcyBzaW5nbGUgY2hhcmFjdGVycyBpbiBKYXZhU2NyaXB0IHN0cmluZ3MuXHJcbi8vIGZyb21DaGFyQ29kZSByZXR1cm5zIHRoZSBVVEYtMTYgZW5jb2Rpbmcgb2YgYSBjaGFyYWN0ZXIgLSBzbyBzb21lIFVuaWNvZGUgY2hhcmFjdGVyc1xyXG4vLyB1c2UgMiBjaGFyYWN0ZXJzIGluIEphdmFzY3JpcHQuICBBbGwgNC1ieXRlIFVURi04IGNoYXJhY3RlcnMgYmVnaW4gd2l0aCBhIGZpcnN0XHJcbi8vIGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UgMHhEODAwIC0gMHhEQkZGICh0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgc28tY2FsbGVkIHN1cnJvZ2F0ZVxyXG4vLyBwYWlyKS5cclxuLy8gU2VlIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi81LjEvI3NlYy0xNS4xLjNcclxuLyoqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcclxuICogQHJldHVybiB7QXJyYXl9XHJcbiAqL1xyXG52YXIgc3RyaW5nVG9CeXRlQXJyYXkkMSA9IGZ1bmN0aW9uIChzdHIpIHtcclxuICAgIHZhciBvdXQgPSBbXTtcclxuICAgIHZhciBwID0gMDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAvLyBJcyB0aGlzIHRoZSBsZWFkIHN1cnJvZ2F0ZSBpbiBhIHN1cnJvZ2F0ZSBwYWlyP1xyXG4gICAgICAgIGlmIChjID49IDB4ZDgwMCAmJiBjIDw9IDB4ZGJmZikge1xyXG4gICAgICAgICAgICB2YXIgaGlnaCA9IGMgLSAweGQ4MDA7IC8vIHRoZSBoaWdoIDEwIGJpdHMuXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgYXNzZXJ0KGkgPCBzdHIubGVuZ3RoLCAnU3Vycm9nYXRlIHBhaXIgbWlzc2luZyB0cmFpbCBzdXJyb2dhdGUuJyk7XHJcbiAgICAgICAgICAgIHZhciBsb3cgPSBzdHIuY2hhckNvZGVBdChpKSAtIDB4ZGMwMDsgLy8gdGhlIGxvdyAxMCBiaXRzLlxyXG4gICAgICAgICAgICBjID0gMHgxMDAwMCArIChoaWdoIDw8IDEwKSArIGxvdztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGMgPCAxMjgpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSBjO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjIDwgMjA0OCkge1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjID4+IDYpIHwgMTkyO1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjICYgNjMpIHwgMTI4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjIDwgNjU1MzYpIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxMikgfCAyMjQ7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDYpICYgNjMpIHwgMTI4O1xyXG4gICAgICAgICAgICBvdXRbcCsrXSA9IChjICYgNjMpIHwgMTI4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoYyA+PiAxOCkgfCAyNDA7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKChjID4+IDEyKSAmIDYzKSB8IDEyODtcclxuICAgICAgICAgICAgb3V0W3ArK10gPSAoKGMgPj4gNikgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgICAgIG91dFtwKytdID0gKGMgJiA2MykgfCAxMjg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dDtcclxufTtcclxuLyoqXHJcbiAqIENhbGN1bGF0ZSBsZW5ndGggd2l0aG91dCBhY3R1YWxseSBjb252ZXJ0aW5nOyB1c2VmdWwgZm9yIGRvaW5nIGNoZWFwZXIgdmFsaWRhdGlvbi5cclxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9XHJcbiAqL1xyXG52YXIgc3RyaW5nTGVuZ3RoID0gZnVuY3Rpb24gKHN0cikge1xyXG4gICAgdmFyIHAgPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIGlmIChjIDwgMTI4KSB7XHJcbiAgICAgICAgICAgIHArKztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYyA8IDIwNDgpIHtcclxuICAgICAgICAgICAgcCArPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjID49IDB4ZDgwMCAmJiBjIDw9IDB4ZGJmZikge1xyXG4gICAgICAgICAgICAvLyBMZWFkIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyLiAgVGhlIHBhaXIgdG9nZXRoZXIgd2lsbCB0YWtlIDQgYnl0ZXMgdG8gcmVwcmVzZW50LlxyXG4gICAgICAgICAgICBwICs9IDQ7XHJcbiAgICAgICAgICAgIGkrKzsgLy8gc2tpcCB0cmFpbCBzdXJyb2dhdGUuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwICs9IDM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHA7XHJcbn07XG5cbi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcbi8qKlxyXG4gKiBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBleHBvbmVudGlhbGx5IGluY3JlYXNlLlxyXG4gKi9cclxudmFyIERFRkFVTFRfSU5URVJWQUxfTUlMTElTID0gMTAwMDtcclxuLyoqXHJcbiAqIFRoZSBmYWN0b3IgdG8gYmFja29mZiBieS5cclxuICogU2hvdWxkIGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAxLlxyXG4gKi9cclxudmFyIERFRkFVTFRfQkFDS09GRl9GQUNUT1IgPSAyO1xyXG4vKipcclxuICogVGhlIG1heGltdW0gbWlsbGlzZWNvbmRzIHRvIGluY3JlYXNlIHRvLlxyXG4gKlxyXG4gKiA8cD5WaXNpYmxlIGZvciB0ZXN0aW5nXHJcbiAqL1xyXG52YXIgTUFYX1ZBTFVFX01JTExJUyA9IDQgKiA2MCAqIDYwICogMTAwMDsgLy8gRm91ciBob3VycywgbGlrZSBpT1MgYW5kIEFuZHJvaWQuXHJcbi8qKlxyXG4gKiBUaGUgcGVyY2VudGFnZSBvZiBiYWNrb2ZmIHRpbWUgdG8gcmFuZG9taXplIGJ5LlxyXG4gKiBTZWVcclxuICogaHR0cDovL2dvL3NhZmUtY2xpZW50LWJlaGF2aW9yI3N0ZXAtMS1kZXRlcm1pbmUtdGhlLWFwcHJvcHJpYXRlLXJldHJ5LWludGVydmFsLXRvLWhhbmRsZS1zcGlrZS10cmFmZmljXHJcbiAqIGZvciBjb250ZXh0LlxyXG4gKlxyXG4gKiA8cD5WaXNpYmxlIGZvciB0ZXN0aW5nXHJcbiAqL1xyXG52YXIgUkFORE9NX0ZBQ1RPUiA9IDAuNTtcclxuLyoqXHJcbiAqIEJhc2VkIG9uIHRoZSBiYWNrb2ZmIG1ldGhvZCBmcm9tXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvY2xvc3VyZS1saWJyYXJ5L2Jsb2IvbWFzdGVyL2Nsb3N1cmUvZ29vZy9tYXRoL2V4cG9uZW50aWFsYmFja29mZi5qcy5cclxuICogRXh0cmFjdGVkIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCB0byBwYXNzIG1ldGFkYXRhIGFuZCBhIHN0YXRlZnVsIEV4cG9uZW50aWFsQmFja29mZiBvYmplY3QgYXJvdW5kLlxyXG4gKi9cclxuZnVuY3Rpb24gY2FsY3VsYXRlQmFja29mZk1pbGxpcyhiYWNrb2ZmQ291bnQsIGludGVydmFsTWlsbGlzLCBiYWNrb2ZmRmFjdG9yKSB7XHJcbiAgICBpZiAoaW50ZXJ2YWxNaWxsaXMgPT09IHZvaWQgMCkgeyBpbnRlcnZhbE1pbGxpcyA9IERFRkFVTFRfSU5URVJWQUxfTUlMTElTOyB9XHJcbiAgICBpZiAoYmFja29mZkZhY3RvciA9PT0gdm9pZCAwKSB7IGJhY2tvZmZGYWN0b3IgPSBERUZBVUxUX0JBQ0tPRkZfRkFDVE9SOyB9XHJcbiAgICAvLyBDYWxjdWxhdGVzIGFuIGV4cG9uZW50aWFsbHkgaW5jcmVhc2luZyB2YWx1ZS5cclxuICAgIC8vIERldmlhdGlvbjogY2FsY3VsYXRlcyB2YWx1ZSBmcm9tIGNvdW50IGFuZCBhIGNvbnN0YW50IGludGVydmFsLCBzbyB3ZSBvbmx5IG5lZWQgdG8gc2F2ZSB2YWx1ZVxyXG4gICAgLy8gYW5kIGNvdW50IHRvIHJlc3RvcmUgc3RhdGUuXHJcbiAgICB2YXIgY3VyckJhc2VWYWx1ZSA9IGludGVydmFsTWlsbGlzICogTWF0aC5wb3coYmFja29mZkZhY3RvciwgYmFja29mZkNvdW50KTtcclxuICAgIC8vIEEgcmFuZG9tIFwiZnV6elwiIHRvIGF2b2lkIHdhdmVzIG9mIHJldHJpZXMuXHJcbiAgICAvLyBEZXZpYXRpb246IHJhbmRvbUZhY3RvciBpcyByZXF1aXJlZC5cclxuICAgIHZhciByYW5kb21XYWl0ID0gTWF0aC5yb3VuZChcclxuICAgIC8vIEEgZnJhY3Rpb24gb2YgdGhlIGJhY2tvZmYgdmFsdWUgdG8gYWRkL3N1YnRyYWN0LlxyXG4gICAgLy8gRGV2aWF0aW9uOiBjaGFuZ2VzIG11bHRpcGxpY2F0aW9uIG9yZGVyIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuXHJcbiAgICBSQU5ET01fRkFDVE9SICpcclxuICAgICAgICBjdXJyQmFzZVZhbHVlICpcclxuICAgICAgICAvLyBBIHJhbmRvbSBmbG9hdCAocm91bmRlZCB0byBpbnQgYnkgTWF0aC5yb3VuZCBhYm92ZSkgaW4gdGhlIHJhbmdlIFstMSwgMV0uIERldGVybWluZXNcclxuICAgICAgICAvLyBpZiB3ZSBhZGQgb3Igc3VidHJhY3QuXHJcbiAgICAgICAgKE1hdGgucmFuZG9tKCkgLSAwLjUpICpcclxuICAgICAgICAyKTtcclxuICAgIC8vIExpbWl0cyBiYWNrb2ZmIHRvIG1heCB0byBhdm9pZCBlZmZlY3RpdmVseSBwZXJtYW5lbnQgYmFja29mZi5cclxuICAgIHJldHVybiBNYXRoLm1pbihNQVhfVkFMVUVfTUlMTElTLCBjdXJyQmFzZVZhbHVlICsgcmFuZG9tV2FpdCk7XHJcbn1cblxuZXhwb3J0cy5DT05TVEFOVFMgPSBDT05TVEFOVFM7XG5leHBvcnRzLkRlZmVycmVkID0gRGVmZXJyZWQ7XG5leHBvcnRzLkVycm9yRmFjdG9yeSA9IEVycm9yRmFjdG9yeTtcbmV4cG9ydHMuRmlyZWJhc2VFcnJvciA9IEZpcmViYXNlRXJyb3I7XG5leHBvcnRzLk1BWF9WQUxVRV9NSUxMSVMgPSBNQVhfVkFMVUVfTUlMTElTO1xuZXhwb3J0cy5SQU5ET01fRkFDVE9SID0gUkFORE9NX0ZBQ1RPUjtcbmV4cG9ydHMuU2hhMSA9IFNoYTE7XG5leHBvcnRzLmFyZUNvb2tpZXNFbmFibGVkID0gYXJlQ29va2llc0VuYWJsZWQ7XG5leHBvcnRzLmFzc2VydCA9IGFzc2VydDtcbmV4cG9ydHMuYXNzZXJ0aW9uRXJyb3IgPSBhc3NlcnRpb25FcnJvcjtcbmV4cG9ydHMuYXN5bmMgPSBhc3luYztcbmV4cG9ydHMuYmFzZTY0ID0gYmFzZTY0O1xuZXhwb3J0cy5iYXNlNjREZWNvZGUgPSBiYXNlNjREZWNvZGU7XG5leHBvcnRzLmJhc2U2NEVuY29kZSA9IGJhc2U2NEVuY29kZTtcbmV4cG9ydHMuY2FsY3VsYXRlQmFja29mZk1pbGxpcyA9IGNhbGN1bGF0ZUJhY2tvZmZNaWxsaXM7XG5leHBvcnRzLmNvbnRhaW5zID0gY29udGFpbnM7XG5leHBvcnRzLmNyZWF0ZVN1YnNjcmliZSA9IGNyZWF0ZVN1YnNjcmliZTtcbmV4cG9ydHMuZGVjb2RlID0gZGVjb2RlO1xuZXhwb3J0cy5kZWVwQ29weSA9IGRlZXBDb3B5O1xuZXhwb3J0cy5kZWVwRXh0ZW5kID0gZGVlcEV4dGVuZDtcbmV4cG9ydHMuZXJyb3JQcmVmaXggPSBlcnJvclByZWZpeDtcbmV4cG9ydHMuZ2V0VUEgPSBnZXRVQTtcbmV4cG9ydHMuaXNBZG1pbiA9IGlzQWRtaW47XG5leHBvcnRzLmlzQnJvd3NlciA9IGlzQnJvd3NlcjtcbmV4cG9ydHMuaXNCcm93c2VyRXh0ZW5zaW9uID0gaXNCcm93c2VyRXh0ZW5zaW9uO1xuZXhwb3J0cy5pc0VsZWN0cm9uID0gaXNFbGVjdHJvbjtcbmV4cG9ydHMuaXNFbXB0eSA9IGlzRW1wdHk7XG5leHBvcnRzLmlzSUUgPSBpc0lFO1xuZXhwb3J0cy5pc0luZGV4ZWREQkF2YWlsYWJsZSA9IGlzSW5kZXhlZERCQXZhaWxhYmxlO1xuZXhwb3J0cy5pc01vYmlsZUNvcmRvdmEgPSBpc01vYmlsZUNvcmRvdmE7XG5leHBvcnRzLmlzTm9kZSA9IGlzTm9kZTtcbmV4cG9ydHMuaXNOb2RlU2RrID0gaXNOb2RlU2RrO1xuZXhwb3J0cy5pc1JlYWN0TmF0aXZlID0gaXNSZWFjdE5hdGl2ZTtcbmV4cG9ydHMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcbmV4cG9ydHMuaXNVV1AgPSBpc1VXUDtcbmV4cG9ydHMuaXNWYWxpZEZvcm1hdCA9IGlzVmFsaWRGb3JtYXQ7XG5leHBvcnRzLmlzVmFsaWRUaW1lc3RhbXAgPSBpc1ZhbGlkVGltZXN0YW1wO1xuZXhwb3J0cy5pc3N1ZWRBdFRpbWUgPSBpc3N1ZWRBdFRpbWU7XG5leHBvcnRzLmpzb25FdmFsID0ganNvbkV2YWw7XG5leHBvcnRzLm1hcCA9IG1hcDtcbmV4cG9ydHMucXVlcnlzdHJpbmcgPSBxdWVyeXN0cmluZztcbmV4cG9ydHMucXVlcnlzdHJpbmdEZWNvZGUgPSBxdWVyeXN0cmluZ0RlY29kZTtcbmV4cG9ydHMuc2FmZUdldCA9IHNhZmVHZXQ7XG5leHBvcnRzLnN0cmluZ0xlbmd0aCA9IHN0cmluZ0xlbmd0aDtcbmV4cG9ydHMuc3RyaW5nVG9CeXRlQXJyYXkgPSBzdHJpbmdUb0J5dGVBcnJheSQxO1xuZXhwb3J0cy5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7XG5leHBvcnRzLnZhbGlkYXRlQXJnQ291bnQgPSB2YWxpZGF0ZUFyZ0NvdW50O1xuZXhwb3J0cy52YWxpZGF0ZUNhbGxiYWNrID0gdmFsaWRhdGVDYWxsYmFjaztcbmV4cG9ydHMudmFsaWRhdGVDb250ZXh0T2JqZWN0ID0gdmFsaWRhdGVDb250ZXh0T2JqZWN0O1xuZXhwb3J0cy52YWxpZGF0ZUluZGV4ZWREQk9wZW5hYmxlID0gdmFsaWRhdGVJbmRleGVkREJPcGVuYWJsZTtcbmV4cG9ydHMudmFsaWRhdGVOYW1lc3BhY2UgPSB2YWxpZGF0ZU5hbWVzcGFjZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmNqcy5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@firebase/util/dist/index.cjs.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@firebase/webchannel-wrapper/dist/index.esm.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 */ ErrorCode: () => (/* binding */ ErrorCode),\n/* harmony export */ EventType: () => (/* binding */ EventType),\n/* harmony export */ WebChannel: () => (/* binding */ WebChannel),\n/* harmony export */ XhrIo: () => (/* binding */ XhrIo),\n/* harmony export */ createWebChannelTransport: () => (/* binding */ createWebChannelTransport),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\n\nvar g, goog = goog || {}, k = commonjsGlobal || self;\r\nfunction aa() { }\r\nfunction ba(a) { var b = typeof a; return \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\"; }\r\nfunction ca(a) { var b = ba(a); return \"array\" == b || \"object\" == b && \"number\" == typeof a.length; }\r\nfunction n(a) { var b = typeof a; return \"object\" == b && null != a || \"function\" == b; }\r\nfunction da(a) { return Object.prototype.hasOwnProperty.call(a, ea) && a[ea] || (a[ea] = ++fa); }\r\nvar ea = \"closure_uid_\" + (1E9 * Math.random() >>> 0), fa = 0;\r\nfunction ha(a, b, c) { return a.call.apply(a.bind, arguments); }\r\nfunction ja(a, b, c) { if (!a)\r\n throw Error(); if (2 < arguments.length) {\r\n var d = Array.prototype.slice.call(arguments, 2);\r\n return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return a.apply(b, e); };\r\n} return function () { return a.apply(b, arguments); }; }\r\nfunction p(a, b, c) { Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? p = ha : p = ja; return p.apply(null, arguments); }\r\nfunction ka(a, b) { var c = Array.prototype.slice.call(arguments, 1); return function () { var d = c.slice(); d.push.apply(d, arguments); return a.apply(this, d); }; }\r\nvar q = Date.now;\r\nfunction r(a, b) { function c() { } c.prototype = b.prototype; a.S = b.prototype; a.prototype = new c; a.prototype.constructor = a; }\r\nfunction u() { this.j = this.j; this.i = this.i; }\r\nvar la = 0;\r\nu.prototype.j = !1;\r\nu.prototype.ja = function () { if (!this.j && (this.j = !0, this.G(), 0 != la)) {\r\n var a = da(this);\r\n} };\r\nu.prototype.G = function () { if (this.i)\r\n for (; this.i.length;)\r\n this.i.shift()(); };\r\nvar na = Array.prototype.indexOf ? function (a, b) { return Array.prototype.indexOf.call(a, b, void 0); } : function (a, b) { if (\"string\" === typeof a)\r\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0); for (var c = 0; c < a.length; c++)\r\n if (c in a && a[c] === b)\r\n return c; return -1; }, oa = Array.prototype.forEach ? function (a, b, c) { Array.prototype.forEach.call(a, b, c); } : function (a, b, c) { for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++)\r\n f in e && b.call(c, e[f], f, a); };\r\nfunction pa(a) { a: {\r\n var b = qa;\r\n for (var c = a.length, d = \"string\" === typeof a ? a.split(\"\") : a, e = 0; e < c; e++)\r\n if (e in d && b.call(void 0, d[e], e, a)) {\r\n b = e;\r\n break a;\r\n }\r\n b = -1;\r\n} return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b]; }\r\nfunction ra(a) { return Array.prototype.concat.apply([], arguments); }\r\nfunction sa(a) { var b = a.length; if (0 < b) {\r\n for (var c = Array(b), d = 0; d < b; d++)\r\n c[d] = a[d];\r\n return c;\r\n} return []; }\r\nfunction ta(a) { return /^[\\s\\xa0]*$/.test(a); }\r\nvar ua = String.prototype.trim ? function (a) { return a.trim(); } : function (a) { return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]; };\r\nfunction v(a, b) { return -1 != a.indexOf(b); }\r\nfunction xa(a, b) { return a < b ? -1 : a > b ? 1 : 0; }\r\nvar w;\r\na: {\r\n var ya = k.navigator;\r\n if (ya) {\r\n var za = ya.userAgent;\r\n if (za) {\r\n w = za;\r\n break a;\r\n }\r\n }\r\n w = \"\";\r\n}\r\nfunction Aa(a, b, c) { for (var d in a)\r\n b.call(c, a[d], d, a); }\r\nfunction Ba(a) { var b = {}; for (var c in a)\r\n b[c] = a[c]; return b; }\r\nvar Ca = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\r\nfunction Da(a, b) { var c, d; for (var e = 1; e < arguments.length; e++) {\r\n d = arguments[e];\r\n for (c in d)\r\n a[c] = d[c];\r\n for (var f = 0; f < Ca.length; f++)\r\n c = Ca[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\r\n} }\r\nfunction Ea(a) { Ea[\" \"](a); return a; }\r\nEa[\" \"] = aa;\r\nfunction Fa(a, b) { var c = Ga; return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a); }\r\nvar Ha = v(w, \"Opera\"), x = v(w, \"Trident\") || v(w, \"MSIE\"), Ia = v(w, \"Edge\"), Ja = Ia || x, Ka = v(w, \"Gecko\") && !(v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\")) && !(v(w, \"Trident\") || v(w, \"MSIE\")) && !v(w, \"Edge\"), La = v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\");\r\nfunction Ma() { var a = k.document; return a ? a.documentMode : void 0; }\r\nvar Na;\r\na: {\r\n var Oa = \"\", Pa = function () { var a = w; if (Ka)\r\n return /rv:([^\\);]+)(\\)|;)/.exec(a); if (Ia)\r\n return /Edge\\/([\\d\\.]+)/.exec(a); if (x)\r\n return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a); if (La)\r\n return /WebKit\\/(\\S+)/.exec(a); if (Ha)\r\n return /(?:Version)[ \\/]?(\\S+)/.exec(a); }();\r\n Pa && (Oa = Pa ? Pa[1] : \"\");\r\n if (x) {\r\n var Qa = Ma();\r\n if (null != Qa && Qa > parseFloat(Oa)) {\r\n Na = String(Qa);\r\n break a;\r\n }\r\n }\r\n Na = Oa;\r\n}\r\nvar Ga = {};\r\nfunction Ra(a) { return Fa(a, function () { {\r\n var b = 0;\r\n var e = ua(String(Na)).split(\".\"), f = ua(String(a)).split(\".\"), h = Math.max(e.length, f.length);\r\n for (var m = 0; 0 == b && m < h; m++) {\r\n var c = e[m] || \"\", d = f[m] || \"\";\r\n do {\r\n c = /(\\d*)(\\D*)(.*)/.exec(c) || [\"\", \"\", \"\", \"\"];\r\n d = /(\\d*)(\\D*)(.*)/.exec(d) || [\"\", \"\", \"\", \"\"];\r\n if (0 == c[0].length && 0 == d[0].length)\r\n break;\r\n b = xa(0 == c[1].length ? 0 : parseInt(c[1], 10), 0 == d[1].length ? 0 : parseInt(d[1], 10)) || xa(0 == c[2].length, 0 == d[2].length) || xa(c[2], d[2]);\r\n c = c[3];\r\n d = d[3];\r\n } while (0 == b);\r\n }\r\n} return 0 <= b; }); }\r\nvar Sa;\r\nif (k.document && x) {\r\n var Ta = Ma();\r\n Sa = Ta ? Ta : parseInt(Na, 10) || void 0;\r\n}\r\nelse\r\n Sa = void 0;\r\nvar Ua = Sa;\r\nvar Va = !x || 9 <= Number(Ua), Wa = x && !Ra(\"9\"), Xa = function () { if (!k.addEventListener || !Object.defineProperty)\r\n return !1; var a = !1, b = Object.defineProperty({}, \"passive\", { get: function () { a = !0; } }); try {\r\n k.addEventListener(\"test\", aa, b), k.removeEventListener(\"test\", aa, b);\r\n}\r\ncatch (c) { } return a; }();\r\nfunction y(a, b) { this.type = a; this.a = this.target = b; this.defaultPrevented = !1; }\r\ny.prototype.b = function () { this.defaultPrevented = !0; };\r\nfunction A(a, b) {\r\n y.call(this, a ? a.type : \"\");\r\n this.relatedTarget = this.a = this.target = null;\r\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\r\n this.key = \"\";\r\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\r\n this.pointerId = 0;\r\n this.pointerType = \"\";\r\n this.c = null;\r\n if (a) {\r\n var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\r\n this.target = a.target || a.srcElement;\r\n this.a = b;\r\n if (b = a.relatedTarget) {\r\n if (Ka) {\r\n a: {\r\n try {\r\n Ea(b.nodeName);\r\n var e = !0;\r\n break a;\r\n }\r\n catch (f) { }\r\n e = !1;\r\n }\r\n e || (b = null);\r\n }\r\n }\r\n else\r\n \"mouseover\" ==\r\n c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\r\n this.relatedTarget = b;\r\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\r\n this.button = a.button;\r\n this.key = a.key || \"\";\r\n this.ctrlKey = a.ctrlKey;\r\n this.altKey = a.altKey;\r\n this.shiftKey = a.shiftKey;\r\n this.metaKey =\r\n a.metaKey;\r\n this.pointerId = a.pointerId || 0;\r\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Ya[a.pointerType] || \"\";\r\n this.c = a;\r\n a.defaultPrevented && this.b();\r\n }\r\n}\r\nr(A, y);\r\nvar Ya = { 2: \"touch\", 3: \"pen\", 4: \"mouse\" };\r\nA.prototype.b = function () { A.S.b.call(this); var a = this.c; if (a.preventDefault)\r\n a.preventDefault();\r\nelse if (a.returnValue = !1, Wa)\r\n try {\r\n if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode)\r\n a.keyCode = -1;\r\n }\r\n catch (b) { } };\r\nvar C = \"closure_listenable_\" + (1E6 * Math.random() | 0), Za = 0;\r\nfunction $a(a, b, c, d, e) { this.listener = a; this.proxy = null; this.src = b; this.type = c; this.capture = !!d; this.ca = e; this.key = ++Za; this.Y = this.Z = !1; }\r\nfunction ab(a) { a.Y = !0; a.listener = null; a.proxy = null; a.src = null; a.ca = null; }\r\nfunction bb(a) { this.src = a; this.a = {}; this.b = 0; }\r\nbb.prototype.add = function (a, b, c, d, e) { var f = a.toString(); a = this.a[f]; a || (a = this.a[f] = [], this.b++); var h = cb(a, b, d, e); -1 < h ? (b = a[h], c || (b.Z = !1)) : (b = new $a(b, this.src, f, !!d, e), b.Z = c, a.push(b)); return b; };\r\nfunction db(a, b) { var c = b.type; if (c in a.a) {\r\n var d = a.a[c], e = na(d, b), f;\r\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\r\n f && (ab(b), 0 == a.a[c].length && (delete a.a[c], a.b--));\r\n} }\r\nfunction cb(a, b, c, d) { for (var e = 0; e < a.length; ++e) {\r\n var f = a[e];\r\n if (!f.Y && f.listener == b && f.capture == !!c && f.ca == d)\r\n return e;\r\n} return -1; }\r\nvar eb = \"closure_lm_\" + (1E6 * Math.random() | 0), fb = {};\r\nfunction hb(a, b, c, d, e) { if (d && d.once)\r\n return ib(a, b, c, d, e); if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n hb(a, b[f], c, d, e);\r\n return null;\r\n} c = jb(c); return a && a[C] ? a.va(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !1, d, e); }\r\nfunction kb(a, b, c, d, e, f) {\r\n if (!b)\r\n throw Error(\"Invalid event type\");\r\n var h = n(e) ? !!e.capture : !!e;\r\n if (h && !Va)\r\n return null;\r\n var m = lb(a);\r\n m || (a[eb] = m = new bb(a));\r\n c = m.add(b, c, d, h, f);\r\n if (c.proxy)\r\n return c;\r\n d = mb();\r\n c.proxy = d;\r\n d.src = a;\r\n d.listener = c;\r\n if (a.addEventListener)\r\n Xa || (e = h), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);\r\n else if (a.attachEvent)\r\n a.attachEvent(nb(b.toString()), d);\r\n else if (a.addListener && a.removeListener)\r\n a.addListener(d);\r\n else\r\n throw Error(\"addEventListener and attachEvent are unavailable.\");\r\n return c;\r\n}\r\nfunction mb() { var a = ob, b = Va ? function (c) { return a.call(b.src, b.listener, c); } : function (c) { c = a.call(b.src, b.listener, c); if (!c)\r\n return c; }; return b; }\r\nfunction ib(a, b, c, d, e) { if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n ib(a, b[f], c, d, e);\r\n return null;\r\n} c = jb(c); return a && a[C] ? a.wa(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !0, d, e); }\r\nfunction pb(a, b, c, d, e) { if (Array.isArray(b))\r\n for (var f = 0; f < b.length; f++)\r\n pb(a, b[f], c, d, e);\r\nelse\r\n (d = n(d) ? !!d.capture : !!d, c = jb(c), a && a[C]) ? (a = a.c, b = String(b).toString(), b in a.a && (f = a.a[b], c = cb(f, c, d, e), -1 < c && (ab(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.a[b], a.b--)))) : a && (a = lb(a)) && (b = a.a[b.toString()], a = -1, b && (a = cb(b, c, d, e)), (c = -1 < a ? b[a] : null) && rb(c)); }\r\nfunction rb(a) { if (\"number\" !== typeof a && a && !a.Y) {\r\n var b = a.src;\r\n if (b && b[C])\r\n db(b.c, a);\r\n else {\r\n var c = a.type, d = a.proxy;\r\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(nb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\r\n (c = lb(b)) ? (db(c, a), 0 == c.b && (c.src = null, b[eb] = null)) : ab(a);\r\n }\r\n} }\r\nfunction nb(a) { return a in fb ? fb[a] : fb[a] = \"on\" + a; }\r\nfunction sb(a, b) { var c = a.listener, d = a.ca || a.src; a.Z && rb(a); return c.call(d, b); }\r\nfunction ob(a, b) { if (a.Y)\r\n return !0; if (!Va) {\r\n if (!b)\r\n a: {\r\n b = [\"window\", \"event\"];\r\n for (var c = k, d = 0; d < b.length; d++)\r\n if (c = c[b[d]], null == c) {\r\n b = null;\r\n break a;\r\n }\r\n b = c;\r\n }\r\n b = new A(b, this);\r\n return sb(a, b);\r\n} return sb(a, new A(b, this)); }\r\nfunction lb(a) { a = a[eb]; return a instanceof bb ? a : null; }\r\nvar tb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\r\nfunction jb(a) { if (\"function\" == ba(a))\r\n return a; a[tb] || (a[tb] = function (b) { return a.handleEvent(b); }); return a[tb]; }\r\nfunction D() { u.call(this); this.c = new bb(this); this.J = this; this.C = null; }\r\nr(D, u);\r\nD.prototype[C] = !0;\r\ng = D.prototype;\r\ng.addEventListener = function (a, b, c, d) { hb(this, a, b, c, d); };\r\ng.removeEventListener = function (a, b, c, d) { pb(this, a, b, c, d); };\r\ng.dispatchEvent = function (a) { var b, c = this.C; if (c)\r\n for (b = []; c; c = c.C)\r\n b.push(c); c = this.J; var d = a.type || a; if (\"string\" === typeof a)\r\n a = new y(a, c);\r\nelse if (a instanceof y)\r\n a.target = a.target || c;\r\nelse {\r\n var e = a;\r\n a = new y(d, c);\r\n Da(a, e);\r\n} e = !0; if (b)\r\n for (var f = b.length - 1; 0 <= f; f--) {\r\n var h = a.a = b[f];\r\n e = ub(h, d, !0, a) && e;\r\n } h = a.a = c; e = ub(h, d, !0, a) && e; e = ub(h, d, !1, a) && e; if (b)\r\n for (f = 0; f < b.length; f++)\r\n h = a.a = b[f], e = ub(h, d, !1, a) && e; return e; };\r\ng.G = function () { D.S.G.call(this); if (this.c) {\r\n var a = this.c, c;\r\n for (c in a.a) {\r\n for (var d = a.a[c], e = 0; e < d.length; e++)\r\n ab(d[e]);\r\n delete a.a[c];\r\n a.b--;\r\n }\r\n} this.C = null; };\r\ng.va = function (a, b, c, d) { return this.c.add(String(a), b, !1, c, d); };\r\ng.wa = function (a, b, c, d) { return this.c.add(String(a), b, !0, c, d); };\r\nfunction ub(a, b, c, d) { b = a.c.a[String(b)]; if (!b)\r\n return !0; b = b.concat(); for (var e = !0, f = 0; f < b.length; ++f) {\r\n var h = b[f];\r\n if (h && !h.Y && h.capture == c) {\r\n var m = h.listener, l = h.ca || h.src;\r\n h.Z && db(a.c, h);\r\n e = !1 !== m.call(l, d) && e;\r\n }\r\n} return e && !d.defaultPrevented; }\r\nvar vb = k.JSON.stringify;\r\nfunction wb() { this.b = this.a = null; }\r\nvar yb = new /** @class */ (function () {\r\n function class_1(a, b, c) {\r\n this.f = c;\r\n this.c = a;\r\n this.g = b;\r\n this.b = 0;\r\n this.a = null;\r\n }\r\n class_1.prototype.get = function () { var a; 0 < this.b ? (this.b--, a = this.a, this.a = a.next, a.next = null) : a = this.c(); return a; };\r\n return class_1;\r\n}())(function () { return new xb; }, function (a) { a.reset(); }, 100);\r\nwb.prototype.add = function (a, b) { var c = yb.get(); c.set(a, b); this.b ? this.b.next = c : this.a = c; this.b = c; };\r\nfunction zb() { var a = Ab, b = null; a.a && (b = a.a, a.a = a.a.next, a.a || (a.b = null), b.next = null); return b; }\r\nfunction xb() { this.next = this.b = this.a = null; }\r\nxb.prototype.set = function (a, b) { this.a = a; this.b = b; this.next = null; };\r\nxb.prototype.reset = function () { this.next = this.b = this.a = null; };\r\nfunction Bb(a) { k.setTimeout(function () { throw a; }, 0); }\r\nfunction Cb(a, b) { Db || Eb(); Fb || (Db(), Fb = !0); Ab.add(a, b); }\r\nvar Db;\r\nfunction Eb() { var a = k.Promise.resolve(void 0); Db = function () { a.then(Gb); }; }\r\nvar Fb = !1, Ab = new wb;\r\nfunction Gb() { for (var a; a = zb();) {\r\n try {\r\n a.a.call(a.b);\r\n }\r\n catch (c) {\r\n Bb(c);\r\n }\r\n var b = yb;\r\n b.g(a);\r\n b.b < b.f && (b.b++, a.next = b.a, b.a = a);\r\n} Fb = !1; }\r\nfunction Hb(a, b) { D.call(this); this.b = a || 1; this.a = b || k; this.f = p(this.Ya, this); this.g = q(); }\r\nr(Hb, D);\r\ng = Hb.prototype;\r\ng.aa = !1;\r\ng.M = null;\r\ng.Ya = function () { if (this.aa) {\r\n var a = q() - this.g;\r\n 0 < a && a < .8 * this.b ? this.M = this.a.setTimeout(this.f, this.b - a) : (this.M && (this.a.clearTimeout(this.M), this.M = null), this.dispatchEvent(\"tick\"), this.aa && (Ib(this), this.start()));\r\n} };\r\ng.start = function () { this.aa = !0; this.M || (this.M = this.a.setTimeout(this.f, this.b), this.g = q()); };\r\nfunction Ib(a) { a.aa = !1; a.M && (a.a.clearTimeout(a.M), a.M = null); }\r\ng.G = function () { Hb.S.G.call(this); Ib(this); delete this.a; };\r\nfunction Jb(a, b, c) { if (\"function\" == ba(a))\r\n c && (a = p(a, c));\r\nelse if (a && \"function\" == typeof a.handleEvent)\r\n a = p(a.handleEvent, a);\r\nelse\r\n throw Error(\"Invalid listener argument\"); return 2147483647 < Number(b) ? -1 : k.setTimeout(a, b || 0); }\r\nfunction Kb(a) { a.a = Jb(function () { a.a = null; a.c && (a.c = !1, Kb(a)); }, a.h); var b = a.b; a.b = null; a.g.apply(null, b); }\r\nvar Lb = /** @class */ (function (_super) {\r\n __extends(Lb, _super);\r\n function Lb(a, b, c) {\r\n var _this = _super.call(this) || this;\r\n _this.g = null != c ? a.bind(c) : a;\r\n _this.h = b;\r\n _this.b = null;\r\n _this.c = !1;\r\n _this.a = null;\r\n return _this;\r\n }\r\n Lb.prototype.f = function (a) { this.b = arguments; this.a ? this.c = !0 : Kb(this); };\r\n Lb.prototype.G = function () { _super.prototype.G.call(this); this.a && (k.clearTimeout(this.a), this.a = null, this.c = !1, this.b = null); };\r\n return Lb;\r\n}(u));\r\nfunction E(a) { u.call(this); this.b = a; this.a = {}; }\r\nr(E, u);\r\nvar Mb = [];\r\nfunction Nb(a, b, c, d) { Array.isArray(c) || (c && (Mb[0] = c.toString()), c = Mb); for (var e = 0; e < c.length; e++) {\r\n var f = hb(b, c[e], d || a.handleEvent, !1, a.b || a);\r\n if (!f)\r\n break;\r\n a.a[f.key] = f;\r\n} }\r\nfunction Ob(a) { Aa(a.a, function (b, c) { this.a.hasOwnProperty(c) && rb(b); }, a); a.a = {}; }\r\nE.prototype.G = function () { E.S.G.call(this); Ob(this); };\r\nE.prototype.handleEvent = function () { throw Error(\"EventHandler.handleEvent not implemented\"); };\r\nfunction Pb() { this.a = !0; }\r\nfunction Qb(a, b, c, d, e, f) { a.info(function () { if (a.a)\r\n if (f) {\r\n var h = \"\";\r\n for (var m = f.split(\"&\"), l = 0; l < m.length; l++) {\r\n var t = m[l].split(\"=\");\r\n if (1 < t.length) {\r\n var B = t[0];\r\n t = t[1];\r\n var z = B.split(\"_\");\r\n h = 2 <= z.length && \"type\" == z[1] ? h + (B + \"=\" + t + \"&\") : h + (B + \"=redacted&\");\r\n }\r\n }\r\n }\r\n else\r\n h = null;\r\nelse\r\n h = f; return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + h; }); }\r\nfunction Rb(a, b, c, d, e, f, h) { a.info(function () { return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + h; }); }\r\nfunction F(a, b, c, d) { a.info(function () { return \"XMLHTTP TEXT (\" + b + \"): \" + Sb(a, c) + (d ? \" \" + d : \"\"); }); }\r\nfunction Tb(a, b) { a.info(function () { return \"TIMEOUT: \" + b; }); }\r\nPb.prototype.info = function () { };\r\nfunction Sb(a, b) { if (!a.a)\r\n return b; if (!b)\r\n return null; try {\r\n var c = JSON.parse(b);\r\n if (c)\r\n for (a = 0; a < c.length; a++)\r\n if (Array.isArray(c[a])) {\r\n var d = c[a];\r\n if (!(2 > d.length)) {\r\n var e = d[1];\r\n if (Array.isArray(e) && !(1 > e.length)) {\r\n var f = e[0];\r\n if (\"noop\" != f && \"stop\" != f && \"close\" != f)\r\n for (var h = 1; h < e.length; h++)\r\n e[h] = \"\";\r\n }\r\n }\r\n }\r\n return vb(c);\r\n}\r\ncatch (m) {\r\n return b;\r\n} }\r\nvar Ub = null;\r\nfunction Vb() { return Ub = Ub || new D; }\r\nfunction Wb(a) { y.call(this, \"serverreachability\", a); }\r\nr(Wb, y);\r\nfunction G(a) { var b = Vb(); b.dispatchEvent(new Wb(b, a)); }\r\nfunction Xb(a) { y.call(this, \"statevent\", a); }\r\nr(Xb, y);\r\nfunction H(a) { var b = Vb(); b.dispatchEvent(new Xb(b, a)); }\r\nfunction Yb(a) { y.call(this, \"timingevent\", a); }\r\nr(Yb, y);\r\nfunction I(a, b) { if (\"function\" != ba(a))\r\n throw Error(\"Fn must not be null and must be a function\"); return k.setTimeout(function () { a(); }, b); }\r\nvar Zb = { NO_ERROR: 0, Za: 1, gb: 2, fb: 3, bb: 4, eb: 5, hb: 6, Da: 7, TIMEOUT: 8, kb: 9 };\r\nvar $b = { ab: \"complete\", ob: \"success\", Ea: \"error\", Da: \"abort\", mb: \"ready\", nb: \"readystatechange\", TIMEOUT: \"timeout\", ib: \"incrementaldata\", lb: \"progress\", cb: \"downloadprogress\", pb: \"uploadprogress\" };\r\nfunction ac() { }\r\nac.prototype.a = null;\r\nfunction bc(a) { var b; (b = a.a) || (b = a.a = {}); return b; }\r\nfunction cc() { }\r\nvar J = { OPEN: \"a\", $a: \"b\", Ea: \"c\", jb: \"d\" };\r\nfunction dc() { y.call(this, \"d\"); }\r\nr(dc, y);\r\nfunction ec() { y.call(this, \"c\"); }\r\nr(ec, y);\r\nvar fc;\r\nfunction gc() { }\r\nr(gc, ac);\r\nfc = new gc;\r\nfunction K(a, b, c, d) { this.g = a; this.c = b; this.f = c; this.T = d || 1; this.J = new E(this); this.P = hc; a = Ja ? 125 : void 0; this.R = new Hb(a); this.B = null; this.b = !1; this.j = this.l = this.i = this.H = this.u = this.U = this.o = null; this.s = []; this.a = null; this.D = 0; this.h = this.m = null; this.N = -1; this.A = !1; this.O = 0; this.F = null; this.W = this.C = this.V = this.I = !1; }\r\nvar hc = 45E3, ic = {}, jc = {};\r\ng = K.prototype;\r\ng.setTimeout = function (a) { this.P = a; };\r\nfunction kc(a, b, c) { a.H = 1; a.i = lc(L(b)); a.j = c; a.I = !0; mc(a, null); }\r\nfunction mc(a, b) { a.u = q(); M(a); a.l = L(a.i); var c = a.l, d = a.T; Array.isArray(d) || (d = [String(d)]); nc(c.b, \"t\", d); a.D = 0; a.a = oc(a.g, a.g.C ? b : null); 0 < a.O && (a.F = new Lb(p(a.Ca, a, a.a), a.O)); Nb(a.J, a.a, \"readystatechange\", a.Wa); b = a.B ? Ba(a.B) : {}; a.j ? (a.m || (a.m = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.a.ba(a.l, a.m, a.j, b)) : (a.m = \"GET\", a.a.ba(a.l, a.m, null, b)); G(1); Qb(a.c, a.m, a.l, a.f, a.T, a.j); }\r\ng.Wa = function (a) { a = a.target; var b = this.F; b && 3 == N(a) ? b.f() : this.Ca(a); };\r\ng.Ca = function (a) {\r\n try {\r\n if (a == this.a)\r\n a: {\r\n var b = N(this.a), c = this.a.ua(), d = this.a.X();\r\n if (!(3 > b || 3 == b && !Ja && !this.a.$())) {\r\n this.A || 4 != b || 7 == c || (8 == c || 0 >= d ? G(3) : G(2));\r\n pc(this);\r\n var e = this.a.X();\r\n this.N = e;\r\n var f = this.a.$();\r\n this.b = 200 == e;\r\n Rb(this.c, this.m, this.l, this.f, this.T, b, e);\r\n if (this.b) {\r\n if (this.V && !this.C) {\r\n b: {\r\n if (this.a) {\r\n var h, m = this.a;\r\n if ((h = m.a ? m.a.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !ta(h)) {\r\n var l = h;\r\n break b;\r\n }\r\n }\r\n l = null;\r\n }\r\n if (l)\r\n F(this.c, this.f, l, \"Initial handshake response via X-HTTP-Initial-Response\"),\r\n this.C = !0, qc(this, l);\r\n else {\r\n this.b = !1;\r\n this.h = 3;\r\n H(12);\r\n O(this);\r\n rc(this);\r\n break a;\r\n }\r\n }\r\n this.I ? (tc(this, b, f), Ja && this.b && 3 == b && (Nb(this.J, this.R, \"tick\", this.Va), this.R.start())) : (F(this.c, this.f, f, null), qc(this, f));\r\n 4 == b && O(this);\r\n this.b && !this.A && (4 == b ? uc(this.g, this) : (this.b = !1, M(this)));\r\n }\r\n else\r\n 400 == e && 0 < f.indexOf(\"Unknown SID\") ? (this.h = 3, H(12)) : (this.h = 0, H(13)), O(this), rc(this);\r\n }\r\n }\r\n }\r\n catch (t) { }\r\n finally { }\r\n};\r\nfunction tc(a, b, c) { for (var d = !0; !a.A && a.D < c.length;) {\r\n var e = vc(a, c);\r\n if (e == jc) {\r\n 4 == b && (a.h = 4, H(14), d = !1);\r\n F(a.c, a.f, null, \"[Incomplete Response]\");\r\n break;\r\n }\r\n else if (e == ic) {\r\n a.h = 4;\r\n H(15);\r\n F(a.c, a.f, c, \"[Invalid Chunk]\");\r\n d = !1;\r\n break;\r\n }\r\n else\r\n F(a.c, a.f, e, null), qc(a, e);\r\n} 4 == b && 0 == c.length && (a.h = 1, H(16), d = !1); a.b = a.b && d; d ? 0 < c.length && !a.W && (a.W = !0, b = a.g, b.a == a && b.V && !b.F && (b.c.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), xc(b), b.F = !0)) : (F(a.c, a.f, c, \"[Invalid Chunked Response]\"), O(a), rc(a)); }\r\ng.Va = function () { if (this.a) {\r\n var a = N(this.a), b = this.a.$();\r\n this.D < b.length && (pc(this), tc(this, a, b), this.b && 4 != a && M(this));\r\n} };\r\nfunction vc(a, b) { var c = a.D, d = b.indexOf(\"\\n\", c); if (-1 == d)\r\n return jc; c = Number(b.substring(c, d)); if (isNaN(c))\r\n return ic; d += 1; if (d + c > b.length)\r\n return jc; b = b.substr(d, c); a.D = d + c; return b; }\r\ng.cancel = function () { this.A = !0; O(this); };\r\nfunction M(a) { a.U = q() + a.P; yc(a, a.P); }\r\nfunction yc(a, b) { if (null != a.o)\r\n throw Error(\"WatchDog timer not null\"); a.o = I(p(a.Ua, a), b); }\r\nfunction pc(a) { a.o && (k.clearTimeout(a.o), a.o = null); }\r\ng.Ua = function () { this.o = null; var a = q(); 0 <= a - this.U ? (Tb(this.c, this.l), 2 != this.H && (G(3), H(17)), O(this), this.h = 2, rc(this)) : yc(this, this.U - a); };\r\nfunction rc(a) { 0 == a.g.v || a.A || uc(a.g, a); }\r\nfunction O(a) { pc(a); var b = a.F; b && \"function\" == typeof b.ja && b.ja(); a.F = null; Ib(a.R); Ob(a.J); a.a && (b = a.a, a.a = null, b.abort(), b.ja()); }\r\nfunction qc(a, b) {\r\n try {\r\n var c = a.g;\r\n if (0 != c.v && (c.a == a || zc(c.b, a)))\r\n if (c.I = a.N, !a.C && zc(c.b, a) && 3 == c.v) {\r\n try {\r\n var d = c.ka.a.parse(b);\r\n }\r\n catch (sc) {\r\n d = null;\r\n }\r\n if (Array.isArray(d) && 3 == d.length) {\r\n var e = d;\r\n if (0 == e[0])\r\n a: {\r\n if (!c.j) {\r\n if (c.a)\r\n if (c.a.u + 3E3 < a.u)\r\n Ac(c), Bc(c);\r\n else\r\n break a;\r\n Cc(c);\r\n H(18);\r\n }\r\n }\r\n else\r\n c.oa = e[1], 0 < c.oa - c.P && 37500 > e[2] && c.H && 0 == c.o && !c.m && (c.m = I(p(c.Ra, c), 6E3));\r\n if (1 >= Dc(c.b) && c.ea) {\r\n try {\r\n c.ea();\r\n }\r\n catch (sc) { }\r\n c.ea = void 0;\r\n }\r\n }\r\n else\r\n P(c, 11);\r\n }\r\n else if ((a.C || c.a == a) && Ac(c), !ta(b))\r\n for (b = d = c.ka.a.parse(b), d = 0; d < b.length; d++)\r\n if (e =\r\n b[d], c.P = e[0], e = e[1], 2 == c.v)\r\n if (\"c\" == e[0]) {\r\n c.J = e[1];\r\n c.ga = e[2];\r\n var f = e[3];\r\n null != f && (c.ha = f, c.c.info(\"VER=\" + c.ha));\r\n var h = e[4];\r\n null != h && (c.pa = h, c.c.info(\"SVER=\" + c.pa));\r\n var m = e[5];\r\n if (null != m && \"number\" === typeof m && 0 < m) {\r\n var l = 1.5 * m;\r\n c.D = l;\r\n c.c.info(\"backChannelRequestTimeoutMs_=\" + l);\r\n }\r\n l = c;\r\n var t = a.a;\r\n if (t) {\r\n var B = t.a ? t.a.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\r\n if (B) {\r\n var z = l.b;\r\n !z.a && (v(B, \"spdy\") || v(B, \"quic\") || v(B, \"h2\")) && (z.f = z.g, z.a = new Set, z.b && (Ec(z, z.b), z.b = null));\r\n }\r\n if (l.A) {\r\n var qb = t.a ? t.a.getResponseHeader(\"X-HTTP-Session-Id\") :\r\n null;\r\n qb && (l.na = qb, Q(l.B, l.A, qb));\r\n }\r\n }\r\n c.v = 3;\r\n c.f && c.f.ta();\r\n c.V && (c.N = q() - a.u, c.c.info(\"Handshake RTT: \" + c.N + \"ms\"));\r\n l = c;\r\n var va = a;\r\n l.la = Fc(l, l.C ? l.ga : null, l.fa);\r\n if (va.C) {\r\n Gc(l.b, va);\r\n var wa = va, wc = l.D;\r\n wc && wa.setTimeout(wc);\r\n wa.o && (pc(wa), M(wa));\r\n l.a = va;\r\n }\r\n else\r\n Hc(l);\r\n 0 < c.g.length && Ic(c);\r\n }\r\n else\r\n \"stop\" != e[0] && \"close\" != e[0] || P(c, 7);\r\n else\r\n 3 == c.v && (\"stop\" == e[0] || \"close\" == e[0] ? \"stop\" == e[0] ? P(c, 7) : Jc(c) : \"noop\" != e[0] && c.f && c.f.sa(e), c.o = 0);\r\n G(4);\r\n }\r\n catch (sc) { }\r\n}\r\nfunction Kc(a) { if (a.K && \"function\" == typeof a.K)\r\n return a.K(); if (\"string\" === typeof a)\r\n return a.split(\"\"); if (ca(a)) {\r\n for (var b = [], c = a.length, d = 0; d < c; d++)\r\n b.push(a[d]);\r\n return b;\r\n} b = []; c = 0; for (d in a)\r\n b[c++] = a[d]; return a = b; }\r\nfunction Lc(a, b) { if (a.forEach && \"function\" == typeof a.forEach)\r\n a.forEach(b, void 0);\r\nelse if (ca(a) || \"string\" === typeof a)\r\n oa(a, b, void 0);\r\nelse {\r\n if (a.L && \"function\" == typeof a.L)\r\n var c = a.L();\r\n else if (a.K && \"function\" == typeof a.K)\r\n c = void 0;\r\n else if (ca(a) || \"string\" === typeof a) {\r\n c = [];\r\n for (var d = a.length, e = 0; e < d; e++)\r\n c.push(e);\r\n }\r\n else\r\n for (e in c = [], d = 0, a)\r\n c[d++] = e;\r\n d = Kc(a);\r\n e = d.length;\r\n for (var f = 0; f < e; f++)\r\n b.call(void 0, d[f], c && c[f], a);\r\n} }\r\nfunction R(a, b) { this.b = {}; this.a = []; this.c = 0; var c = arguments.length; if (1 < c) {\r\n if (c % 2)\r\n throw Error(\"Uneven number of arguments\");\r\n for (var d = 0; d < c; d += 2)\r\n this.set(arguments[d], arguments[d + 1]);\r\n}\r\nelse if (a)\r\n if (a instanceof R)\r\n for (c = a.L(), d = 0; d < c.length; d++)\r\n this.set(c[d], a.get(c[d]));\r\n else\r\n for (d in a)\r\n this.set(d, a[d]); }\r\ng = R.prototype;\r\ng.K = function () { Mc(this); for (var a = [], b = 0; b < this.a.length; b++)\r\n a.push(this.b[this.a[b]]); return a; };\r\ng.L = function () { Mc(this); return this.a.concat(); };\r\nfunction Mc(a) { if (a.c != a.a.length) {\r\n for (var b = 0, c = 0; b < a.a.length;) {\r\n var d = a.a[b];\r\n S(a.b, d) && (a.a[c++] = d);\r\n b++;\r\n }\r\n a.a.length = c;\r\n} if (a.c != a.a.length) {\r\n var e = {};\r\n for (c = b = 0; b < a.a.length;)\r\n d = a.a[b], S(e, d) || (a.a[c++] = d, e[d] = 1), b++;\r\n a.a.length = c;\r\n} }\r\ng.get = function (a, b) { return S(this.b, a) ? this.b[a] : b; };\r\ng.set = function (a, b) { S(this.b, a) || (this.c++, this.a.push(a)); this.b[a] = b; };\r\ng.forEach = function (a, b) { for (var c = this.L(), d = 0; d < c.length; d++) {\r\n var e = c[d], f = this.get(e);\r\n a.call(b, f, e, this);\r\n} };\r\nfunction S(a, b) { return Object.prototype.hasOwnProperty.call(a, b); }\r\nvar Nc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\r\nfunction Oc(a, b) { if (a) {\r\n a = a.split(\"&\");\r\n for (var c = 0; c < a.length; c++) {\r\n var d = a[c].indexOf(\"=\"), e = null;\r\n if (0 <= d) {\r\n var f = a[c].substring(0, d);\r\n e = a[c].substring(d + 1);\r\n }\r\n else\r\n f = a[c];\r\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\r\n }\r\n} }\r\nfunction T(a, b) { this.c = this.j = this.f = \"\"; this.h = null; this.i = this.g = \"\"; this.a = !1; if (a instanceof T) {\r\n this.a = void 0 !== b ? b : a.a;\r\n Pc(this, a.f);\r\n this.j = a.j;\r\n Qc(this, a.c);\r\n Rc(this, a.h);\r\n this.g = a.g;\r\n b = a.b;\r\n var c = new U;\r\n c.c = b.c;\r\n b.a && (c.a = new R(b.a), c.b = b.b);\r\n Sc(this, c);\r\n this.i = a.i;\r\n}\r\nelse\r\n a && (c = String(a).match(Nc)) ? (this.a = !!b, Pc(this, c[1] || \"\", !0), this.j = Tc(c[2] || \"\"), Qc(this, c[3] || \"\", !0), Rc(this, c[4]), this.g = Tc(c[5] || \"\", !0), Sc(this, c[6] || \"\", !0), this.i = Tc(c[7] || \"\")) : (this.a = !!b, this.b = new U(null, this.a)); }\r\nT.prototype.toString = function () { var a = [], b = this.f; b && a.push(Uc(b, Vc, !0), \":\"); var c = this.c; if (c || \"file\" == b)\r\n a.push(\"//\"), (b = this.j) && a.push(Uc(b, Vc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.h, null != c && a.push(\":\", String(c)); if (c = this.g)\r\n this.c && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Uc(c, \"/\" == c.charAt(0) ? Wc : Xc, !0)); (c = this.b.toString()) && a.push(\"?\", c); (c = this.i) && a.push(\"#\", Uc(c, Yc)); return a.join(\"\"); };\r\nfunction L(a) { return new T(a); }\r\nfunction Pc(a, b, c) { a.f = c ? Tc(b, !0) : b; a.f && (a.f = a.f.replace(/:$/, \"\")); }\r\nfunction Qc(a, b, c) { a.c = c ? Tc(b, !0) : b; }\r\nfunction Rc(a, b) { if (b) {\r\n b = Number(b);\r\n if (isNaN(b) || 0 > b)\r\n throw Error(\"Bad port number \" + b);\r\n a.h = b;\r\n}\r\nelse\r\n a.h = null; }\r\nfunction Sc(a, b, c) { b instanceof U ? (a.b = b, Zc(a.b, a.a)) : (c || (b = Uc(b, $c)), a.b = new U(b, a.a)); }\r\nfunction Q(a, b, c) { a.b.set(b, c); }\r\nfunction lc(a) { Q(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ q()).toString(36)); return a; }\r\nfunction ad(a) { return a instanceof T ? L(a) : new T(a, void 0); }\r\nfunction bd(a, b, c, d) { var e = new T(null, void 0); a && Pc(e, a); b && Qc(e, b); c && Rc(e, c); d && (e.g = d); return e; }\r\nfunction Tc(a, b) { return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\"; }\r\nfunction Uc(a, b, c) { return \"string\" === typeof a ? (a = encodeURI(a).replace(b, cd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null; }\r\nfunction cd(a) { a = a.charCodeAt(0); return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); }\r\nvar Vc = /[#\\/\\?@]/g, Xc = /[#\\?:]/g, Wc = /[#\\?]/g, $c = /[#\\?@]/g, Yc = /#/g;\r\nfunction U(a, b) { this.b = this.a = null; this.c = a || null; this.f = !!b; }\r\nfunction V(a) { a.a || (a.a = new R, a.b = 0, a.c && Oc(a.c, function (b, c) { a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c); })); }\r\ng = U.prototype;\r\ng.add = function (a, b) { V(this); this.c = null; a = W(this, a); var c = this.a.get(a); c || this.a.set(a, c = []); c.push(b); this.b += 1; return this; };\r\nfunction dd(a, b) { V(a); b = W(a, b); S(a.a.b, b) && (a.c = null, a.b -= a.a.get(b).length, a = a.a, S(a.b, b) && (delete a.b[b], a.c--, a.a.length > 2 * a.c && Mc(a))); }\r\nfunction ed(a, b) { V(a); b = W(a, b); return S(a.a.b, b); }\r\ng.forEach = function (a, b) { V(this); this.a.forEach(function (c, d) { oa(c, function (e) { a.call(b, e, d, this); }, this); }, this); };\r\ng.L = function () { V(this); for (var a = this.a.K(), b = this.a.L(), c = [], d = 0; d < b.length; d++)\r\n for (var e = a[d], f = 0; f < e.length; f++)\r\n c.push(b[d]); return c; };\r\ng.K = function (a) { V(this); var b = []; if (\"string\" === typeof a)\r\n ed(this, a) && (b = ra(b, this.a.get(W(this, a))));\r\nelse {\r\n a = this.a.K();\r\n for (var c = 0; c < a.length; c++)\r\n b = ra(b, a[c]);\r\n} return b; };\r\ng.set = function (a, b) { V(this); this.c = null; a = W(this, a); ed(this, a) && (this.b -= this.a.get(a).length); this.a.set(a, [b]); this.b += 1; return this; };\r\ng.get = function (a, b) { if (!a)\r\n return b; a = this.K(a); return 0 < a.length ? String(a[0]) : b; };\r\nfunction nc(a, b, c) { dd(a, b); 0 < c.length && (a.c = null, a.a.set(W(a, b), sa(c)), a.b += c.length); }\r\ng.toString = function () { if (this.c)\r\n return this.c; if (!this.a)\r\n return \"\"; for (var a = [], b = this.a.L(), c = 0; c < b.length; c++) {\r\n var d = b[c], e = encodeURIComponent(String(d));\r\n d = this.K(d);\r\n for (var f = 0; f < d.length; f++) {\r\n var h = e;\r\n \"\" !== d[f] && (h += \"=\" + encodeURIComponent(String(d[f])));\r\n a.push(h);\r\n }\r\n} return this.c = a.join(\"&\"); };\r\nfunction W(a, b) { b = String(b); a.f && (b = b.toLowerCase()); return b; }\r\nfunction Zc(a, b) { b && !a.f && (V(a), a.c = null, a.a.forEach(function (c, d) { var e = d.toLowerCase(); d != e && (dd(this, d), nc(this, e, c)); }, a)); a.f = b; }\r\nfunction fd(a, b) { this.b = a; this.a = b; }\r\nfunction gd(a) { this.g = a || hd; k.PerformanceNavigationTiming ? (a = k.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(k.ia && k.ia.ya && k.ia.ya() && k.ia.ya().qb); this.f = a ? this.g : 1; this.a = null; 1 < this.f && (this.a = new Set); this.b = null; this.c = []; }\r\nvar hd = 10;\r\nfunction id(a) { return a.b ? !0 : a.a ? a.a.size >= a.f : !1; }\r\nfunction Dc(a) { return a.b ? 1 : a.a ? a.a.size : 0; }\r\nfunction zc(a, b) { return a.b ? a.b == b : a.a ? a.a.has(b) : !1; }\r\nfunction Ec(a, b) { a.a ? a.a.add(b) : a.b = b; }\r\nfunction Gc(a, b) { a.b && a.b == b ? a.b = null : a.a && a.a.has(b) && a.a.delete(b); }\r\ngd.prototype.cancel = function () {\r\n var e_1, _a;\r\n this.c = jd(this);\r\n if (this.b)\r\n this.b.cancel(), this.b = null;\r\n else if (this.a && 0 !== this.a.size) {\r\n try {\r\n for (var _b = __values(this.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var a = _c.value;\r\n a.cancel();\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n this.a.clear();\r\n }\r\n};\r\nfunction jd(a) {\r\n var e_2, _a;\r\n if (null != a.b)\r\n return a.c.concat(a.b.s);\r\n if (null != a.a && 0 !== a.a.size) {\r\n var b = a.c;\r\n try {\r\n for (var _b = __values(a.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var c = _c.value;\r\n b = b.concat(c.s);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return b;\r\n }\r\n return sa(a.c);\r\n}\r\nfunction kd() { }\r\nkd.prototype.stringify = function (a) { return k.JSON.stringify(a, void 0); };\r\nkd.prototype.parse = function (a) { return k.JSON.parse(a, void 0); };\r\nfunction ld() { this.a = new kd; }\r\nfunction md(a, b, c) { var d = c || \"\"; try {\r\n Lc(a, function (e, f) { var h = e; n(e) && (h = vb(e)); b.push(d + f + \"=\" + encodeURIComponent(h)); });\r\n}\r\ncatch (e) {\r\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\r\n} }\r\nfunction nd(a, b) { var c = new Pb; if (k.Image) {\r\n var d = new Image;\r\n d.onload = ka(od, c, d, \"TestLoadImage: loaded\", !0, b);\r\n d.onerror = ka(od, c, d, \"TestLoadImage: error\", !1, b);\r\n d.onabort = ka(od, c, d, \"TestLoadImage: abort\", !1, b);\r\n d.ontimeout = ka(od, c, d, \"TestLoadImage: timeout\", !1, b);\r\n k.setTimeout(function () { if (d.ontimeout)\r\n d.ontimeout(); }, 1E4);\r\n d.src = a;\r\n}\r\nelse\r\n b(!1); }\r\nfunction od(a, b, c, d, e) { try {\r\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\r\n}\r\ncatch (f) { } }\r\nvar pd = k.JSON.parse;\r\nfunction X(a) { D.call(this); this.headers = new R; this.H = a || null; this.b = !1; this.s = this.a = null; this.B = \"\"; this.h = 0; this.f = \"\"; this.g = this.A = this.l = this.u = !1; this.o = 0; this.m = null; this.I = qd; this.D = this.F = !1; }\r\nr(X, D);\r\nvar qd = \"\", rd = /^https?$/i, sd = [\"POST\", \"PUT\"];\r\ng = X.prototype;\r\ng.ba = function (a, b, c, d) {\r\n if (this.a)\r\n throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.B + \"; newUri=\" + a);\r\n b = b ? b.toUpperCase() : \"GET\";\r\n this.B = a;\r\n this.f = \"\";\r\n this.h = 0;\r\n this.u = !1;\r\n this.b = !0;\r\n this.a = new XMLHttpRequest;\r\n this.s = this.H ? bc(this.H) : bc(fc);\r\n this.a.onreadystatechange = p(this.za, this);\r\n try {\r\n this.A = !0, this.a.open(b, String(a), !0), this.A = !1;\r\n }\r\n catch (f) {\r\n td(this, f);\r\n return;\r\n }\r\n a = c || \"\";\r\n var e = new R(this.headers);\r\n d && Lc(d, function (f, h) { e.set(h, f); });\r\n d = pa(e.L());\r\n c = k.FormData && a instanceof k.FormData;\r\n !(0 <=\r\n na(sd, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\r\n e.forEach(function (f, h) { this.a.setRequestHeader(h, f); }, this);\r\n this.I && (this.a.responseType = this.I);\r\n \"withCredentials\" in this.a && this.a.withCredentials !== this.F && (this.a.withCredentials = this.F);\r\n try {\r\n ud(this), 0 < this.o && ((this.D = vd(this.a)) ? (this.a.timeout = this.o, this.a.ontimeout = p(this.xa, this)) : this.m = Jb(this.xa, this.o, this)), this.l = !0, this.a.send(a), this.l = !1;\r\n }\r\n catch (f) {\r\n td(this, f);\r\n }\r\n};\r\nfunction vd(a) { return x && Ra(9) && \"number\" === typeof a.timeout && void 0 !== a.ontimeout; }\r\nfunction qa(a) { return \"content-type\" == a.toLowerCase(); }\r\ng.xa = function () { \"undefined\" != typeof goog && this.a && (this.f = \"Timed out after \" + this.o + \"ms, aborting\", this.h = 8, this.dispatchEvent(\"timeout\"), this.abort(8)); };\r\nfunction td(a, b) { a.b = !1; a.a && (a.g = !0, a.a.abort(), a.g = !1); a.f = b; a.h = 5; wd(a); xd(a); }\r\nfunction wd(a) { a.u || (a.u = !0, a.dispatchEvent(\"complete\"), a.dispatchEvent(\"error\")); }\r\ng.abort = function (a) { this.a && this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1, this.h = a || 7, this.dispatchEvent(\"complete\"), this.dispatchEvent(\"abort\"), xd(this)); };\r\ng.G = function () { this.a && (this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1), xd(this, !0)); X.S.G.call(this); };\r\ng.za = function () { this.j || (this.A || this.l || this.g ? yd(this) : this.Ta()); };\r\ng.Ta = function () { yd(this); };\r\nfunction yd(a) {\r\n if (a.b && \"undefined\" != typeof goog && (!a.s[1] || 4 != N(a) || 2 != a.X()))\r\n if (a.l && 4 == N(a))\r\n Jb(a.za, 0, a);\r\n else if (a.dispatchEvent(\"readystatechange\"), 4 == N(a)) {\r\n a.b = !1;\r\n try {\r\n var b = a.X();\r\n a: switch (b) {\r\n case 200:\r\n case 201:\r\n case 202:\r\n case 204:\r\n case 206:\r\n case 304:\r\n case 1223:\r\n var c = !0;\r\n break a;\r\n default: c = !1;\r\n }\r\n var d;\r\n if (!(d = c)) {\r\n var e;\r\n if (e = 0 === b) {\r\n var f = String(a.B).match(Nc)[1] || null;\r\n if (!f && k.self && k.self.location) {\r\n var h = k.self.location.protocol;\r\n f = h.substr(0, h.length - 1);\r\n }\r\n e = !rd.test(f ? f.toLowerCase() : \"\");\r\n }\r\n d = e;\r\n }\r\n if (d)\r\n a.dispatchEvent(\"complete\"),\r\n a.dispatchEvent(\"success\");\r\n else {\r\n a.h = 6;\r\n try {\r\n var m = 2 < N(a) ? a.a.statusText : \"\";\r\n }\r\n catch (l) {\r\n m = \"\";\r\n }\r\n a.f = m + \" [\" + a.X() + \"]\";\r\n wd(a);\r\n }\r\n }\r\n finally {\r\n xd(a);\r\n }\r\n }\r\n}\r\nfunction xd(a, b) { if (a.a) {\r\n ud(a);\r\n var c = a.a, d = a.s[0] ? aa : null;\r\n a.a = null;\r\n a.s = null;\r\n b || a.dispatchEvent(\"ready\");\r\n try {\r\n c.onreadystatechange = d;\r\n }\r\n catch (e) { }\r\n} }\r\nfunction ud(a) { a.a && a.D && (a.a.ontimeout = null); a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction N(a) { return a.a ? a.a.readyState : 0; }\r\ng.X = function () { try {\r\n return 2 < N(this) ? this.a.status : -1;\r\n}\r\ncatch (a) {\r\n return -1;\r\n} };\r\ng.$ = function () { try {\r\n return this.a ? this.a.responseText : \"\";\r\n}\r\ncatch (a) {\r\n return \"\";\r\n} };\r\ng.Na = function (a) { if (this.a) {\r\n var b = this.a.responseText;\r\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\r\n return pd(b);\r\n} };\r\ng.ua = function () { return this.h; };\r\ng.Qa = function () { return \"string\" === typeof this.f ? this.f : String(this.f); };\r\nfunction zd(a) { var b = \"\"; Aa(a, function (c, d) { b += d; b += \":\"; b += c; b += \"\\r\\n\"; }); return b; }\r\nfunction Ad(a, b, c) { a: {\r\n for (d in c) {\r\n var d = !1;\r\n break a;\r\n }\r\n d = !0;\r\n} d || (c = zd(c), \"string\" === typeof a ? (null != c && encodeURIComponent(String(c))) : Q(a, b, c)); }\r\nfunction Bd(a, b, c) { return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b; }\r\nfunction Cd(a) {\r\n this.pa = 0;\r\n this.g = [];\r\n this.c = new Pb;\r\n this.ga = this.la = this.B = this.fa = this.a = this.na = this.A = this.W = this.i = this.O = this.l = null;\r\n this.La = this.R = 0;\r\n this.Ia = Bd(\"failFast\", !1, a);\r\n this.H = this.m = this.j = this.h = this.f = null;\r\n this.T = !0;\r\n this.I = this.oa = this.P = -1;\r\n this.U = this.o = this.u = 0;\r\n this.Fa = Bd(\"baseRetryDelayMs\", 5E3, a);\r\n this.Ma = Bd(\"retryDelaySeedMs\", 1E4, a);\r\n this.Ja = Bd(\"forwardChannelMaxRetries\", 2, a);\r\n this.ma = Bd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\r\n this.Ka = a && a.g || void 0;\r\n this.D = void 0;\r\n this.C = a && a.supportsCrossDomainXhr ||\r\n !1;\r\n this.J = \"\";\r\n this.b = new gd(a && a.concurrentRequestLimit);\r\n this.ka = new ld;\r\n this.da = a && a.fastHandshake || !1;\r\n this.Ga = a && a.b || !1;\r\n a && a.f && (this.c.a = !1);\r\n a && a.forceLongPolling && (this.T = !1);\r\n this.V = !this.da && this.T && a && a.c || !1;\r\n this.ea = void 0;\r\n this.N = 0;\r\n this.F = !1;\r\n this.s = null;\r\n}\r\ng = Cd.prototype;\r\ng.ha = 8;\r\ng.v = 1;\r\nfunction Jc(a) { Dd(a); if (3 == a.v) {\r\n var b = a.R++, c = L(a.B);\r\n Q(c, \"SID\", a.J);\r\n Q(c, \"RID\", b);\r\n Q(c, \"TYPE\", \"terminate\");\r\n Ed(a, c);\r\n b = new K(a, a.c, b, void 0);\r\n b.H = 2;\r\n b.i = lc(L(c));\r\n c = !1;\r\n k.navigator && k.navigator.sendBeacon && (c = k.navigator.sendBeacon(b.i.toString(), \"\"));\r\n !c && k.Image && ((new Image).src = b.i, c = !0);\r\n c || (b.a = oc(b.g, null), b.a.ba(b.i));\r\n b.u = q();\r\n M(b);\r\n} Fd(a); }\r\nfunction Bc(a) { a.a && (xc(a), a.a.cancel(), a.a = null); }\r\nfunction Dd(a) { Bc(a); a.j && (k.clearTimeout(a.j), a.j = null); Ac(a); a.b.cancel(); a.h && (\"number\" === typeof a.h && k.clearTimeout(a.h), a.h = null); }\r\nfunction Gd(a, b) { a.g.push(new fd(a.La++, b)); 3 == a.v && Ic(a); }\r\nfunction Ic(a) { id(a.b) || a.h || (a.h = !0, Cb(a.Ba, a), a.u = 0); }\r\nfunction Hd(a, b) { if (Dc(a.b) >= a.b.f - (a.h ? 1 : 0))\r\n return !1; if (a.h)\r\n return a.g = b.s.concat(a.g), !0; if (1 == a.v || 2 == a.v || a.u >= (a.Ia ? 0 : a.Ja))\r\n return !1; a.h = I(p(a.Ba, a, b), Id(a, a.u)); a.u++; return !0; }\r\ng.Ba = function (a) {\r\n if (this.h)\r\n if (this.h = null, 1 == this.v) {\r\n if (!a) {\r\n this.R = Math.floor(1E5 * Math.random());\r\n a = this.R++;\r\n var b = new K(this, this.c, a, void 0), c = this.l;\r\n this.O && (c ? (c = Ba(c), Da(c, this.O)) : c = this.O);\r\n null === this.i && (b.B = c);\r\n var d;\r\n if (this.da)\r\n a: {\r\n for (var e = d = 0; e < this.g.length; e++) {\r\n b: {\r\n var f = this.g[e];\r\n if (\"__data__\" in f.a && (f = f.a.__data__, \"string\" === typeof f)) {\r\n f = f.length;\r\n break b;\r\n }\r\n f = void 0;\r\n }\r\n if (void 0 === f)\r\n break;\r\n d += f;\r\n if (4096 < d) {\r\n d = e;\r\n break a;\r\n }\r\n if (4096 === d || e === this.g.length - 1) {\r\n d = e + 1;\r\n break a;\r\n }\r\n }\r\n d = 1E3;\r\n }\r\n else\r\n d = 1E3;\r\n d = Jd(this, b, d);\r\n e = L(this.B);\r\n Q(e, \"RID\", a);\r\n Q(e, \"CVER\", 22);\r\n this.A && Q(e, \"X-HTTP-Session-Id\", this.A);\r\n Ed(this, e);\r\n this.i && c && Ad(e, this.i, c);\r\n Ec(this.b, b);\r\n this.Ga && Q(e, \"TYPE\", \"init\");\r\n this.da ? (Q(e, \"$req\", d), Q(e, \"SID\", \"null\"), b.V = !0, kc(b, e, null)) : kc(b, e, d);\r\n this.v = 2;\r\n }\r\n }\r\n else\r\n 3 == this.v && (a ? Kd(this, a) : 0 == this.g.length || id(this.b) || Kd(this));\r\n};\r\nfunction Kd(a, b) { var c; b ? c = b.f : c = a.R++; var d = L(a.B); Q(d, \"SID\", a.J); Q(d, \"RID\", c); Q(d, \"AID\", a.P); Ed(a, d); a.i && a.l && Ad(d, a.i, a.l); c = new K(a, a.c, c, a.u + 1); null === a.i && (c.B = a.l); b && (a.g = b.s.concat(a.g)); b = Jd(a, c, 1E3); c.setTimeout(Math.round(.5 * a.ma) + Math.round(.5 * a.ma * Math.random())); Ec(a.b, c); kc(c, d, b); }\r\nfunction Ed(a, b) { a.f && Lc({}, function (c, d) { Q(b, d, c); }); }\r\nfunction Jd(a, b, c) { c = Math.min(a.g.length, c); var d = a.f ? p(a.f.Ha, a.f, a) : null; a: for (var e = a.g, f = -1;;) {\r\n var h = [\"count=\" + c];\r\n -1 == f ? 0 < c ? (f = e[0].b, h.push(\"ofs=\" + f)) : f = 0 : h.push(\"ofs=\" + f);\r\n for (var m = !0, l = 0; l < c; l++) {\r\n var t = e[l].b, B = e[l].a;\r\n t -= f;\r\n if (0 > t)\r\n f = Math.max(0, e[l].b - 100), m = !1;\r\n else\r\n try {\r\n md(B, h, \"req\" + t + \"_\");\r\n }\r\n catch (z) {\r\n d && d(B);\r\n }\r\n }\r\n if (m) {\r\n d = h.join(\"&\");\r\n break a;\r\n }\r\n} a = a.g.splice(0, c); b.s = a; return d; }\r\nfunction Hc(a) { a.a || a.j || (a.U = 1, Cb(a.Aa, a), a.o = 0); }\r\nfunction Cc(a) { if (a.a || a.j || 3 <= a.o)\r\n return !1; a.U++; a.j = I(p(a.Aa, a), Id(a, a.o)); a.o++; return !0; }\r\ng.Aa = function () { this.j = null; Ld(this); if (this.V && !(this.F || null == this.a || 0 >= this.N)) {\r\n var a = 2 * this.N;\r\n this.c.info(\"BP detection timer enabled: \" + a);\r\n this.s = I(p(this.Sa, this), a);\r\n} };\r\ng.Sa = function () { this.s && (this.s = null, this.c.info(\"BP detection timeout reached.\"), this.c.info(\"Buffering proxy detected and switch to long-polling!\"), this.H = !1, this.F = !0, Bc(this), Ld(this)); };\r\nfunction xc(a) { null != a.s && (k.clearTimeout(a.s), a.s = null); }\r\nfunction Ld(a) { a.a = new K(a, a.c, \"rpc\", a.U); null === a.i && (a.a.B = a.l); a.a.O = 0; var b = L(a.la); Q(b, \"RID\", \"rpc\"); Q(b, \"SID\", a.J); Q(b, \"CI\", a.H ? \"0\" : \"1\"); Q(b, \"AID\", a.P); Ed(a, b); Q(b, \"TYPE\", \"xmlhttp\"); a.i && a.l && Ad(b, a.i, a.l); a.D && a.a.setTimeout(a.D); var c = a.a; a = a.ga; c.H = 1; c.i = lc(L(b)); c.j = null; c.I = !0; mc(c, a); }\r\ng.Ra = function () { null != this.m && (this.m = null, Bc(this), Cc(this), H(19)); };\r\nfunction Ac(a) { null != a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction uc(a, b) { var c = null; if (a.a == b) {\r\n Ac(a);\r\n xc(a);\r\n a.a = null;\r\n var d = 2;\r\n}\r\nelse if (zc(a.b, b))\r\n c = b.s, Gc(a.b, b), d = 1;\r\nelse\r\n return; a.I = b.N; if (0 != a.v)\r\n if (b.b)\r\n if (1 == d) {\r\n c = b.j ? b.j.length : 0;\r\n b = q() - b.u;\r\n var e = a.u;\r\n d = Vb();\r\n d.dispatchEvent(new Yb(d, c, b, e));\r\n Ic(a);\r\n }\r\n else\r\n Hc(a);\r\n else if (e = b.h, 3 == e || 0 == e && 0 < a.I || !(1 == d && Hd(a, b) || 2 == d && Cc(a)))\r\n switch (c && 0 < c.length && (b = a.b, b.c = b.c.concat(c)), e) {\r\n case 1:\r\n P(a, 5);\r\n break;\r\n case 4:\r\n P(a, 10);\r\n break;\r\n case 3:\r\n P(a, 6);\r\n break;\r\n default: P(a, 2);\r\n } }\r\nfunction Id(a, b) { var c = a.Fa + Math.floor(Math.random() * a.Ma); a.f || (c *= 2); return c * b; }\r\nfunction P(a, b) { a.c.info(\"Error code \" + b); if (2 == b) {\r\n var c = null;\r\n a.f && (c = null);\r\n var d = p(a.Xa, a);\r\n c || (c = new T(\"//www.google.com/images/cleardot.gif\"), k.location && \"http\" == k.location.protocol || Pc(c, \"https\"), lc(c));\r\n nd(c.toString(), d);\r\n}\r\nelse\r\n H(2); a.v = 0; a.f && a.f.ra(b); Fd(a); Dd(a); }\r\ng.Xa = function (a) { a ? (this.c.info(\"Successfully pinged google.com\"), H(2)) : (this.c.info(\"Failed to ping google.com\"), H(1)); };\r\nfunction Fd(a) { a.v = 0; a.I = -1; if (a.f) {\r\n if (0 != jd(a.b).length || 0 != a.g.length)\r\n a.b.c.length = 0, sa(a.g), a.g.length = 0;\r\n a.f.qa();\r\n} }\r\nfunction Fc(a, b, c) { var d = ad(c); if (\"\" != d.c)\r\n b && Qc(d, b + \".\" + d.c), Rc(d, d.h);\r\nelse {\r\n var e = k.location;\r\n d = bd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\r\n} a.W && Aa(a.W, function (f, h) { Q(d, h, f); }); b = a.A; c = a.na; b && c && Q(d, b, c); Q(d, \"VER\", a.ha); Ed(a, d); return d; }\r\nfunction oc(a, b) { if (b && !a.C)\r\n throw Error(\"Can't create secondary domain capable XhrIo object.\"); b = new X(a.Ka); b.F = a.C; return b; }\r\nfunction Md() { }\r\ng = Md.prototype;\r\ng.ta = function () { };\r\ng.sa = function () { };\r\ng.ra = function () { };\r\ng.qa = function () { };\r\ng.Ha = function () { };\r\nfunction Nd() { if (x && !(10 <= Number(Ua)))\r\n throw Error(\"Environmental error: no available transport.\"); }\r\nNd.prototype.a = function (a, b) { return new Y(a, b); };\r\nfunction Y(a, b) {\r\n D.call(this);\r\n this.a = new Cd(b);\r\n this.l = a;\r\n this.b = b && b.messageUrlParams || null;\r\n a = b && b.messageHeaders || null;\r\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = { \"X-Client-Protocol\": \"webchannel\" });\r\n this.a.l = a;\r\n a = b && b.initMessageHeaders || null;\r\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = { \"X-WebChannel-Content-Type\": b.messageContentType });\r\n b && b.a && (a ? a[\"X-WebChannel-Client-Profile\"] = b.a : a = { \"X-WebChannel-Client-Profile\": b.a });\r\n this.a.O =\r\n a;\r\n (a = b && b.httpHeadersOverwriteParam) && !ta(a) && (this.a.i = a);\r\n this.h = b && b.supportsCrossDomainXhr || !1;\r\n this.g = b && b.sendRawJson || !1;\r\n (b = b && b.httpSessionIdParam) && !ta(b) && (this.a.A = b, a = this.b, null !== a && b in a && (a = this.b, b in a && delete a[b]));\r\n this.f = new Z(this);\r\n}\r\nr(Y, D);\r\ng = Y.prototype;\r\ng.addEventListener = function (a, b, c, d) { Y.S.addEventListener.call(this, a, b, c, d); };\r\ng.removeEventListener = function (a, b, c, d) { Y.S.removeEventListener.call(this, a, b, c, d); };\r\ng.Oa = function () { this.a.f = this.f; this.h && (this.a.C = !0); var a = this.a, b = this.l, c = this.b || void 0; H(0); a.fa = b; a.W = c || {}; a.H = a.T; a.B = Fc(a, null, a.fa); Ic(a); };\r\ng.close = function () { Jc(this.a); };\r\ng.Pa = function (a) { if (\"string\" === typeof a) {\r\n var b = {};\r\n b.__data__ = a;\r\n Gd(this.a, b);\r\n}\r\nelse\r\n this.g ? (b = {}, b.__data__ = vb(a), Gd(this.a, b)) : Gd(this.a, a); };\r\ng.G = function () { this.a.f = null; delete this.f; Jc(this.a); delete this.a; Y.S.G.call(this); };\r\nfunction Od(a) { dc.call(this); var b = a.__sm__; if (b) {\r\n a: {\r\n for (var c in b) {\r\n a = c;\r\n break a;\r\n }\r\n a = void 0;\r\n }\r\n (this.c = a) ? (a = this.c, this.data = null !== b && a in b ? b[a] : void 0) : this.data = b;\r\n}\r\nelse\r\n this.data = a; }\r\nr(Od, dc);\r\nfunction Pd() { ec.call(this); this.status = 1; }\r\nr(Pd, ec);\r\nfunction Z(a) { this.a = a; }\r\nr(Z, Md);\r\nZ.prototype.ta = function () { this.a.dispatchEvent(\"a\"); };\r\nZ.prototype.sa = function (a) { this.a.dispatchEvent(new Od(a)); };\r\nZ.prototype.ra = function (a) { this.a.dispatchEvent(new Pd(a)); };\r\nZ.prototype.qa = function () { this.a.dispatchEvent(\"b\"); }; /*\r\n\n Copyright 2017 Google LLC\r\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\n http://www.apache.org/licenses/LICENSE-2.0\r\n\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\nNd.prototype.createWebChannel = Nd.prototype.a;\r\nY.prototype.send = Y.prototype.Pa;\r\nY.prototype.open = Y.prototype.Oa;\r\nY.prototype.close = Y.prototype.close;\r\nZb.NO_ERROR = 0;\r\nZb.TIMEOUT = 8;\r\nZb.HTTP_ERROR = 6;\r\n$b.COMPLETE = \"complete\";\r\ncc.EventType = J;\r\nJ.OPEN = \"a\";\r\nJ.CLOSE = \"b\";\r\nJ.ERROR = \"c\";\r\nJ.MESSAGE = \"d\";\r\nD.prototype.listen = D.prototype.va;\r\nX.prototype.listenOnce = X.prototype.wa;\r\nX.prototype.getLastError = X.prototype.Qa;\r\nX.prototype.getLastErrorCode = X.prototype.ua;\r\nX.prototype.getStatus = X.prototype.X;\r\nX.prototype.getResponseJson = X.prototype.Na;\r\nX.prototype.getResponseText = X.prototype.$;\r\nX.prototype.send = X.prototype.ba;\r\nvar createWebChannelTransport = function () { return new Nd; };\r\nvar ErrorCode = Zb;\r\nvar EventType = $b;\r\nvar WebChannel = cc;\r\nvar XhrIo = X;\r\n\r\nvar esm = {\r\n createWebChannelTransport: createWebChannelTransport,\r\n ErrorCode: ErrorCode,\r\n EventType: EventType,\r\n WebChannel: WebChannel,\r\n XhrIo: XhrIo\r\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (esm);\n\n//# sourceMappingURL=index.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3dlYmNoYW5uZWwtd3JhcHBlci9kaXN0L2luZGV4LmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGdCQUFnQixzQ0FBc0Msa0JBQWtCO0FBQ25GLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzSEFBc0gscUJBQU0sbUJBQW1CLHFCQUFNOztBQUVySix3QkFBd0I7QUFDeEI7QUFDQSxpQkFBaUIsa0JBQWtCO0FBQ25DLGlCQUFpQixlQUFlO0FBQ2hDLGdCQUFnQixrQkFBa0I7QUFDbEMsaUJBQWlCO0FBQ2pCO0FBQ0EsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixtQkFBbUI7QUFDbkI7QUFDQSx5QkFBeUIsK0NBQStDLHFDQUFxQztBQUM3RyxFQUFFLHFCQUFxQjtBQUN2QixzQkFBc0IsOEdBQThHO0FBQ3BJLG9CQUFvQixrREFBa0QscUJBQXFCLG1CQUFtQiw0QkFBNEI7QUFDMUk7QUFDQSxtQkFBbUIsaUJBQWlCLDJCQUEyQixtQkFBbUIscUJBQXFCO0FBQ3ZHLGVBQWUsaUJBQWlCO0FBQ2hDO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QixXQUFXLGNBQWM7QUFDekI7QUFDQSxxREFBcUQscURBQXFELG9CQUFvQjtBQUM5SCwwRUFBMEUsZ0JBQWdCLGNBQWM7QUFDeEc7QUFDQSxrQkFBa0IsWUFBWSxzREFBc0QseUNBQXlDLHVCQUF1QiwyRUFBMkUsT0FBTztBQUN0TztBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLCtFQUErRSxPQUFPO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLGlCQUFpQixrQkFBa0I7QUFDbkMsa0NBQWtDLE9BQU87QUFDekM7QUFDQTtBQUNBLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsZ0RBQWdELG1CQUFtQixpQkFBaUI7QUFDcEYsbUJBQW1CO0FBQ25CLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QixpQkFBaUI7QUFDakI7QUFDQSxvQkFBb0IsVUFBVSxnQkFBZ0Isc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QjtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0EsZ0JBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0Esb0NBQW9DLFdBQVc7QUFDL0MseUJBQXlCLFFBQVEsWUFBWTtBQUM3QywwQ0FBMEM7QUFDMUMsdUNBQXVDLFFBQVEsWUFBWTtBQUMzRCx3Q0FBd0M7QUFDeEMsa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RSxlQUFlLHdDQUF3QyxlQUFlLG1CQUFtQixXQUFXLEdBQUc7QUFDdkc7QUFDQTtBQUNBLGNBQWMsV0FBVztBQUN6QixtQkFBbUIsZUFBZSwwQkFBMEI7QUFDNUQsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLDhCQUE4QixrQkFBa0IsZ0JBQWdCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsbUJBQW1CLG1CQUFtQixjQUFjLGVBQWUsb0JBQW9CLGFBQWEsaUJBQWlCO0FBQ2xKLGlCQUFpQixVQUFVLG1CQUFtQixnQkFBZ0IsY0FBYztBQUM1RSxpQkFBaUIsY0FBYyxhQUFhO0FBQzVDLDhDQUE4QyxzQkFBc0IsZUFBZSxxQ0FBcUMsd0JBQXdCLGlHQUFpRztBQUNqUCxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdCQUFnQixjQUFjO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBLDZCQUE2QjtBQUM3Qiw4QkFBOEI7QUFDOUIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBLEVBQUUsV0FBVztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9DQUFvQyx1Q0FBdUMsaUJBQWlCLGtDQUFrQztBQUM5SSxpQkFBaUI7QUFDakIsNkJBQTZCO0FBQzdCLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0E7QUFDQSxFQUFFLFdBQVc7QUFDYiw2QkFBNkI7QUFDN0Isb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixvQkFBb0IsdUNBQXVDLGNBQWM7QUFDekUsb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsY0FBYztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWMsaUNBQWlDLDBCQUEwQixHQUFHO0FBQzVFLGVBQWUsY0FBYyx1QkFBdUIsZUFBZTtBQUNuRTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0MsZ0RBQWdEO0FBQ2hELGlDQUFpQyxtQkFBbUI7QUFDcEQsaUJBQWlCLEdBQUc7QUFDcEIsbUJBQW1CLFlBQVkscUJBQXFCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxRQUFRO0FBQ1YsK0JBQStCLFFBQVE7QUFDdkM7QUFDQTtBQUNBLE1BQU0sYUFBYSwwQkFBMEIsMEJBQTBCO0FBQ3ZFLGdCQUFnQixjQUFjO0FBQzlCLGtEQUFrRDtBQUNsRCxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRiwrQkFBK0I7QUFDL0IsK0JBQStCO0FBQy9CLDBCQUEwQixzQkFBc0I7QUFDaEQsZUFBZSxnQkFBZ0Isd0JBQXdCLGNBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsT0FBTyxvRkFBb0Y7QUFDckk7QUFDQSxDQUFDLGtCQUFrQixnQkFBZ0IsaUJBQWlCLFlBQVk7QUFDaEUscUNBQXFDLGtCQUFrQixhQUFhLHVDQUF1QztBQUMzRyxnQkFBZ0Isc0JBQXNCLHNFQUFzRTtBQUM1RyxnQkFBZ0I7QUFDaEIscUNBQXFDLFlBQVksWUFBWTtBQUM3RCxtQ0FBbUM7QUFDbkMsaUJBQWlCLDJCQUEyQixVQUFVO0FBQ3RELG9CQUFvQixZQUFZLHVCQUF1QjtBQUN2RDtBQUNBLGdCQUFnQixtQ0FBbUMsbUJBQW1CO0FBQ3RFO0FBQ0EsZ0JBQWdCLFlBQVksU0FBUztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Ysb0JBQW9CLGNBQWMsaUJBQWlCLGlCQUFpQiwyQkFBMkI7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEMsaUJBQWlCLFdBQVc7QUFDNUIsb0JBQW9CLG1CQUFtQixVQUFVO0FBQ2pELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QyxpQkFBaUIsdUJBQXVCLFlBQVksMkJBQTJCLFFBQVEsYUFBYSxZQUFZO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msb0JBQW9CO0FBQ3hELG1DQUFtQywrQkFBK0I7QUFDbEU7QUFDQSxDQUFDO0FBQ0QsZ0JBQWdCLGNBQWMsWUFBWTtBQUMxQztBQUNBO0FBQ0EsMEJBQTBCLDJEQUEyRCxnQkFBZ0IsY0FBYztBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDBCQUEwQixvQ0FBb0MsTUFBTTtBQUNyRiw4QkFBOEIsa0JBQWtCO0FBQ2hELHdDQUF3QztBQUN4QyxnQkFBZ0I7QUFDaEIsZ0NBQWdDLHFCQUFxQjtBQUNyRDtBQUNBO0FBQ0EsMENBQTBDLGNBQWM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxtRkFBbUY7QUFDOUYsbUNBQW1DLHFCQUFxQiwrRkFBK0Y7QUFDdkoseUJBQXlCLHFCQUFxQixzRUFBc0U7QUFDcEgsb0JBQW9CLHFCQUFxQix5QkFBeUI7QUFDbEU7QUFDQSxvQkFBb0I7QUFDcEIsY0FBYztBQUNkLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsY0FBYztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixpQkFBaUI7QUFDakI7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QixpQkFBaUI7QUFDakI7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QixpQkFBaUI7QUFDakI7QUFDQSxtQkFBbUI7QUFDbkIsK0RBQStELGtDQUFrQyxNQUFNO0FBQ3ZHLFdBQVc7QUFDWCxXQUFXO0FBQ1g7QUFDQTtBQUNBLGlCQUFpQixPQUFPLDBCQUEwQixHQUFHO0FBQ3JEO0FBQ0EsVUFBVTtBQUNWLGdCQUFnQjtBQUNoQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFlBQVksWUFBWSxZQUFZLGlCQUFpQixzQkFBc0IsYUFBYSx1QkFBdUIsb0JBQW9CLGVBQWUsYUFBYSxxRUFBcUUsYUFBYSxlQUFlLFlBQVksd0JBQXdCLGFBQWEsYUFBYSxZQUFZLGVBQWU7QUFDbFgsc0JBQXNCO0FBQ3RCO0FBQ0EsOEJBQThCO0FBQzlCLHVCQUF1QixTQUFTLGdCQUFnQixTQUFTLFVBQVU7QUFDbkUsb0JBQW9CLFdBQVcsTUFBTSxjQUFjLHNCQUFzQix1Q0FBdUMsaUJBQWlCLFNBQVMsaUNBQWlDLGlEQUFpRCx3Q0FBd0Msd0JBQXdCLDZKQUE2SixNQUFNO0FBQy9iLHNCQUFzQixjQUFjLGdCQUFnQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixpQkFBaUIsdUJBQXVCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscURBQXFELGdCQUFnQjtBQUN2RSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFDQUFxQztBQUN6RCxlQUFlLCtCQUErQjtBQUM5QyxlQUFlLFFBQVE7QUFDdkIsZUFBZSxvQkFBb0IsYUFBYTtBQUNoRCx5QkFBeUIsYUFBYTtBQUN0QyxnQkFBZ0IsaUJBQWlCO0FBQ2pDLG9CQUFvQjtBQUNwQiw0Q0FBNEM7QUFDNUMsaUJBQWlCO0FBQ2pCLHFCQUFxQixlQUFlLGFBQWE7QUFDakQsaUJBQWlCO0FBQ2pCLGdCQUFnQixPQUFPLGFBQWEsMENBQTBDLFlBQVksU0FBUyxTQUFTO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxjQUFjO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixrQkFBa0I7QUFDbEIsd0JBQXdCO0FBQ3hCLDBDQUEwQyxPQUFPO0FBQ2pEO0FBQ0E7QUFDQSxFQUFFLFFBQVEsT0FBTztBQUNqQixtQkFBbUI7QUFDbkIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLE9BQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0EsbUJBQW1CLGFBQWEsYUFBYSxZQUFZLDBCQUEwQjtBQUNuRjtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsY0FBYztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFVBQVUsd0JBQXdCLG1CQUFtQjtBQUN6RSwrQkFBK0I7QUFDL0Isb0JBQW9CLFVBQVU7QUFDOUIsaUJBQWlCO0FBQ2pCLDJCQUEyQixlQUFlO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsMEJBQTBCLDRDQUE0QztBQUN0RSw4QkFBOEIsOEJBQThCLGNBQWM7QUFDMUU7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsK0JBQStCLGVBQWUsc0JBQXNCLGFBQWE7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLHdCQUF3QixpQ0FBaUMsZ0JBQWdCO0FBQzlHLDRIQUE0SCxFQUFFLCtEQUErRDtBQUM3TCxrR0FBa0csMkNBQTJDLHdDQUF3QztBQUNyTCxnQkFBZ0I7QUFDaEIsdUJBQXVCLHlCQUF5QjtBQUNoRCx1QkFBdUI7QUFDdkIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLHNCQUFzQjtBQUN0QixpQkFBaUIsdUlBQXVJO0FBQ3hKLGlCQUFpQjtBQUNqQiwwQkFBMEIsNkJBQTZCLGVBQWUsZUFBZSxlQUFlLGdCQUFnQjtBQUNwSCxvQkFBb0I7QUFDcEIsdUJBQXVCLHNHQUFzRyxFQUFFO0FBQy9ILGlCQUFpQixxQkFBcUI7QUFDdEM7QUFDQSxtQkFBbUIsd0JBQXdCLG9CQUFvQjtBQUMvRCxnQkFBZ0IsK0RBQStELHNEQUFzRDtBQUNySTtBQUNBLDBCQUEwQixTQUFTLGVBQWUsZ0JBQWdCLHVCQUF1Qiw0QkFBNEIsV0FBVyxhQUFhO0FBQzdJLG9CQUFvQixNQUFNLGFBQWE7QUFDdkMsb0JBQW9CLE1BQU0sYUFBYTtBQUN2Qyw4QkFBOEIsU0FBUyxpQ0FBaUMscUJBQXFCLHdCQUF3QixVQUFVO0FBQy9ILG9CQUFvQixTQUFTLHdEQUF3RCxjQUFjO0FBQ25HLDhCQUE4QixjQUFjO0FBQzVDLHNCQUFzQjtBQUN0QixxQkFBcUIsU0FBUyxZQUFZO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0EsRUFBRTtBQUNGLDBCQUEwQixTQUFTLGVBQWUsZ0JBQWdCLGlEQUFpRCxvQkFBb0IsYUFBYTtBQUNwSiwwQkFBMEI7QUFDMUIsY0FBYyxlQUFlO0FBQzdCLHVCQUF1QixVQUFVO0FBQ2pDLDJCQUEyQjtBQUMzQixtQkFBbUI7QUFDbkIsZUFBZSx3Q0FBd0MsY0FBYztBQUNyRTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsbUJBQW1CLGVBQWUsOEJBQThCO0FBQ2hFLG9CQUFvQiw4REFBOEQseUJBQXlCLDBDQUEwQyxPQUFPO0FBQzVKLG9CQUFvQixZQUFZO0FBQ2hDLGlCQUFpQixrQkFBa0IsK05BQStOLHlCQUF5QixlQUFlLGtDQUFrQyxlQUFlO0FBQzNWO0FBQ0EsaUJBQWlCO0FBQ2pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRSxVQUFVO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRSxVQUFVO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDLG9DQUFvQztBQUNwQyxnQkFBZ0I7QUFDaEIsdUJBQXVCLGlCQUFpQjtBQUN4Qyw0QkFBNEIsV0FBVyxxQkFBcUIsOENBQThDO0FBQzFHO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjLHNCQUFzQixvQkFBb0IsYUFBYSx3QkFBd0IsYUFBYSxZQUFZLGFBQWEsd0NBQXdDLFlBQVksZUFBZSxhQUFhO0FBQ25PO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLGNBQWM7QUFDL0M7QUFDQTtBQUNBO0FBQ0EseUZBQXlGO0FBQ3pGLGdDQUFnQyxnQ0FBZ0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsb0JBQW9CLFVBQVUsMENBQTBDLFNBQVMsU0FBUyxPQUFPO0FBQ2pHLGlCQUFpQjtBQUNqQix5QkFBeUI7QUFDekIsb0JBQW9CLDZGQUE2RjtBQUNqSCxxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsc0NBQXNDO0FBQ3ZELGdCQUFnQjtBQUNoQixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUIsWUFBWSx3QkFBd0IsUUFBUSxVQUFVLFFBQVEsY0FBYyxHQUFHO0FBQ2hHLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE9BQU87QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsaUJBQWlCLE9BQU8sMENBQTBDLE9BQU8sY0FBYztBQUN2RixvQkFBb0IsNkJBQTZCO0FBQ2pELGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsZUFBZTtBQUNmLHNDQUFzQztBQUN0QyxlQUFlLG9DQUFvQyxPQUFPO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxtQkFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTyx5QkFBeUIsZ0JBQWdCLGtCQUFrQixnQkFBZ0Isa0JBQWtCLFVBQVUsK0JBQStCLCtCQUErQiw2QkFBNkIsOEJBQThCLG1CQUFtQiw2RUFBNkUsWUFBWTtBQUN2VyxvQkFBb0IsWUFBWSxvQkFBb0IsYUFBYTtBQUNqRSx1QkFBdUIsNkJBQTZCLHdDQUF3Qyw2QkFBNkI7QUFDekg7QUFDQTtBQUNBLDRCQUE0QixPQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxzQkFBc0IsU0FBUztBQUNqQyxpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCLGVBQWUsT0FBTyxpQ0FBaUMsT0FBTztBQUM5RCxxQkFBcUIsZUFBZSxVQUFVO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQixpQkFBaUIsaUNBQWlDLCtCQUErQixXQUFXLGlCQUFpQixvQkFBb0Isa0JBQWtCLDZCQUE2QixrQkFBa0IsVUFBVSx5QkFBeUIsK0JBQStCLDRCQUE0QixhQUFhLFVBQVUsU0FBUyxnQkFBZ0IsWUFBWSxVQUFVO0FBQ3RXLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaURBQWlELGlCQUFpQjtBQUN0RixtQkFBbUIsNkJBQTZCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxTQUFTLGtCQUFrQixPQUFPO0FBQzVDLHNCQUFzQjtBQUN0QixpQkFBaUIsU0FBUyxVQUFVO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGVBQWU7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLGlDQUFpQyxhQUFhLEdBQUcsU0FBUyxVQUFVLHNCQUFzQixtQkFBbUIsVUFBVTtBQUN6SCxvQkFBb0I7QUFDcEIsd0VBQXdFLGlCQUFpQixXQUFXO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhGQUE4RixtQ0FBbUM7QUFDakk7QUFDQTtBQUNBLG9HQUFvRyxtREFBbUQ7QUFDdkosb0VBQW9FLG9DQUFvQztBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QyxnREFBZ0Q7QUFDaEQscUJBQXFCLG1CQUFtQiwyQkFBMkIsa0RBQWtELE1BQU0sVUFBVSxlQUFlLFdBQVcseUJBQXlCO0FBQ3hMLHdCQUF3QjtBQUN4QixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0IsaUJBQWlCLGVBQWUsWUFBWSxlQUFlO0FBQy9FLGlCQUFpQixlQUFlLGtCQUFrQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZUFBZTtBQUMvQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBLCtCQUErQjtBQUMvQixnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLCtCQUErQiw4QkFBOEI7O0FBRTdEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLEdBQUcsRUFBQztBQUMyRDtBQUM5RSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3dlYmNoYW5uZWwtd3JhcHBlci9kaXN0L2luZGV4LmVzbS5qcz9jN2IyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cblxudmFyIGNvbW1vbmpzR2xvYmFsID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsVGhpcyA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDoge307XG5cbnZhciBnLCBnb29nID0gZ29vZyB8fCB7fSwgayA9IGNvbW1vbmpzR2xvYmFsIHx8IHNlbGY7XHJcbmZ1bmN0aW9uIGFhKCkgeyB9XHJcbmZ1bmN0aW9uIGJhKGEpIHsgdmFyIGIgPSB0eXBlb2YgYTsgcmV0dXJuIFwib2JqZWN0XCIgIT0gYiA/IGIgOiBhID8gQXJyYXkuaXNBcnJheShhKSA/IFwiYXJyYXlcIiA6IGIgOiBcIm51bGxcIjsgfVxyXG5mdW5jdGlvbiBjYShhKSB7IHZhciBiID0gYmEoYSk7IHJldHVybiBcImFycmF5XCIgPT0gYiB8fCBcIm9iamVjdFwiID09IGIgJiYgXCJudW1iZXJcIiA9PSB0eXBlb2YgYS5sZW5ndGg7IH1cclxuZnVuY3Rpb24gbihhKSB7IHZhciBiID0gdHlwZW9mIGE7IHJldHVybiBcIm9iamVjdFwiID09IGIgJiYgbnVsbCAhPSBhIHx8IFwiZnVuY3Rpb25cIiA9PSBiOyB9XHJcbmZ1bmN0aW9uIGRhKGEpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCBlYSkgJiYgYVtlYV0gfHwgKGFbZWFdID0gKytmYSk7IH1cclxudmFyIGVhID0gXCJjbG9zdXJlX3VpZF9cIiArICgxRTkgKiBNYXRoLnJhbmRvbSgpID4+PiAwKSwgZmEgPSAwO1xyXG5mdW5jdGlvbiBoYShhLCBiLCBjKSB7IHJldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLCBhcmd1bWVudHMpOyB9XHJcbmZ1bmN0aW9uIGphKGEsIGIsIGMpIHsgaWYgKCFhKVxyXG4gICAgdGhyb3cgRXJyb3IoKTsgaWYgKDIgPCBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICB2YXIgZCA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyB2YXIgZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7IEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsIGQpOyByZXR1cm4gYS5hcHBseShiLCBlKTsgfTtcclxufSByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gYS5hcHBseShiLCBhcmd1bWVudHMpOyB9OyB9XHJcbmZ1bmN0aW9uIHAoYSwgYiwgYykgeyBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCAmJiAtMSAhPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoXCJuYXRpdmUgY29kZVwiKSA/IHAgPSBoYSA6IHAgPSBqYTsgcmV0dXJuIHAuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsgfVxyXG5mdW5jdGlvbiBrYShhLCBiKSB7IHZhciBjID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsgcmV0dXJuIGZ1bmN0aW9uICgpIHsgdmFyIGQgPSBjLnNsaWNlKCk7IGQucHVzaC5hcHBseShkLCBhcmd1bWVudHMpOyByZXR1cm4gYS5hcHBseSh0aGlzLCBkKTsgfTsgfVxyXG52YXIgcSA9IERhdGUubm93O1xyXG5mdW5jdGlvbiByKGEsIGIpIHsgZnVuY3Rpb24gYygpIHsgfSBjLnByb3RvdHlwZSA9IGIucHJvdG90eXBlOyBhLlMgPSBiLnByb3RvdHlwZTsgYS5wcm90b3R5cGUgPSBuZXcgYzsgYS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBhOyB9XHJcbmZ1bmN0aW9uIHUoKSB7IHRoaXMuaiA9IHRoaXMuajsgdGhpcy5pID0gdGhpcy5pOyB9XHJcbnZhciBsYSA9IDA7XHJcbnUucHJvdG90eXBlLmogPSAhMTtcclxudS5wcm90b3R5cGUuamEgPSBmdW5jdGlvbiAoKSB7IGlmICghdGhpcy5qICYmICh0aGlzLmogPSAhMCwgdGhpcy5HKCksIDAgIT0gbGEpKSB7XHJcbiAgICB2YXIgYSA9IGRhKHRoaXMpO1xyXG59IH07XHJcbnUucHJvdG90eXBlLkcgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmkpXHJcbiAgICBmb3IgKDsgdGhpcy5pLmxlbmd0aDspXHJcbiAgICAgICAgdGhpcy5pLnNoaWZ0KCkoKTsgfTtcclxudmFyIG5hID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPyBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLCBiLCB2b2lkIDApOyB9IDogZnVuY3Rpb24gKGEsIGIpIHsgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBhKVxyXG4gICAgcmV0dXJuIFwic3RyaW5nXCIgIT09IHR5cGVvZiBiIHx8IDEgIT0gYi5sZW5ndGggPyAtMSA6IGEuaW5kZXhPZihiLCAwKTsgZm9yICh2YXIgYyA9IDA7IGMgPCBhLmxlbmd0aDsgYysrKVxyXG4gICAgaWYgKGMgaW4gYSAmJiBhW2NdID09PSBiKVxyXG4gICAgICAgIHJldHVybiBjOyByZXR1cm4gLTE7IH0sIG9hID0gQXJyYXkucHJvdG90eXBlLmZvckVhY2ggPyBmdW5jdGlvbiAoYSwgYiwgYykgeyBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsIGIsIGMpOyB9IDogZnVuY3Rpb24gKGEsIGIsIGMpIHsgZm9yICh2YXIgZCA9IGEubGVuZ3RoLCBlID0gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEgPyBhLnNwbGl0KFwiXCIpIDogYSwgZiA9IDA7IGYgPCBkOyBmKyspXHJcbiAgICBmIGluIGUgJiYgYi5jYWxsKGMsIGVbZl0sIGYsIGEpOyB9O1xyXG5mdW5jdGlvbiBwYShhKSB7IGE6IHtcclxuICAgIHZhciBiID0gcWE7XHJcbiAgICBmb3IgKHZhciBjID0gYS5sZW5ndGgsIGQgPSBcInN0cmluZ1wiID09PSB0eXBlb2YgYSA/IGEuc3BsaXQoXCJcIikgOiBhLCBlID0gMDsgZSA8IGM7IGUrKylcclxuICAgICAgICBpZiAoZSBpbiBkICYmIGIuY2FsbCh2b2lkIDAsIGRbZV0sIGUsIGEpKSB7XHJcbiAgICAgICAgICAgIGIgPSBlO1xyXG4gICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgIH1cclxuICAgIGIgPSAtMTtcclxufSByZXR1cm4gMCA+IGIgPyBudWxsIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEgPyBhLmNoYXJBdChiKSA6IGFbYl07IH1cclxuZnVuY3Rpb24gcmEoYSkgeyByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgYXJndW1lbnRzKTsgfVxyXG5mdW5jdGlvbiBzYShhKSB7IHZhciBiID0gYS5sZW5ndGg7IGlmICgwIDwgYikge1xyXG4gICAgZm9yICh2YXIgYyA9IEFycmF5KGIpLCBkID0gMDsgZCA8IGI7IGQrKylcclxuICAgICAgICBjW2RdID0gYVtkXTtcclxuICAgIHJldHVybiBjO1xyXG59IHJldHVybiBbXTsgfVxyXG5mdW5jdGlvbiB0YShhKSB7IHJldHVybiAvXltcXHNcXHhhMF0qJC8udGVzdChhKTsgfVxyXG52YXIgdWEgPSBTdHJpbmcucHJvdG90eXBlLnRyaW0gPyBmdW5jdGlvbiAoYSkgeyByZXR1cm4gYS50cmltKCk7IH0gOiBmdW5jdGlvbiAoYSkgeyByZXR1cm4gL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhhKVsxXTsgfTtcclxuZnVuY3Rpb24gdihhLCBiKSB7IHJldHVybiAtMSAhPSBhLmluZGV4T2YoYik7IH1cclxuZnVuY3Rpb24geGEoYSwgYikgeyByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDA7IH1cclxudmFyIHc7XHJcbmE6IHtcclxuICAgIHZhciB5YSA9IGsubmF2aWdhdG9yO1xyXG4gICAgaWYgKHlhKSB7XHJcbiAgICAgICAgdmFyIHphID0geWEudXNlckFnZW50O1xyXG4gICAgICAgIGlmICh6YSkge1xyXG4gICAgICAgICAgICB3ID0gemE7XHJcbiAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdyA9IFwiXCI7XHJcbn1cclxuZnVuY3Rpb24gQWEoYSwgYiwgYykgeyBmb3IgKHZhciBkIGluIGEpXHJcbiAgICBiLmNhbGwoYywgYVtkXSwgZCwgYSk7IH1cclxuZnVuY3Rpb24gQmEoYSkgeyB2YXIgYiA9IHt9OyBmb3IgKHZhciBjIGluIGEpXHJcbiAgICBiW2NdID0gYVtjXTsgcmV0dXJuIGI7IH1cclxudmFyIENhID0gXCJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2ZcIi5zcGxpdChcIiBcIik7XHJcbmZ1bmN0aW9uIERhKGEsIGIpIHsgdmFyIGMsIGQ7IGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XHJcbiAgICBkID0gYXJndW1lbnRzW2VdO1xyXG4gICAgZm9yIChjIGluIGQpXHJcbiAgICAgICAgYVtjXSA9IGRbY107XHJcbiAgICBmb3IgKHZhciBmID0gMDsgZiA8IENhLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIGMgPSBDYVtmXSwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsIGMpICYmIChhW2NdID0gZFtjXSk7XHJcbn0gfVxyXG5mdW5jdGlvbiBFYShhKSB7IEVhW1wiIFwiXShhKTsgcmV0dXJuIGE7IH1cclxuRWFbXCIgXCJdID0gYWE7XHJcbmZ1bmN0aW9uIEZhKGEsIGIpIHsgdmFyIGMgPSBHYTsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLCBhKSA/IGNbYV0gOiBjW2FdID0gYihhKTsgfVxyXG52YXIgSGEgPSB2KHcsIFwiT3BlcmFcIiksIHggPSB2KHcsIFwiVHJpZGVudFwiKSB8fCB2KHcsIFwiTVNJRVwiKSwgSWEgPSB2KHcsIFwiRWRnZVwiKSwgSmEgPSBJYSB8fCB4LCBLYSA9IHYodywgXCJHZWNrb1wiKSAmJiAhKHYody50b0xvd2VyQ2FzZSgpLCBcIndlYmtpdFwiKSAmJiAhdih3LCBcIkVkZ2VcIikpICYmICEodih3LCBcIlRyaWRlbnRcIikgfHwgdih3LCBcIk1TSUVcIikpICYmICF2KHcsIFwiRWRnZVwiKSwgTGEgPSB2KHcudG9Mb3dlckNhc2UoKSwgXCJ3ZWJraXRcIikgJiYgIXYodywgXCJFZGdlXCIpO1xyXG5mdW5jdGlvbiBNYSgpIHsgdmFyIGEgPSBrLmRvY3VtZW50OyByZXR1cm4gYSA/IGEuZG9jdW1lbnRNb2RlIDogdm9pZCAwOyB9XHJcbnZhciBOYTtcclxuYToge1xyXG4gICAgdmFyIE9hID0gXCJcIiwgUGEgPSBmdW5jdGlvbiAoKSB7IHZhciBhID0gdzsgaWYgKEthKVxyXG4gICAgICAgIHJldHVybiAvcnY6KFteXFwpO10rKShcXCl8OykvLmV4ZWMoYSk7IGlmIChJYSlcclxuICAgICAgICByZXR1cm4gL0VkZ2VcXC8oW1xcZFxcLl0rKS8uZXhlYyhhKTsgaWYgKHgpXHJcbiAgICAgICAgcmV0dXJuIC9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTsgaWYgKExhKVxyXG4gICAgICAgIHJldHVybiAvV2ViS2l0XFwvKFxcUyspLy5leGVjKGEpOyBpZiAoSGEpXHJcbiAgICAgICAgcmV0dXJuIC8oPzpWZXJzaW9uKVsgXFwvXT8oXFxTKykvLmV4ZWMoYSk7IH0oKTtcclxuICAgIFBhICYmIChPYSA9IFBhID8gUGFbMV0gOiBcIlwiKTtcclxuICAgIGlmICh4KSB7XHJcbiAgICAgICAgdmFyIFFhID0gTWEoKTtcclxuICAgICAgICBpZiAobnVsbCAhPSBRYSAmJiBRYSA+IHBhcnNlRmxvYXQoT2EpKSB7XHJcbiAgICAgICAgICAgIE5hID0gU3RyaW5nKFFhKTtcclxuICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBOYSA9IE9hO1xyXG59XHJcbnZhciBHYSA9IHt9O1xyXG5mdW5jdGlvbiBSYShhKSB7IHJldHVybiBGYShhLCBmdW5jdGlvbiAoKSB7IHtcclxuICAgIHZhciBiID0gMDtcclxuICAgIHZhciBlID0gdWEoU3RyaW5nKE5hKSkuc3BsaXQoXCIuXCIpLCBmID0gdWEoU3RyaW5nKGEpKS5zcGxpdChcIi5cIiksIGggPSBNYXRoLm1heChlLmxlbmd0aCwgZi5sZW5ndGgpO1xyXG4gICAgZm9yICh2YXIgbSA9IDA7IDAgPT0gYiAmJiBtIDwgaDsgbSsrKSB7XHJcbiAgICAgICAgdmFyIGMgPSBlW21dIHx8IFwiXCIsIGQgPSBmW21dIHx8IFwiXCI7XHJcbiAgICAgICAgZG8ge1xyXG4gICAgICAgICAgICBjID0gLyhcXGQqKShcXEQqKSguKikvLmV4ZWMoYykgfHwgW1wiXCIsIFwiXCIsIFwiXCIsIFwiXCJdO1xyXG4gICAgICAgICAgICBkID0gLyhcXGQqKShcXEQqKSguKikvLmV4ZWMoZCkgfHwgW1wiXCIsIFwiXCIsIFwiXCIsIFwiXCJdO1xyXG4gICAgICAgICAgICBpZiAoMCA9PSBjWzBdLmxlbmd0aCAmJiAwID09IGRbMF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGIgPSB4YSgwID09IGNbMV0ubGVuZ3RoID8gMCA6IHBhcnNlSW50KGNbMV0sIDEwKSwgMCA9PSBkWzFdLmxlbmd0aCA/IDAgOiBwYXJzZUludChkWzFdLCAxMCkpIHx8IHhhKDAgPT0gY1syXS5sZW5ndGgsIDAgPT0gZFsyXS5sZW5ndGgpIHx8IHhhKGNbMl0sIGRbMl0pO1xyXG4gICAgICAgICAgICBjID0gY1szXTtcclxuICAgICAgICAgICAgZCA9IGRbM107XHJcbiAgICAgICAgfSB3aGlsZSAoMCA9PSBiKTtcclxuICAgIH1cclxufSByZXR1cm4gMCA8PSBiOyB9KTsgfVxyXG52YXIgU2E7XHJcbmlmIChrLmRvY3VtZW50ICYmIHgpIHtcclxuICAgIHZhciBUYSA9IE1hKCk7XHJcbiAgICBTYSA9IFRhID8gVGEgOiBwYXJzZUludChOYSwgMTApIHx8IHZvaWQgMDtcclxufVxyXG5lbHNlXHJcbiAgICBTYSA9IHZvaWQgMDtcclxudmFyIFVhID0gU2E7XHJcbnZhciBWYSA9ICF4IHx8IDkgPD0gTnVtYmVyKFVhKSwgV2EgPSB4ICYmICFSYShcIjlcIiksIFhhID0gZnVuY3Rpb24gKCkgeyBpZiAoIWsuYWRkRXZlbnRMaXN0ZW5lciB8fCAhT2JqZWN0LmRlZmluZVByb3BlcnR5KVxyXG4gICAgcmV0dXJuICExOyB2YXIgYSA9ICExLCBiID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCBcInBhc3NpdmVcIiwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgYSA9ICEwOyB9IH0pOyB0cnkge1xyXG4gICAgay5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLCBhYSwgYiksIGsucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIiwgYWEsIGIpO1xyXG59XHJcbmNhdGNoIChjKSB7IH0gcmV0dXJuIGE7IH0oKTtcclxuZnVuY3Rpb24geShhLCBiKSB7IHRoaXMudHlwZSA9IGE7IHRoaXMuYSA9IHRoaXMudGFyZ2V0ID0gYjsgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITE7IH1cclxueS5wcm90b3R5cGUuYiA9IGZ1bmN0aW9uICgpIHsgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITA7IH07XHJcbmZ1bmN0aW9uIEEoYSwgYikge1xyXG4gICAgeS5jYWxsKHRoaXMsIGEgPyBhLnR5cGUgOiBcIlwiKTtcclxuICAgIHRoaXMucmVsYXRlZFRhcmdldCA9IHRoaXMuYSA9IHRoaXMudGFyZ2V0ID0gbnVsbDtcclxuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5zY3JlZW5ZID0gdGhpcy5zY3JlZW5YID0gdGhpcy5jbGllbnRZID0gdGhpcy5jbGllbnRYID0gMDtcclxuICAgIHRoaXMua2V5ID0gXCJcIjtcclxuICAgIHRoaXMubWV0YUtleSA9IHRoaXMuc2hpZnRLZXkgPSB0aGlzLmFsdEtleSA9IHRoaXMuY3RybEtleSA9ICExO1xyXG4gICAgdGhpcy5wb2ludGVySWQgPSAwO1xyXG4gICAgdGhpcy5wb2ludGVyVHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLmMgPSBudWxsO1xyXG4gICAgaWYgKGEpIHtcclxuICAgICAgICB2YXIgYyA9IHRoaXMudHlwZSA9IGEudHlwZSwgZCA9IGEuY2hhbmdlZFRvdWNoZXMgJiYgYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPyBhLmNoYW5nZWRUb3VjaGVzWzBdIDogbnVsbDtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IGEudGFyZ2V0IHx8IGEuc3JjRWxlbWVudDtcclxuICAgICAgICB0aGlzLmEgPSBiO1xyXG4gICAgICAgIGlmIChiID0gYS5yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGlmIChLYSkge1xyXG4gICAgICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVhKGIubm9kZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9ICEwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZikgeyB9XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9ICExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZSB8fCAoYiA9IG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgXCJtb3VzZW92ZXJcIiA9PVxyXG4gICAgICAgICAgICAgICAgYyA/IGIgPSBhLmZyb21FbGVtZW50IDogXCJtb3VzZW91dFwiID09IGMgJiYgKGIgPSBhLnRvRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5yZWxhdGVkVGFyZ2V0ID0gYjtcclxuICAgICAgICBkID8gKHRoaXMuY2xpZW50WCA9IHZvaWQgMCAhPT0gZC5jbGllbnRYID8gZC5jbGllbnRYIDogZC5wYWdlWCwgdGhpcy5jbGllbnRZID0gdm9pZCAwICE9PSBkLmNsaWVudFkgPyBkLmNsaWVudFkgOiBkLnBhZ2VZLCB0aGlzLnNjcmVlblggPSBkLnNjcmVlblggfHwgMCwgdGhpcy5zY3JlZW5ZID0gZC5zY3JlZW5ZIHx8IDApIDogKHRoaXMuY2xpZW50WCA9IHZvaWQgMCAhPT0gYS5jbGllbnRYID8gYS5jbGllbnRYIDogYS5wYWdlWCwgdGhpcy5jbGllbnRZID0gdm9pZCAwICE9PSBhLmNsaWVudFkgPyBhLmNsaWVudFkgOiBhLnBhZ2VZLCB0aGlzLnNjcmVlblggPSBhLnNjcmVlblggfHwgMCwgdGhpcy5zY3JlZW5ZID0gYS5zY3JlZW5ZIHx8IDApO1xyXG4gICAgICAgIHRoaXMuYnV0dG9uID0gYS5idXR0b247XHJcbiAgICAgICAgdGhpcy5rZXkgPSBhLmtleSB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3RybEtleSA9IGEuY3RybEtleTtcclxuICAgICAgICB0aGlzLmFsdEtleSA9IGEuYWx0S2V5O1xyXG4gICAgICAgIHRoaXMuc2hpZnRLZXkgPSBhLnNoaWZ0S2V5O1xyXG4gICAgICAgIHRoaXMubWV0YUtleSA9XHJcbiAgICAgICAgICAgIGEubWV0YUtleTtcclxuICAgICAgICB0aGlzLnBvaW50ZXJJZCA9IGEucG9pbnRlcklkIHx8IDA7XHJcbiAgICAgICAgdGhpcy5wb2ludGVyVHlwZSA9IFwic3RyaW5nXCIgPT09IHR5cGVvZiBhLnBvaW50ZXJUeXBlID8gYS5wb2ludGVyVHlwZSA6IFlhW2EucG9pbnRlclR5cGVdIHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5jID0gYTtcclxuICAgICAgICBhLmRlZmF1bHRQcmV2ZW50ZWQgJiYgdGhpcy5iKCk7XHJcbiAgICB9XHJcbn1cclxucihBLCB5KTtcclxudmFyIFlhID0geyAyOiBcInRvdWNoXCIsIDM6IFwicGVuXCIsIDQ6IFwibW91c2VcIiB9O1xyXG5BLnByb3RvdHlwZS5iID0gZnVuY3Rpb24gKCkgeyBBLlMuYi5jYWxsKHRoaXMpOyB2YXIgYSA9IHRoaXMuYzsgaWYgKGEucHJldmVudERlZmF1bHQpXHJcbiAgICBhLnByZXZlbnREZWZhdWx0KCk7XHJcbmVsc2UgaWYgKGEucmV0dXJuVmFsdWUgPSAhMSwgV2EpXHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChhLmN0cmxLZXkgfHwgMTEyIDw9IGEua2V5Q29kZSAmJiAxMjMgPj0gYS5rZXlDb2RlKVxyXG4gICAgICAgICAgICBhLmtleUNvZGUgPSAtMTtcclxuICAgIH1cclxuICAgIGNhdGNoIChiKSB7IH0gfTtcclxudmFyIEMgPSBcImNsb3N1cmVfbGlzdGVuYWJsZV9cIiArICgxRTYgKiBNYXRoLnJhbmRvbSgpIHwgMCksIFphID0gMDtcclxuZnVuY3Rpb24gJGEoYSwgYiwgYywgZCwgZSkgeyB0aGlzLmxpc3RlbmVyID0gYTsgdGhpcy5wcm94eSA9IG51bGw7IHRoaXMuc3JjID0gYjsgdGhpcy50eXBlID0gYzsgdGhpcy5jYXB0dXJlID0gISFkOyB0aGlzLmNhID0gZTsgdGhpcy5rZXkgPSArK1phOyB0aGlzLlkgPSB0aGlzLlogPSAhMTsgfVxyXG5mdW5jdGlvbiBhYihhKSB7IGEuWSA9ICEwOyBhLmxpc3RlbmVyID0gbnVsbDsgYS5wcm94eSA9IG51bGw7IGEuc3JjID0gbnVsbDsgYS5jYSA9IG51bGw7IH1cclxuZnVuY3Rpb24gYmIoYSkgeyB0aGlzLnNyYyA9IGE7IHRoaXMuYSA9IHt9OyB0aGlzLmIgPSAwOyB9XHJcbmJiLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgZSkgeyB2YXIgZiA9IGEudG9TdHJpbmcoKTsgYSA9IHRoaXMuYVtmXTsgYSB8fCAoYSA9IHRoaXMuYVtmXSA9IFtdLCB0aGlzLmIrKyk7IHZhciBoID0gY2IoYSwgYiwgZCwgZSk7IC0xIDwgaCA/IChiID0gYVtoXSwgYyB8fCAoYi5aID0gITEpKSA6IChiID0gbmV3ICRhKGIsIHRoaXMuc3JjLCBmLCAhIWQsIGUpLCBiLlogPSBjLCBhLnB1c2goYikpOyByZXR1cm4gYjsgfTtcclxuZnVuY3Rpb24gZGIoYSwgYikgeyB2YXIgYyA9IGIudHlwZTsgaWYgKGMgaW4gYS5hKSB7XHJcbiAgICB2YXIgZCA9IGEuYVtjXSwgZSA9IG5hKGQsIGIpLCBmO1xyXG4gICAgKGYgPSAwIDw9IGUpICYmIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChkLCBlLCAxKTtcclxuICAgIGYgJiYgKGFiKGIpLCAwID09IGEuYVtjXS5sZW5ndGggJiYgKGRlbGV0ZSBhLmFbY10sIGEuYi0tKSk7XHJcbn0gfVxyXG5mdW5jdGlvbiBjYihhLCBiLCBjLCBkKSB7IGZvciAodmFyIGUgPSAwOyBlIDwgYS5sZW5ndGg7ICsrZSkge1xyXG4gICAgdmFyIGYgPSBhW2VdO1xyXG4gICAgaWYgKCFmLlkgJiYgZi5saXN0ZW5lciA9PSBiICYmIGYuY2FwdHVyZSA9PSAhIWMgJiYgZi5jYSA9PSBkKVxyXG4gICAgICAgIHJldHVybiBlO1xyXG59IHJldHVybiAtMTsgfVxyXG52YXIgZWIgPSBcImNsb3N1cmVfbG1fXCIgKyAoMUU2ICogTWF0aC5yYW5kb20oKSB8IDApLCBmYiA9IHt9O1xyXG5mdW5jdGlvbiBoYihhLCBiLCBjLCBkLCBlKSB7IGlmIChkICYmIGQub25jZSlcclxuICAgIHJldHVybiBpYihhLCBiLCBjLCBkLCBlKTsgaWYgKEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgIGZvciAodmFyIGYgPSAwOyBmIDwgYi5sZW5ndGg7IGYrKylcclxuICAgICAgICBoYihhLCBiW2ZdLCBjLCBkLCBlKTtcclxuICAgIHJldHVybiBudWxsO1xyXG59IGMgPSBqYihjKTsgcmV0dXJuIGEgJiYgYVtDXSA/IGEudmEoYiwgYywgbihkKSA/ICEhZC5jYXB0dXJlIDogISFkLCBlKSA6IGtiKGEsIGIsIGMsICExLCBkLCBlKTsgfVxyXG5mdW5jdGlvbiBrYihhLCBiLCBjLCBkLCBlLCBmKSB7XHJcbiAgICBpZiAoIWIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGV2ZW50IHR5cGVcIik7XHJcbiAgICB2YXIgaCA9IG4oZSkgPyAhIWUuY2FwdHVyZSA6ICEhZTtcclxuICAgIGlmIChoICYmICFWYSlcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIHZhciBtID0gbGIoYSk7XHJcbiAgICBtIHx8IChhW2ViXSA9IG0gPSBuZXcgYmIoYSkpO1xyXG4gICAgYyA9IG0uYWRkKGIsIGMsIGQsIGgsIGYpO1xyXG4gICAgaWYgKGMucHJveHkpXHJcbiAgICAgICAgcmV0dXJuIGM7XHJcbiAgICBkID0gbWIoKTtcclxuICAgIGMucHJveHkgPSBkO1xyXG4gICAgZC5zcmMgPSBhO1xyXG4gICAgZC5saXN0ZW5lciA9IGM7XHJcbiAgICBpZiAoYS5hZGRFdmVudExpc3RlbmVyKVxyXG4gICAgICAgIFhhIHx8IChlID0gaCksIHZvaWQgMCA9PT0gZSAmJiAoZSA9ICExKSwgYS5hZGRFdmVudExpc3RlbmVyKGIudG9TdHJpbmcoKSwgZCwgZSk7XHJcbiAgICBlbHNlIGlmIChhLmF0dGFjaEV2ZW50KVxyXG4gICAgICAgIGEuYXR0YWNoRXZlbnQobmIoYi50b1N0cmluZygpKSwgZCk7XHJcbiAgICBlbHNlIGlmIChhLmFkZExpc3RlbmVyICYmIGEucmVtb3ZlTGlzdGVuZXIpXHJcbiAgICAgICAgYS5hZGRMaXN0ZW5lcihkKTtcclxuICAgIGVsc2VcclxuICAgICAgICB0aHJvdyBFcnJvcihcImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS5cIik7XHJcbiAgICByZXR1cm4gYztcclxufVxyXG5mdW5jdGlvbiBtYigpIHsgdmFyIGEgPSBvYiwgYiA9IFZhID8gZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGEuY2FsbChiLnNyYywgYi5saXN0ZW5lciwgYyk7IH0gOiBmdW5jdGlvbiAoYykgeyBjID0gYS5jYWxsKGIuc3JjLCBiLmxpc3RlbmVyLCBjKTsgaWYgKCFjKVxyXG4gICAgcmV0dXJuIGM7IH07IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIGliKGEsIGIsIGMsIGQsIGUpIHsgaWYgKEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgIGZvciAodmFyIGYgPSAwOyBmIDwgYi5sZW5ndGg7IGYrKylcclxuICAgICAgICBpYihhLCBiW2ZdLCBjLCBkLCBlKTtcclxuICAgIHJldHVybiBudWxsO1xyXG59IGMgPSBqYihjKTsgcmV0dXJuIGEgJiYgYVtDXSA/IGEud2EoYiwgYywgbihkKSA/ICEhZC5jYXB0dXJlIDogISFkLCBlKSA6IGtiKGEsIGIsIGMsICEwLCBkLCBlKTsgfVxyXG5mdW5jdGlvbiBwYihhLCBiLCBjLCBkLCBlKSB7IGlmIChBcnJheS5pc0FycmF5KGIpKVxyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBiLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIHBiKGEsIGJbZl0sIGMsIGQsIGUpO1xyXG5lbHNlXHJcbiAgICAoZCA9IG4oZCkgPyAhIWQuY2FwdHVyZSA6ICEhZCwgYyA9IGpiKGMpLCBhICYmIGFbQ10pID8gKGEgPSBhLmMsIGIgPSBTdHJpbmcoYikudG9TdHJpbmcoKSwgYiBpbiBhLmEgJiYgKGYgPSBhLmFbYl0sIGMgPSBjYihmLCBjLCBkLCBlKSwgLTEgPCBjICYmIChhYihmW2NdKSwgQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGYsIGMsIDEpLCAwID09IGYubGVuZ3RoICYmIChkZWxldGUgYS5hW2JdLCBhLmItLSkpKSkgOiBhICYmIChhID0gbGIoYSkpICYmIChiID0gYS5hW2IudG9TdHJpbmcoKV0sIGEgPSAtMSwgYiAmJiAoYSA9IGNiKGIsIGMsIGQsIGUpKSwgKGMgPSAtMSA8IGEgPyBiW2FdIDogbnVsbCkgJiYgcmIoYykpOyB9XHJcbmZ1bmN0aW9uIHJiKGEpIHsgaWYgKFwibnVtYmVyXCIgIT09IHR5cGVvZiBhICYmIGEgJiYgIWEuWSkge1xyXG4gICAgdmFyIGIgPSBhLnNyYztcclxuICAgIGlmIChiICYmIGJbQ10pXHJcbiAgICAgICAgZGIoYi5jLCBhKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBjID0gYS50eXBlLCBkID0gYS5wcm94eTtcclxuICAgICAgICBiLnJlbW92ZUV2ZW50TGlzdGVuZXIgPyBiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYywgZCwgYS5jYXB0dXJlKSA6IGIuZGV0YWNoRXZlbnQgPyBiLmRldGFjaEV2ZW50KG5iKGMpLCBkKSA6IGIuYWRkTGlzdGVuZXIgJiYgYi5yZW1vdmVMaXN0ZW5lciAmJiBiLnJlbW92ZUxpc3RlbmVyKGQpO1xyXG4gICAgICAgIChjID0gbGIoYikpID8gKGRiKGMsIGEpLCAwID09IGMuYiAmJiAoYy5zcmMgPSBudWxsLCBiW2ViXSA9IG51bGwpKSA6IGFiKGEpO1xyXG4gICAgfVxyXG59IH1cclxuZnVuY3Rpb24gbmIoYSkgeyByZXR1cm4gYSBpbiBmYiA/IGZiW2FdIDogZmJbYV0gPSBcIm9uXCIgKyBhOyB9XHJcbmZ1bmN0aW9uIHNiKGEsIGIpIHsgdmFyIGMgPSBhLmxpc3RlbmVyLCBkID0gYS5jYSB8fCBhLnNyYzsgYS5aICYmIHJiKGEpOyByZXR1cm4gYy5jYWxsKGQsIGIpOyB9XHJcbmZ1bmN0aW9uIG9iKGEsIGIpIHsgaWYgKGEuWSlcclxuICAgIHJldHVybiAhMDsgaWYgKCFWYSkge1xyXG4gICAgaWYgKCFiKVxyXG4gICAgICAgIGE6IHtcclxuICAgICAgICAgICAgYiA9IFtcIndpbmRvd1wiLCBcImV2ZW50XCJdO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBjID0gaywgZCA9IDA7IGQgPCBiLmxlbmd0aDsgZCsrKVxyXG4gICAgICAgICAgICAgICAgaWYgKGMgPSBjW2JbZF1dLCBudWxsID09IGMpIHtcclxuICAgICAgICAgICAgICAgICAgICBiID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBiID0gYztcclxuICAgICAgICB9XHJcbiAgICBiID0gbmV3IEEoYiwgdGhpcyk7XHJcbiAgICByZXR1cm4gc2IoYSwgYik7XHJcbn0gcmV0dXJuIHNiKGEsIG5ldyBBKGIsIHRoaXMpKTsgfVxyXG5mdW5jdGlvbiBsYihhKSB7IGEgPSBhW2ViXTsgcmV0dXJuIGEgaW5zdGFuY2VvZiBiYiA/IGEgOiBudWxsOyB9XHJcbnZhciB0YiA9IFwiX19jbG9zdXJlX2V2ZW50c19mbl9cIiArICgxRTkgKiBNYXRoLnJhbmRvbSgpID4+PiAwKTtcclxuZnVuY3Rpb24gamIoYSkgeyBpZiAoXCJmdW5jdGlvblwiID09IGJhKGEpKVxyXG4gICAgcmV0dXJuIGE7IGFbdGJdIHx8IChhW3RiXSA9IGZ1bmN0aW9uIChiKSB7IHJldHVybiBhLmhhbmRsZUV2ZW50KGIpOyB9KTsgcmV0dXJuIGFbdGJdOyB9XHJcbmZ1bmN0aW9uIEQoKSB7IHUuY2FsbCh0aGlzKTsgdGhpcy5jID0gbmV3IGJiKHRoaXMpOyB0aGlzLkogPSB0aGlzOyB0aGlzLkMgPSBudWxsOyB9XHJcbnIoRCwgdSk7XHJcbkQucHJvdG90eXBlW0NdID0gITA7XHJcbmcgPSBELnByb3RvdHlwZTtcclxuZy5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgaGIodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHBiKHRoaXMsIGEsIGIsIGMsIGQpOyB9O1xyXG5nLmRpc3BhdGNoRXZlbnQgPSBmdW5jdGlvbiAoYSkgeyB2YXIgYiwgYyA9IHRoaXMuQzsgaWYgKGMpXHJcbiAgICBmb3IgKGIgPSBbXTsgYzsgYyA9IGMuQylcclxuICAgICAgICBiLnB1c2goYyk7IGMgPSB0aGlzLko7IHZhciBkID0gYS50eXBlIHx8IGE7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSlcclxuICAgIGEgPSBuZXcgeShhLCBjKTtcclxuZWxzZSBpZiAoYSBpbnN0YW5jZW9mIHkpXHJcbiAgICBhLnRhcmdldCA9IGEudGFyZ2V0IHx8IGM7XHJcbmVsc2Uge1xyXG4gICAgdmFyIGUgPSBhO1xyXG4gICAgYSA9IG5ldyB5KGQsIGMpO1xyXG4gICAgRGEoYSwgZSk7XHJcbn0gZSA9ICEwOyBpZiAoYilcclxuICAgIGZvciAodmFyIGYgPSBiLmxlbmd0aCAtIDE7IDAgPD0gZjsgZi0tKSB7XHJcbiAgICAgICAgdmFyIGggPSBhLmEgPSBiW2ZdO1xyXG4gICAgICAgIGUgPSB1YihoLCBkLCAhMCwgYSkgJiYgZTtcclxuICAgIH0gaCA9IGEuYSA9IGM7IGUgPSB1YihoLCBkLCAhMCwgYSkgJiYgZTsgZSA9IHViKGgsIGQsICExLCBhKSAmJiBlOyBpZiAoYilcclxuICAgIGZvciAoZiA9IDA7IGYgPCBiLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIGggPSBhLmEgPSBiW2ZdLCBlID0gdWIoaCwgZCwgITEsIGEpICYmIGU7IHJldHVybiBlOyB9O1xyXG5nLkcgPSBmdW5jdGlvbiAoKSB7IEQuUy5HLmNhbGwodGhpcyk7IGlmICh0aGlzLmMpIHtcclxuICAgIHZhciBhID0gdGhpcy5jLCBjO1xyXG4gICAgZm9yIChjIGluIGEuYSkge1xyXG4gICAgICAgIGZvciAodmFyIGQgPSBhLmFbY10sIGUgPSAwOyBlIDwgZC5sZW5ndGg7IGUrKylcclxuICAgICAgICAgICAgYWIoZFtlXSk7XHJcbiAgICAgICAgZGVsZXRlIGEuYVtjXTtcclxuICAgICAgICBhLmItLTtcclxuICAgIH1cclxufSB0aGlzLkMgPSBudWxsOyB9O1xyXG5nLnZhID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIHRoaXMuYy5hZGQoU3RyaW5nKGEpLCBiLCAhMSwgYywgZCk7IH07XHJcbmcud2EgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gdGhpcy5jLmFkZChTdHJpbmcoYSksIGIsICEwLCBjLCBkKTsgfTtcclxuZnVuY3Rpb24gdWIoYSwgYiwgYywgZCkgeyBiID0gYS5jLmFbU3RyaW5nKGIpXTsgaWYgKCFiKVxyXG4gICAgcmV0dXJuICEwOyBiID0gYi5jb25jYXQoKTsgZm9yICh2YXIgZSA9ICEwLCBmID0gMDsgZiA8IGIubGVuZ3RoOyArK2YpIHtcclxuICAgIHZhciBoID0gYltmXTtcclxuICAgIGlmIChoICYmICFoLlkgJiYgaC5jYXB0dXJlID09IGMpIHtcclxuICAgICAgICB2YXIgbSA9IGgubGlzdGVuZXIsIGwgPSBoLmNhIHx8IGguc3JjO1xyXG4gICAgICAgIGguWiAmJiBkYihhLmMsIGgpO1xyXG4gICAgICAgIGUgPSAhMSAhPT0gbS5jYWxsKGwsIGQpICYmIGU7XHJcbiAgICB9XHJcbn0gcmV0dXJuIGUgJiYgIWQuZGVmYXVsdFByZXZlbnRlZDsgfVxyXG52YXIgdmIgPSBrLkpTT04uc3RyaW5naWZ5O1xyXG5mdW5jdGlvbiB3YigpIHsgdGhpcy5iID0gdGhpcy5hID0gbnVsbDsgfVxyXG52YXIgeWIgPSBuZXcgLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gY2xhc3NfMShhLCBiLCBjKSB7XHJcbiAgICAgICAgdGhpcy5mID0gYztcclxuICAgICAgICB0aGlzLmMgPSBhO1xyXG4gICAgICAgIHRoaXMuZyA9IGI7XHJcbiAgICAgICAgdGhpcy5iID0gMDtcclxuICAgICAgICB0aGlzLmEgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKCkgeyB2YXIgYTsgMCA8IHRoaXMuYiA/ICh0aGlzLmItLSwgYSA9IHRoaXMuYSwgdGhpcy5hID0gYS5uZXh0LCBhLm5leHQgPSBudWxsKSA6IGEgPSB0aGlzLmMoKTsgcmV0dXJuIGE7IH07XHJcbiAgICByZXR1cm4gY2xhc3NfMTtcclxufSgpKShmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgeGI7IH0sIGZ1bmN0aW9uIChhKSB7IGEucmVzZXQoKTsgfSwgMTAwKTtcclxud2IucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7IHZhciBjID0geWIuZ2V0KCk7IGMuc2V0KGEsIGIpOyB0aGlzLmIgPyB0aGlzLmIubmV4dCA9IGMgOiB0aGlzLmEgPSBjOyB0aGlzLmIgPSBjOyB9O1xyXG5mdW5jdGlvbiB6YigpIHsgdmFyIGEgPSBBYiwgYiA9IG51bGw7IGEuYSAmJiAoYiA9IGEuYSwgYS5hID0gYS5hLm5leHQsIGEuYSB8fCAoYS5iID0gbnVsbCksIGIubmV4dCA9IG51bGwpOyByZXR1cm4gYjsgfVxyXG5mdW5jdGlvbiB4YigpIHsgdGhpcy5uZXh0ID0gdGhpcy5iID0gdGhpcy5hID0gbnVsbDsgfVxyXG54Yi5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGEsIGIpIHsgdGhpcy5hID0gYTsgdGhpcy5iID0gYjsgdGhpcy5uZXh0ID0gbnVsbDsgfTtcclxueGIucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkgeyB0aGlzLm5leHQgPSB0aGlzLmIgPSB0aGlzLmEgPSBudWxsOyB9O1xyXG5mdW5jdGlvbiBCYihhKSB7IGsuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHRocm93IGE7IH0sIDApOyB9XHJcbmZ1bmN0aW9uIENiKGEsIGIpIHsgRGIgfHwgRWIoKTsgRmIgfHwgKERiKCksIEZiID0gITApOyBBYi5hZGQoYSwgYik7IH1cclxudmFyIERiO1xyXG5mdW5jdGlvbiBFYigpIHsgdmFyIGEgPSBrLlByb21pc2UucmVzb2x2ZSh2b2lkIDApOyBEYiA9IGZ1bmN0aW9uICgpIHsgYS50aGVuKEdiKTsgfTsgfVxyXG52YXIgRmIgPSAhMSwgQWIgPSBuZXcgd2I7XHJcbmZ1bmN0aW9uIEdiKCkgeyBmb3IgKHZhciBhOyBhID0gemIoKTspIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgYS5hLmNhbGwoYS5iKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChjKSB7XHJcbiAgICAgICAgQmIoYyk7XHJcbiAgICB9XHJcbiAgICB2YXIgYiA9IHliO1xyXG4gICAgYi5nKGEpO1xyXG4gICAgYi5iIDwgYi5mICYmIChiLmIrKywgYS5uZXh0ID0gYi5hLCBiLmEgPSBhKTtcclxufSBGYiA9ICExOyB9XHJcbmZ1bmN0aW9uIEhiKGEsIGIpIHsgRC5jYWxsKHRoaXMpOyB0aGlzLmIgPSBhIHx8IDE7IHRoaXMuYSA9IGIgfHwgazsgdGhpcy5mID0gcCh0aGlzLllhLCB0aGlzKTsgdGhpcy5nID0gcSgpOyB9XHJcbnIoSGIsIEQpO1xyXG5nID0gSGIucHJvdG90eXBlO1xyXG5nLmFhID0gITE7XHJcbmcuTSA9IG51bGw7XHJcbmcuWWEgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmFhKSB7XHJcbiAgICB2YXIgYSA9IHEoKSAtIHRoaXMuZztcclxuICAgIDAgPCBhICYmIGEgPCAuOCAqIHRoaXMuYiA/IHRoaXMuTSA9IHRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZiwgdGhpcy5iIC0gYSkgOiAodGhpcy5NICYmICh0aGlzLmEuY2xlYXJUaW1lb3V0KHRoaXMuTSksIHRoaXMuTSA9IG51bGwpLCB0aGlzLmRpc3BhdGNoRXZlbnQoXCJ0aWNrXCIpLCB0aGlzLmFhICYmIChJYih0aGlzKSwgdGhpcy5zdGFydCgpKSk7XHJcbn0gfTtcclxuZy5zdGFydCA9IGZ1bmN0aW9uICgpIHsgdGhpcy5hYSA9ICEwOyB0aGlzLk0gfHwgKHRoaXMuTSA9IHRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZiwgdGhpcy5iKSwgdGhpcy5nID0gcSgpKTsgfTtcclxuZnVuY3Rpb24gSWIoYSkgeyBhLmFhID0gITE7IGEuTSAmJiAoYS5hLmNsZWFyVGltZW91dChhLk0pLCBhLk0gPSBudWxsKTsgfVxyXG5nLkcgPSBmdW5jdGlvbiAoKSB7IEhiLlMuRy5jYWxsKHRoaXMpOyBJYih0aGlzKTsgZGVsZXRlIHRoaXMuYTsgfTtcclxuZnVuY3Rpb24gSmIoYSwgYiwgYykgeyBpZiAoXCJmdW5jdGlvblwiID09IGJhKGEpKVxyXG4gICAgYyAmJiAoYSA9IHAoYSwgYykpO1xyXG5lbHNlIGlmIChhICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgYS5oYW5kbGVFdmVudClcclxuICAgIGEgPSBwKGEuaGFuZGxlRXZlbnQsIGEpO1xyXG5lbHNlXHJcbiAgICB0aHJvdyBFcnJvcihcIkludmFsaWQgbGlzdGVuZXIgYXJndW1lbnRcIik7IHJldHVybiAyMTQ3NDgzNjQ3IDwgTnVtYmVyKGIpID8gLTEgOiBrLnNldFRpbWVvdXQoYSwgYiB8fCAwKTsgfVxyXG5mdW5jdGlvbiBLYihhKSB7IGEuYSA9IEpiKGZ1bmN0aW9uICgpIHsgYS5hID0gbnVsbDsgYS5jICYmIChhLmMgPSAhMSwgS2IoYSkpOyB9LCBhLmgpOyB2YXIgYiA9IGEuYjsgYS5iID0gbnVsbDsgYS5nLmFwcGx5KG51bGwsIGIpOyB9XHJcbnZhciBMYiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgIF9fZXh0ZW5kcyhMYiwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIExiKGEsIGIsIGMpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmcgPSBudWxsICE9IGMgPyBhLmJpbmQoYykgOiBhO1xyXG4gICAgICAgIF90aGlzLmggPSBiO1xyXG4gICAgICAgIF90aGlzLmIgPSBudWxsO1xyXG4gICAgICAgIF90aGlzLmMgPSAhMTtcclxuICAgICAgICBfdGhpcy5hID0gbnVsbDtcclxuICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICB9XHJcbiAgICBMYi5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uIChhKSB7IHRoaXMuYiA9IGFyZ3VtZW50czsgdGhpcy5hID8gdGhpcy5jID0gITAgOiBLYih0aGlzKTsgfTtcclxuICAgIExiLnByb3RvdHlwZS5HID0gZnVuY3Rpb24gKCkgeyBfc3VwZXIucHJvdG90eXBlLkcuY2FsbCh0aGlzKTsgdGhpcy5hICYmIChrLmNsZWFyVGltZW91dCh0aGlzLmEpLCB0aGlzLmEgPSBudWxsLCB0aGlzLmMgPSAhMSwgdGhpcy5iID0gbnVsbCk7IH07XHJcbiAgICByZXR1cm4gTGI7XHJcbn0odSkpO1xyXG5mdW5jdGlvbiBFKGEpIHsgdS5jYWxsKHRoaXMpOyB0aGlzLmIgPSBhOyB0aGlzLmEgPSB7fTsgfVxyXG5yKEUsIHUpO1xyXG52YXIgTWIgPSBbXTtcclxuZnVuY3Rpb24gTmIoYSwgYiwgYywgZCkgeyBBcnJheS5pc0FycmF5KGMpIHx8IChjICYmIChNYlswXSA9IGMudG9TdHJpbmcoKSksIGMgPSBNYik7IGZvciAodmFyIGUgPSAwOyBlIDwgYy5sZW5ndGg7IGUrKykge1xyXG4gICAgdmFyIGYgPSBoYihiLCBjW2VdLCBkIHx8IGEuaGFuZGxlRXZlbnQsICExLCBhLmIgfHwgYSk7XHJcbiAgICBpZiAoIWYpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBhLmFbZi5rZXldID0gZjtcclxufSB9XHJcbmZ1bmN0aW9uIE9iKGEpIHsgQWEoYS5hLCBmdW5jdGlvbiAoYiwgYykgeyB0aGlzLmEuaGFzT3duUHJvcGVydHkoYykgJiYgcmIoYik7IH0sIGEpOyBhLmEgPSB7fTsgfVxyXG5FLnByb3RvdHlwZS5HID0gZnVuY3Rpb24gKCkgeyBFLlMuRy5jYWxsKHRoaXMpOyBPYih0aGlzKTsgfTtcclxuRS5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBmdW5jdGlvbiAoKSB7IHRocm93IEVycm9yKFwiRXZlbnRIYW5kbGVyLmhhbmRsZUV2ZW50IG5vdCBpbXBsZW1lbnRlZFwiKTsgfTtcclxuZnVuY3Rpb24gUGIoKSB7IHRoaXMuYSA9ICEwOyB9XHJcbmZ1bmN0aW9uIFFiKGEsIGIsIGMsIGQsIGUsIGYpIHsgYS5pbmZvKGZ1bmN0aW9uICgpIHsgaWYgKGEuYSlcclxuICAgIGlmIChmKSB7XHJcbiAgICAgICAgdmFyIGggPSBcIlwiO1xyXG4gICAgICAgIGZvciAodmFyIG0gPSBmLnNwbGl0KFwiJlwiKSwgbCA9IDA7IGwgPCBtLmxlbmd0aDsgbCsrKSB7XHJcbiAgICAgICAgICAgIHZhciB0ID0gbVtsXS5zcGxpdChcIj1cIik7XHJcbiAgICAgICAgICAgIGlmICgxIDwgdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBCID0gdFswXTtcclxuICAgICAgICAgICAgICAgIHQgPSB0WzFdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHogPSBCLnNwbGl0KFwiX1wiKTtcclxuICAgICAgICAgICAgICAgIGggPSAyIDw9IHoubGVuZ3RoICYmIFwidHlwZVwiID09IHpbMV0gPyBoICsgKEIgKyBcIj1cIiArIHQgKyBcIiZcIikgOiBoICsgKEIgKyBcIj1yZWRhY3RlZCZcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgaCA9IG51bGw7XHJcbmVsc2VcclxuICAgIGggPSBmOyByZXR1cm4gXCJYTUxIVFRQIFJFUSAoXCIgKyBkICsgXCIpIFthdHRlbXB0IFwiICsgZSArIFwiXTogXCIgKyBiICsgXCJcXG5cIiArIGMgKyBcIlxcblwiICsgaDsgfSk7IH1cclxuZnVuY3Rpb24gUmIoYSwgYiwgYywgZCwgZSwgZiwgaCkgeyBhLmluZm8oZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJYTUxIVFRQIFJFU1AgKFwiICsgZCArIFwiKSBbIGF0dGVtcHQgXCIgKyBlICsgXCJdOiBcIiArIGIgKyBcIlxcblwiICsgYyArIFwiXFxuXCIgKyBmICsgXCIgXCIgKyBoOyB9KTsgfVxyXG5mdW5jdGlvbiBGKGEsIGIsIGMsIGQpIHsgYS5pbmZvKGZ1bmN0aW9uICgpIHsgcmV0dXJuIFwiWE1MSFRUUCBURVhUIChcIiArIGIgKyBcIik6IFwiICsgU2IoYSwgYykgKyAoZCA/IFwiIFwiICsgZCA6IFwiXCIpOyB9KTsgfVxyXG5mdW5jdGlvbiBUYihhLCBiKSB7IGEuaW5mbyhmdW5jdGlvbiAoKSB7IHJldHVybiBcIlRJTUVPVVQ6IFwiICsgYjsgfSk7IH1cclxuUGIucHJvdG90eXBlLmluZm8gPSBmdW5jdGlvbiAoKSB7IH07XHJcbmZ1bmN0aW9uIFNiKGEsIGIpIHsgaWYgKCFhLmEpXHJcbiAgICByZXR1cm4gYjsgaWYgKCFiKVxyXG4gICAgcmV0dXJuIG51bGw7IHRyeSB7XHJcbiAgICB2YXIgYyA9IEpTT04ucGFyc2UoYik7XHJcbiAgICBpZiAoYylcclxuICAgICAgICBmb3IgKGEgPSAwOyBhIDwgYy5sZW5ndGg7IGErKylcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY1thXSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkID0gY1thXTtcclxuICAgICAgICAgICAgICAgIGlmICghKDIgPiBkLmxlbmd0aCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IGRbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZSkgJiYgISgxID4gZS5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwibm9vcFwiICE9IGYgJiYgXCJzdG9wXCIgIT0gZiAmJiBcImNsb3NlXCIgIT0gZilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGggPSAxOyBoIDwgZS5sZW5ndGg7IGgrKylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlW2hdID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgIHJldHVybiB2YihjKTtcclxufVxyXG5jYXRjaCAobSkge1xyXG4gICAgcmV0dXJuIGI7XHJcbn0gfVxyXG52YXIgVWIgPSBudWxsO1xyXG5mdW5jdGlvbiBWYigpIHsgcmV0dXJuIFViID0gVWIgfHwgbmV3IEQ7IH1cclxuZnVuY3Rpb24gV2IoYSkgeyB5LmNhbGwodGhpcywgXCJzZXJ2ZXJyZWFjaGFiaWxpdHlcIiwgYSk7IH1cclxucihXYiwgeSk7XHJcbmZ1bmN0aW9uIEcoYSkgeyB2YXIgYiA9IFZiKCk7IGIuZGlzcGF0Y2hFdmVudChuZXcgV2IoYiwgYSkpOyB9XHJcbmZ1bmN0aW9uIFhiKGEpIHsgeS5jYWxsKHRoaXMsIFwic3RhdGV2ZW50XCIsIGEpOyB9XHJcbnIoWGIsIHkpO1xyXG5mdW5jdGlvbiBIKGEpIHsgdmFyIGIgPSBWYigpOyBiLmRpc3BhdGNoRXZlbnQobmV3IFhiKGIsIGEpKTsgfVxyXG5mdW5jdGlvbiBZYihhKSB7IHkuY2FsbCh0aGlzLCBcInRpbWluZ2V2ZW50XCIsIGEpOyB9XHJcbnIoWWIsIHkpO1xyXG5mdW5jdGlvbiBJKGEsIGIpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSBiYShhKSlcclxuICAgIHRocm93IEVycm9yKFwiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpOyByZXR1cm4gay5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgYSgpOyB9LCBiKTsgfVxyXG52YXIgWmIgPSB7IE5PX0VSUk9SOiAwLCBaYTogMSwgZ2I6IDIsIGZiOiAzLCBiYjogNCwgZWI6IDUsIGhiOiA2LCBEYTogNywgVElNRU9VVDogOCwga2I6IDkgfTtcclxudmFyICRiID0geyBhYjogXCJjb21wbGV0ZVwiLCBvYjogXCJzdWNjZXNzXCIsIEVhOiBcImVycm9yXCIsIERhOiBcImFib3J0XCIsIG1iOiBcInJlYWR5XCIsIG5iOiBcInJlYWR5c3RhdGVjaGFuZ2VcIiwgVElNRU9VVDogXCJ0aW1lb3V0XCIsIGliOiBcImluY3JlbWVudGFsZGF0YVwiLCBsYjogXCJwcm9ncmVzc1wiLCBjYjogXCJkb3dubG9hZHByb2dyZXNzXCIsIHBiOiBcInVwbG9hZHByb2dyZXNzXCIgfTtcclxuZnVuY3Rpb24gYWMoKSB7IH1cclxuYWMucHJvdG90eXBlLmEgPSBudWxsO1xyXG5mdW5jdGlvbiBiYyhhKSB7IHZhciBiOyAoYiA9IGEuYSkgfHwgKGIgPSBhLmEgPSB7fSk7IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIGNjKCkgeyB9XHJcbnZhciBKID0geyBPUEVOOiBcImFcIiwgJGE6IFwiYlwiLCBFYTogXCJjXCIsIGpiOiBcImRcIiB9O1xyXG5mdW5jdGlvbiBkYygpIHsgeS5jYWxsKHRoaXMsIFwiZFwiKTsgfVxyXG5yKGRjLCB5KTtcclxuZnVuY3Rpb24gZWMoKSB7IHkuY2FsbCh0aGlzLCBcImNcIik7IH1cclxucihlYywgeSk7XHJcbnZhciBmYztcclxuZnVuY3Rpb24gZ2MoKSB7IH1cclxucihnYywgYWMpO1xyXG5mYyA9IG5ldyBnYztcclxuZnVuY3Rpb24gSyhhLCBiLCBjLCBkKSB7IHRoaXMuZyA9IGE7IHRoaXMuYyA9IGI7IHRoaXMuZiA9IGM7IHRoaXMuVCA9IGQgfHwgMTsgdGhpcy5KID0gbmV3IEUodGhpcyk7IHRoaXMuUCA9IGhjOyBhID0gSmEgPyAxMjUgOiB2b2lkIDA7IHRoaXMuUiA9IG5ldyBIYihhKTsgdGhpcy5CID0gbnVsbDsgdGhpcy5iID0gITE7IHRoaXMuaiA9IHRoaXMubCA9IHRoaXMuaSA9IHRoaXMuSCA9IHRoaXMudSA9IHRoaXMuVSA9IHRoaXMubyA9IG51bGw7IHRoaXMucyA9IFtdOyB0aGlzLmEgPSBudWxsOyB0aGlzLkQgPSAwOyB0aGlzLmggPSB0aGlzLm0gPSBudWxsOyB0aGlzLk4gPSAtMTsgdGhpcy5BID0gITE7IHRoaXMuTyA9IDA7IHRoaXMuRiA9IG51bGw7IHRoaXMuVyA9IHRoaXMuQyA9IHRoaXMuViA9IHRoaXMuSSA9ICExOyB9XHJcbnZhciBoYyA9IDQ1RTMsIGljID0ge30sIGpjID0ge307XHJcbmcgPSBLLnByb3RvdHlwZTtcclxuZy5zZXRUaW1lb3V0ID0gZnVuY3Rpb24gKGEpIHsgdGhpcy5QID0gYTsgfTtcclxuZnVuY3Rpb24ga2MoYSwgYiwgYykgeyBhLkggPSAxOyBhLmkgPSBsYyhMKGIpKTsgYS5qID0gYzsgYS5JID0gITA7IG1jKGEsIG51bGwpOyB9XHJcbmZ1bmN0aW9uIG1jKGEsIGIpIHsgYS51ID0gcSgpOyBNKGEpOyBhLmwgPSBMKGEuaSk7IHZhciBjID0gYS5sLCBkID0gYS5UOyBBcnJheS5pc0FycmF5KGQpIHx8IChkID0gW1N0cmluZyhkKV0pOyBuYyhjLmIsIFwidFwiLCBkKTsgYS5EID0gMDsgYS5hID0gb2MoYS5nLCBhLmcuQyA/IGIgOiBudWxsKTsgMCA8IGEuTyAmJiAoYS5GID0gbmV3IExiKHAoYS5DYSwgYSwgYS5hKSwgYS5PKSk7IE5iKGEuSiwgYS5hLCBcInJlYWR5c3RhdGVjaGFuZ2VcIiwgYS5XYSk7IGIgPSBhLkIgPyBCYShhLkIpIDoge307IGEuaiA/IChhLm0gfHwgKGEubSA9IFwiUE9TVFwiKSwgYltcIkNvbnRlbnQtVHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsIGEuYS5iYShhLmwsIGEubSwgYS5qLCBiKSkgOiAoYS5tID0gXCJHRVRcIiwgYS5hLmJhKGEubCwgYS5tLCBudWxsLCBiKSk7IEcoMSk7IFFiKGEuYywgYS5tLCBhLmwsIGEuZiwgYS5ULCBhLmopOyB9XHJcbmcuV2EgPSBmdW5jdGlvbiAoYSkgeyBhID0gYS50YXJnZXQ7IHZhciBiID0gdGhpcy5GOyBiICYmIDMgPT0gTihhKSA/IGIuZigpIDogdGhpcy5DYShhKTsgfTtcclxuZy5DYSA9IGZ1bmN0aW9uIChhKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChhID09IHRoaXMuYSlcclxuICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgdmFyIGIgPSBOKHRoaXMuYSksIGMgPSB0aGlzLmEudWEoKSwgZCA9IHRoaXMuYS5YKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoISgzID4gYiB8fCAzID09IGIgJiYgIUphICYmICF0aGlzLmEuJCgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQSB8fCA0ICE9IGIgfHwgNyA9PSBjIHx8ICg4ID09IGMgfHwgMCA+PSBkID8gRygzKSA6IEcoMikpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBjKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5hLlgoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLk4gPSBlO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBmID0gdGhpcy5hLiQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmIgPSAyMDAgPT0gZTtcclxuICAgICAgICAgICAgICAgICAgICBSYih0aGlzLmMsIHRoaXMubSwgdGhpcy5sLCB0aGlzLmYsIHRoaXMuVCwgYiwgZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5WICYmICF0aGlzLkMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoLCBtID0gdGhpcy5hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGggPSBtLmEgPyBtLmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUhUVFAtSW5pdGlhbC1SZXNwb25zZVwiKSA6IG51bGwpICYmICF0YShoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBoO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYodGhpcy5jLCB0aGlzLmYsIGwsIFwiSW5pdGlhbCBoYW5kc2hha2UgcmVzcG9uc2UgdmlhIFgtSFRUUC1Jbml0aWFsLVJlc3BvbnNlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkMgPSAhMCwgcWModGhpcywgbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmIgPSAhMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmggPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgoMTIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8odGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmModGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkkgPyAodGModGhpcywgYiwgZiksIEphICYmIHRoaXMuYiAmJiAzID09IGIgJiYgKE5iKHRoaXMuSiwgdGhpcy5SLCBcInRpY2tcIiwgdGhpcy5WYSksIHRoaXMuUi5zdGFydCgpKSkgOiAoRih0aGlzLmMsIHRoaXMuZiwgZiwgbnVsbCksIHFjKHRoaXMsIGYpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgNCA9PSBiICYmIE8odGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYiAmJiAhdGhpcy5BICYmICg0ID09IGIgPyB1Yyh0aGlzLmcsIHRoaXMpIDogKHRoaXMuYiA9ICExLCBNKHRoaXMpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgNDAwID09IGUgJiYgMCA8IGYuaW5kZXhPZihcIlVua25vd24gU0lEXCIpID8gKHRoaXMuaCA9IDMsIEgoMTIpKSA6ICh0aGlzLmggPSAwLCBIKDEzKSksIE8odGhpcyksIHJjKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAodCkgeyB9XHJcbiAgICBmaW5hbGx5IHsgfVxyXG59O1xyXG5mdW5jdGlvbiB0YyhhLCBiLCBjKSB7IGZvciAodmFyIGQgPSAhMDsgIWEuQSAmJiBhLkQgPCBjLmxlbmd0aDspIHtcclxuICAgIHZhciBlID0gdmMoYSwgYyk7XHJcbiAgICBpZiAoZSA9PSBqYykge1xyXG4gICAgICAgIDQgPT0gYiAmJiAoYS5oID0gNCwgSCgxNCksIGQgPSAhMSk7XHJcbiAgICAgICAgRihhLmMsIGEuZiwgbnVsbCwgXCJbSW5jb21wbGV0ZSBSZXNwb25zZV1cIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlID09IGljKSB7XHJcbiAgICAgICAgYS5oID0gNDtcclxuICAgICAgICBIKDE1KTtcclxuICAgICAgICBGKGEuYywgYS5mLCBjLCBcIltJbnZhbGlkIENodW5rXVwiKTtcclxuICAgICAgICBkID0gITE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgRihhLmMsIGEuZiwgZSwgbnVsbCksIHFjKGEsIGUpO1xyXG59IDQgPT0gYiAmJiAwID09IGMubGVuZ3RoICYmIChhLmggPSAxLCBIKDE2KSwgZCA9ICExKTsgYS5iID0gYS5iICYmIGQ7IGQgPyAwIDwgYy5sZW5ndGggJiYgIWEuVyAmJiAoYS5XID0gITAsIGIgPSBhLmcsIGIuYSA9PSBhICYmIGIuViAmJiAhYi5GICYmIChiLmMuaW5mbyhcIkdyZWF0LCBubyBidWZmZXJpbmcgcHJveHkgZGV0ZWN0ZWQuIEJ5dGVzIHJlY2VpdmVkOiBcIiArIGMubGVuZ3RoKSwgeGMoYiksIGIuRiA9ICEwKSkgOiAoRihhLmMsIGEuZiwgYywgXCJbSW52YWxpZCBDaHVua2VkIFJlc3BvbnNlXVwiKSwgTyhhKSwgcmMoYSkpOyB9XHJcbmcuVmEgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmEpIHtcclxuICAgIHZhciBhID0gTih0aGlzLmEpLCBiID0gdGhpcy5hLiQoKTtcclxuICAgIHRoaXMuRCA8IGIubGVuZ3RoICYmIChwYyh0aGlzKSwgdGModGhpcywgYSwgYiksIHRoaXMuYiAmJiA0ICE9IGEgJiYgTSh0aGlzKSk7XHJcbn0gfTtcclxuZnVuY3Rpb24gdmMoYSwgYikgeyB2YXIgYyA9IGEuRCwgZCA9IGIuaW5kZXhPZihcIlxcblwiLCBjKTsgaWYgKC0xID09IGQpXHJcbiAgICByZXR1cm4gamM7IGMgPSBOdW1iZXIoYi5zdWJzdHJpbmcoYywgZCkpOyBpZiAoaXNOYU4oYykpXHJcbiAgICByZXR1cm4gaWM7IGQgKz0gMTsgaWYgKGQgKyBjID4gYi5sZW5ndGgpXHJcbiAgICByZXR1cm4gamM7IGIgPSBiLnN1YnN0cihkLCBjKTsgYS5EID0gZCArIGM7IHJldHVybiBiOyB9XHJcbmcuY2FuY2VsID0gZnVuY3Rpb24gKCkgeyB0aGlzLkEgPSAhMDsgTyh0aGlzKTsgfTtcclxuZnVuY3Rpb24gTShhKSB7IGEuVSA9IHEoKSArIGEuUDsgeWMoYSwgYS5QKTsgfVxyXG5mdW5jdGlvbiB5YyhhLCBiKSB7IGlmIChudWxsICE9IGEubylcclxuICAgIHRocm93IEVycm9yKFwiV2F0Y2hEb2cgdGltZXIgbm90IG51bGxcIik7IGEubyA9IEkocChhLlVhLCBhKSwgYik7IH1cclxuZnVuY3Rpb24gcGMoYSkgeyBhLm8gJiYgKGsuY2xlYXJUaW1lb3V0KGEubyksIGEubyA9IG51bGwpOyB9XHJcbmcuVWEgPSBmdW5jdGlvbiAoKSB7IHRoaXMubyA9IG51bGw7IHZhciBhID0gcSgpOyAwIDw9IGEgLSB0aGlzLlUgPyAoVGIodGhpcy5jLCB0aGlzLmwpLCAyICE9IHRoaXMuSCAmJiAoRygzKSwgSCgxNykpLCBPKHRoaXMpLCB0aGlzLmggPSAyLCByYyh0aGlzKSkgOiB5Yyh0aGlzLCB0aGlzLlUgLSBhKTsgfTtcclxuZnVuY3Rpb24gcmMoYSkgeyAwID09IGEuZy52IHx8IGEuQSB8fCB1YyhhLmcsIGEpOyB9XHJcbmZ1bmN0aW9uIE8oYSkgeyBwYyhhKTsgdmFyIGIgPSBhLkY7IGIgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBiLmphICYmIGIuamEoKTsgYS5GID0gbnVsbDsgSWIoYS5SKTsgT2IoYS5KKTsgYS5hICYmIChiID0gYS5hLCBhLmEgPSBudWxsLCBiLmFib3J0KCksIGIuamEoKSk7IH1cclxuZnVuY3Rpb24gcWMoYSwgYikge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgYyA9IGEuZztcclxuICAgICAgICBpZiAoMCAhPSBjLnYgJiYgKGMuYSA9PSBhIHx8IHpjKGMuYiwgYSkpKVxyXG4gICAgICAgICAgICBpZiAoYy5JID0gYS5OLCAhYS5DICYmIHpjKGMuYiwgYSkgJiYgMyA9PSBjLnYpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBjLmthLmEucGFyc2UoYik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoc2MpIHtcclxuICAgICAgICAgICAgICAgICAgICBkID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGQpICYmIDMgPT0gZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT0gZVswXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjLmopIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5hKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5hLnUgKyAzRTMgPCBhLnUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYyhjKSwgQmMoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2MoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCgxOCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGMub2EgPSBlWzFdLCAwIDwgYy5vYSAtIGMuUCAmJiAzNzUwMCA+IGVbMl0gJiYgYy5IICYmIDAgPT0gYy5vICYmICFjLm0gJiYgKGMubSA9IEkocChjLlJhLCBjKSwgNkUzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDEgPj0gRGMoYy5iKSAmJiBjLmVhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmVhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKHNjKSB7IH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYy5lYSA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgUChjLCAxMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKGEuQyB8fCBjLmEgPT0gYSkgJiYgQWMoYyksICF0YShiKSlcclxuICAgICAgICAgICAgICAgIGZvciAoYiA9IGQgPSBjLmthLmEucGFyc2UoYiksIGQgPSAwOyBkIDwgYi5sZW5ndGg7IGQrKylcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0sIGMuUCA9IGVbMF0sIGUgPSBlWzFdLCAyID09IGMudilcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwiY1wiID09IGVbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuSiA9IGVbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdhID0gZVsyXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZVszXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT0gZiAmJiAoYy5oYSA9IGYsIGMuYy5pbmZvKFwiVkVSPVwiICsgYy5oYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGggPSBlWzRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPSBoICYmIChjLnBhID0gaCwgYy5jLmluZm8oXCJTVkVSPVwiICsgYy5wYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG0gPSBlWzVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gbSAmJiBcIm51bWJlclwiID09PSB0eXBlb2YgbSAmJiAwIDwgbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsID0gMS41ICogbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLkQgPSBsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuYy5pbmZvKFwiYmFja0NoYW5uZWxSZXF1ZXN0VGltZW91dE1zXz1cIiArIGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdCA9IGEuYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEIgPSB0LmEgPyB0LmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUNsaWVudC1XaXJlLVByb3RvY29sXCIpIDogbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiA9IGwuYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXouYSAmJiAodihCLCBcInNwZHlcIikgfHwgdihCLCBcInF1aWNcIikgfHwgdihCLCBcImgyXCIpKSAmJiAoei5mID0gei5nLCB6LmEgPSBuZXcgU2V0LCB6LmIgJiYgKEVjKHosIHouYiksIHouYiA9IG51bGwpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwuQSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcWIgPSB0LmEgPyB0LmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUhUVFAtU2Vzc2lvbi1JZFwiKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxYiAmJiAobC5uYSA9IHFiLCBRKGwuQiwgbC5BLCBxYikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudiA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmYgJiYgYy5mLnRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLlYgJiYgKGMuTiA9IHEoKSAtIGEudSwgYy5jLmluZm8oXCJIYW5kc2hha2UgUlRUOiBcIiArIGMuTiArIFwibXNcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmEgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5sYSA9IEZjKGwsIGwuQyA/IGwuZ2EgOiBudWxsLCBsLmZhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YS5DKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2MobC5iLCB2YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHdhID0gdmEsIHdjID0gbC5EO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdjICYmIHdhLnNldFRpbWVvdXQod2MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhLm8gJiYgKHBjKHdhKSwgTSh3YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuYSA9IHZhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhjKGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA8IGMuZy5sZW5ndGggJiYgSWMoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdG9wXCIgIT0gZVswXSAmJiBcImNsb3NlXCIgIT0gZVswXSB8fCBQKGMsIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgMyA9PSBjLnYgJiYgKFwic3RvcFwiID09IGVbMF0gfHwgXCJjbG9zZVwiID09IGVbMF0gPyBcInN0b3BcIiA9PSBlWzBdID8gUChjLCA3KSA6IEpjKGMpIDogXCJub29wXCIgIT0gZVswXSAmJiBjLmYgJiYgYy5mLnNhKGUpLCBjLm8gPSAwKTtcclxuICAgICAgICBHKDQpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKHNjKSB7IH1cclxufVxyXG5mdW5jdGlvbiBLYyhhKSB7IGlmIChhLksgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLkspXHJcbiAgICByZXR1cm4gYS5LKCk7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSlcclxuICAgIHJldHVybiBhLnNwbGl0KFwiXCIpOyBpZiAoY2EoYSkpIHtcclxuICAgIGZvciAodmFyIGIgPSBbXSwgYyA9IGEubGVuZ3RoLCBkID0gMDsgZCA8IGM7IGQrKylcclxuICAgICAgICBiLnB1c2goYVtkXSk7XHJcbiAgICByZXR1cm4gYjtcclxufSBiID0gW107IGMgPSAwOyBmb3IgKGQgaW4gYSlcclxuICAgIGJbYysrXSA9IGFbZF07IHJldHVybiBhID0gYjsgfVxyXG5mdW5jdGlvbiBMYyhhLCBiKSB7IGlmIChhLmZvckVhY2ggJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLmZvckVhY2gpXHJcbiAgICBhLmZvckVhY2goYiwgdm9pZCAwKTtcclxuZWxzZSBpZiAoY2EoYSkgfHwgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpXHJcbiAgICBvYShhLCBiLCB2b2lkIDApO1xyXG5lbHNlIHtcclxuICAgIGlmIChhLkwgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLkwpXHJcbiAgICAgICAgdmFyIGMgPSBhLkwoKTtcclxuICAgIGVsc2UgaWYgKGEuSyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGEuSylcclxuICAgICAgICBjID0gdm9pZCAwO1xyXG4gICAgZWxzZSBpZiAoY2EoYSkgfHwgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpIHtcclxuICAgICAgICBjID0gW107XHJcbiAgICAgICAgZm9yICh2YXIgZCA9IGEubGVuZ3RoLCBlID0gMDsgZSA8IGQ7IGUrKylcclxuICAgICAgICAgICAgYy5wdXNoKGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICAgIGZvciAoZSBpbiBjID0gW10sIGQgPSAwLCBhKVxyXG4gICAgICAgICAgICBjW2QrK10gPSBlO1xyXG4gICAgZCA9IEtjKGEpO1xyXG4gICAgZSA9IGQubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBlOyBmKyspXHJcbiAgICAgICAgYi5jYWxsKHZvaWQgMCwgZFtmXSwgYyAmJiBjW2ZdLCBhKTtcclxufSB9XHJcbmZ1bmN0aW9uIFIoYSwgYikgeyB0aGlzLmIgPSB7fTsgdGhpcy5hID0gW107IHRoaXMuYyA9IDA7IHZhciBjID0gYXJndW1lbnRzLmxlbmd0aDsgaWYgKDEgPCBjKSB7XHJcbiAgICBpZiAoYyAlIDIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50c1wiKTtcclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgYzsgZCArPSAyKVxyXG4gICAgICAgIHRoaXMuc2V0KGFyZ3VtZW50c1tkXSwgYXJndW1lbnRzW2QgKyAxXSk7XHJcbn1cclxuZWxzZSBpZiAoYSlcclxuICAgIGlmIChhIGluc3RhbmNlb2YgUilcclxuICAgICAgICBmb3IgKGMgPSBhLkwoKSwgZCA9IDA7IGQgPCBjLmxlbmd0aDsgZCsrKVxyXG4gICAgICAgICAgICB0aGlzLnNldChjW2RdLCBhLmdldChjW2RdKSk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgZm9yIChkIGluIGEpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0KGQsIGFbZF0pOyB9XHJcbmcgPSBSLnByb3RvdHlwZTtcclxuZy5LID0gZnVuY3Rpb24gKCkgeyBNYyh0aGlzKTsgZm9yICh2YXIgYSA9IFtdLCBiID0gMDsgYiA8IHRoaXMuYS5sZW5ndGg7IGIrKylcclxuICAgIGEucHVzaCh0aGlzLmJbdGhpcy5hW2JdXSk7IHJldHVybiBhOyB9O1xyXG5nLkwgPSBmdW5jdGlvbiAoKSB7IE1jKHRoaXMpOyByZXR1cm4gdGhpcy5hLmNvbmNhdCgpOyB9O1xyXG5mdW5jdGlvbiBNYyhhKSB7IGlmIChhLmMgIT0gYS5hLmxlbmd0aCkge1xyXG4gICAgZm9yICh2YXIgYiA9IDAsIGMgPSAwOyBiIDwgYS5hLmxlbmd0aDspIHtcclxuICAgICAgICB2YXIgZCA9IGEuYVtiXTtcclxuICAgICAgICBTKGEuYiwgZCkgJiYgKGEuYVtjKytdID0gZCk7XHJcbiAgICAgICAgYisrO1xyXG4gICAgfVxyXG4gICAgYS5hLmxlbmd0aCA9IGM7XHJcbn0gaWYgKGEuYyAhPSBhLmEubGVuZ3RoKSB7XHJcbiAgICB2YXIgZSA9IHt9O1xyXG4gICAgZm9yIChjID0gYiA9IDA7IGIgPCBhLmEubGVuZ3RoOylcclxuICAgICAgICBkID0gYS5hW2JdLCBTKGUsIGQpIHx8IChhLmFbYysrXSA9IGQsIGVbZF0gPSAxKSwgYisrO1xyXG4gICAgYS5hLmxlbmd0aCA9IGM7XHJcbn0gfVxyXG5nLmdldCA9IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBTKHRoaXMuYiwgYSkgPyB0aGlzLmJbYV0gOiBiOyB9O1xyXG5nLnNldCA9IGZ1bmN0aW9uIChhLCBiKSB7IFModGhpcy5iLCBhKSB8fCAodGhpcy5jKyssIHRoaXMuYS5wdXNoKGEpKTsgdGhpcy5iW2FdID0gYjsgfTtcclxuZy5mb3JFYWNoID0gZnVuY3Rpb24gKGEsIGIpIHsgZm9yICh2YXIgYyA9IHRoaXMuTCgpLCBkID0gMDsgZCA8IGMubGVuZ3RoOyBkKyspIHtcclxuICAgIHZhciBlID0gY1tkXSwgZiA9IHRoaXMuZ2V0KGUpO1xyXG4gICAgYS5jYWxsKGIsIGYsIGUsIHRoaXMpO1xyXG59IH07XHJcbmZ1bmN0aW9uIFMoYSwgYikgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpOyB9XHJcbnZhciBOYyA9IC9eKD86KFteOi8/Iy5dKyk6KT8oPzpcXC9cXC8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kLztcclxuZnVuY3Rpb24gT2MoYSwgYikgeyBpZiAoYSkge1xyXG4gICAgYSA9IGEuc3BsaXQoXCImXCIpO1xyXG4gICAgZm9yICh2YXIgYyA9IDA7IGMgPCBhLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgdmFyIGQgPSBhW2NdLmluZGV4T2YoXCI9XCIpLCBlID0gbnVsbDtcclxuICAgICAgICBpZiAoMCA8PSBkKSB7XHJcbiAgICAgICAgICAgIHZhciBmID0gYVtjXS5zdWJzdHJpbmcoMCwgZCk7XHJcbiAgICAgICAgICAgIGUgPSBhW2NdLnN1YnN0cmluZyhkICsgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgZiA9IGFbY107XHJcbiAgICAgICAgYihmLCBlID8gZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZSgvXFwrL2csIFwiIFwiKSkgOiBcIlwiKTtcclxuICAgIH1cclxufSB9XHJcbmZ1bmN0aW9uIFQoYSwgYikgeyB0aGlzLmMgPSB0aGlzLmogPSB0aGlzLmYgPSBcIlwiOyB0aGlzLmggPSBudWxsOyB0aGlzLmkgPSB0aGlzLmcgPSBcIlwiOyB0aGlzLmEgPSAhMTsgaWYgKGEgaW5zdGFuY2VvZiBUKSB7XHJcbiAgICB0aGlzLmEgPSB2b2lkIDAgIT09IGIgPyBiIDogYS5hO1xyXG4gICAgUGModGhpcywgYS5mKTtcclxuICAgIHRoaXMuaiA9IGEuajtcclxuICAgIFFjKHRoaXMsIGEuYyk7XHJcbiAgICBSYyh0aGlzLCBhLmgpO1xyXG4gICAgdGhpcy5nID0gYS5nO1xyXG4gICAgYiA9IGEuYjtcclxuICAgIHZhciBjID0gbmV3IFU7XHJcbiAgICBjLmMgPSBiLmM7XHJcbiAgICBiLmEgJiYgKGMuYSA9IG5ldyBSKGIuYSksIGMuYiA9IGIuYik7XHJcbiAgICBTYyh0aGlzLCBjKTtcclxuICAgIHRoaXMuaSA9IGEuaTtcclxufVxyXG5lbHNlXHJcbiAgICBhICYmIChjID0gU3RyaW5nKGEpLm1hdGNoKE5jKSkgPyAodGhpcy5hID0gISFiLCBQYyh0aGlzLCBjWzFdIHx8IFwiXCIsICEwKSwgdGhpcy5qID0gVGMoY1syXSB8fCBcIlwiKSwgUWModGhpcywgY1szXSB8fCBcIlwiLCAhMCksIFJjKHRoaXMsIGNbNF0pLCB0aGlzLmcgPSBUYyhjWzVdIHx8IFwiXCIsICEwKSwgU2ModGhpcywgY1s2XSB8fCBcIlwiLCAhMCksIHRoaXMuaSA9IFRjKGNbN10gfHwgXCJcIikpIDogKHRoaXMuYSA9ICEhYiwgdGhpcy5iID0gbmV3IFUobnVsbCwgdGhpcy5hKSk7IH1cclxuVC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7IHZhciBhID0gW10sIGIgPSB0aGlzLmY7IGIgJiYgYS5wdXNoKFVjKGIsIFZjLCAhMCksIFwiOlwiKTsgdmFyIGMgPSB0aGlzLmM7IGlmIChjIHx8IFwiZmlsZVwiID09IGIpXHJcbiAgICBhLnB1c2goXCIvL1wiKSwgKGIgPSB0aGlzLmopICYmIGEucHVzaChVYyhiLCBWYywgITApLCBcIkBcIiksIGEucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIFwiJSQxXCIpKSwgYyA9IHRoaXMuaCwgbnVsbCAhPSBjICYmIGEucHVzaChcIjpcIiwgU3RyaW5nKGMpKTsgaWYgKGMgPSB0aGlzLmcpXHJcbiAgICB0aGlzLmMgJiYgXCIvXCIgIT0gYy5jaGFyQXQoMCkgJiYgYS5wdXNoKFwiL1wiKSwgYS5wdXNoKFVjKGMsIFwiL1wiID09IGMuY2hhckF0KDApID8gV2MgOiBYYywgITApKTsgKGMgPSB0aGlzLmIudG9TdHJpbmcoKSkgJiYgYS5wdXNoKFwiP1wiLCBjKTsgKGMgPSB0aGlzLmkpICYmIGEucHVzaChcIiNcIiwgVWMoYywgWWMpKTsgcmV0dXJuIGEuam9pbihcIlwiKTsgfTtcclxuZnVuY3Rpb24gTChhKSB7IHJldHVybiBuZXcgVChhKTsgfVxyXG5mdW5jdGlvbiBQYyhhLCBiLCBjKSB7IGEuZiA9IGMgPyBUYyhiLCAhMCkgOiBiOyBhLmYgJiYgKGEuZiA9IGEuZi5yZXBsYWNlKC86JC8sIFwiXCIpKTsgfVxyXG5mdW5jdGlvbiBRYyhhLCBiLCBjKSB7IGEuYyA9IGMgPyBUYyhiLCAhMCkgOiBiOyB9XHJcbmZ1bmN0aW9uIFJjKGEsIGIpIHsgaWYgKGIpIHtcclxuICAgIGIgPSBOdW1iZXIoYik7XHJcbiAgICBpZiAoaXNOYU4oYikgfHwgMCA+IGIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJCYWQgcG9ydCBudW1iZXIgXCIgKyBiKTtcclxuICAgIGEuaCA9IGI7XHJcbn1cclxuZWxzZVxyXG4gICAgYS5oID0gbnVsbDsgfVxyXG5mdW5jdGlvbiBTYyhhLCBiLCBjKSB7IGIgaW5zdGFuY2VvZiBVID8gKGEuYiA9IGIsIFpjKGEuYiwgYS5hKSkgOiAoYyB8fCAoYiA9IFVjKGIsICRjKSksIGEuYiA9IG5ldyBVKGIsIGEuYSkpOyB9XHJcbmZ1bmN0aW9uIFEoYSwgYiwgYykgeyBhLmIuc2V0KGIsIGMpOyB9XHJcbmZ1bmN0aW9uIGxjKGEpIHsgUShhLCBcInp4XCIsIE1hdGguZmxvb3IoMjE0NzQ4MzY0OCAqIE1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KSArIE1hdGguYWJzKE1hdGguZmxvb3IoMjE0NzQ4MzY0OCAqIE1hdGgucmFuZG9tKCkpIF4gcSgpKS50b1N0cmluZygzNikpOyByZXR1cm4gYTsgfVxyXG5mdW5jdGlvbiBhZChhKSB7IHJldHVybiBhIGluc3RhbmNlb2YgVCA/IEwoYSkgOiBuZXcgVChhLCB2b2lkIDApOyB9XHJcbmZ1bmN0aW9uIGJkKGEsIGIsIGMsIGQpIHsgdmFyIGUgPSBuZXcgVChudWxsLCB2b2lkIDApOyBhICYmIFBjKGUsIGEpOyBiICYmIFFjKGUsIGIpOyBjICYmIFJjKGUsIGMpOyBkICYmIChlLmcgPSBkKTsgcmV0dXJuIGU7IH1cclxuZnVuY3Rpb24gVGMoYSwgYikgeyByZXR1cm4gYSA/IGIgPyBkZWNvZGVVUkkoYS5yZXBsYWNlKC8lMjUvZywgXCIlMjUyNVwiKSkgOiBkZWNvZGVVUklDb21wb25lbnQoYSkgOiBcIlwiOyB9XHJcbmZ1bmN0aW9uIFVjKGEsIGIsIGMpIHsgcmV0dXJuIFwic3RyaW5nXCIgPT09IHR5cGVvZiBhID8gKGEgPSBlbmNvZGVVUkkoYSkucmVwbGFjZShiLCBjZCksIGMgJiYgKGEgPSBhLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywgXCIlJDFcIikpLCBhKSA6IG51bGw7IH1cclxuZnVuY3Rpb24gY2QoYSkgeyBhID0gYS5jaGFyQ29kZUF0KDApOyByZXR1cm4gXCIlXCIgKyAoYSA+PiA0ICYgMTUpLnRvU3RyaW5nKDE2KSArIChhICYgMTUpLnRvU3RyaW5nKDE2KTsgfVxyXG52YXIgVmMgPSAvWyNcXC9cXD9AXS9nLCBYYyA9IC9bI1xcPzpdL2csIFdjID0gL1sjXFw/XS9nLCAkYyA9IC9bI1xcP0BdL2csIFljID0gLyMvZztcclxuZnVuY3Rpb24gVShhLCBiKSB7IHRoaXMuYiA9IHRoaXMuYSA9IG51bGw7IHRoaXMuYyA9IGEgfHwgbnVsbDsgdGhpcy5mID0gISFiOyB9XHJcbmZ1bmN0aW9uIFYoYSkgeyBhLmEgfHwgKGEuYSA9IG5ldyBSLCBhLmIgPSAwLCBhLmMgJiYgT2MoYS5jLCBmdW5jdGlvbiAoYiwgYykgeyBhLmFkZChkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKSwgYyk7IH0pKTsgfVxyXG5nID0gVS5wcm90b3R5cGU7XHJcbmcuYWRkID0gZnVuY3Rpb24gKGEsIGIpIHsgVih0aGlzKTsgdGhpcy5jID0gbnVsbDsgYSA9IFcodGhpcywgYSk7IHZhciBjID0gdGhpcy5hLmdldChhKTsgYyB8fCB0aGlzLmEuc2V0KGEsIGMgPSBbXSk7IGMucHVzaChiKTsgdGhpcy5iICs9IDE7IHJldHVybiB0aGlzOyB9O1xyXG5mdW5jdGlvbiBkZChhLCBiKSB7IFYoYSk7IGIgPSBXKGEsIGIpOyBTKGEuYS5iLCBiKSAmJiAoYS5jID0gbnVsbCwgYS5iIC09IGEuYS5nZXQoYikubGVuZ3RoLCBhID0gYS5hLCBTKGEuYiwgYikgJiYgKGRlbGV0ZSBhLmJbYl0sIGEuYy0tLCBhLmEubGVuZ3RoID4gMiAqIGEuYyAmJiBNYyhhKSkpOyB9XHJcbmZ1bmN0aW9uIGVkKGEsIGIpIHsgVihhKTsgYiA9IFcoYSwgYik7IHJldHVybiBTKGEuYS5iLCBiKTsgfVxyXG5nLmZvckVhY2ggPSBmdW5jdGlvbiAoYSwgYikgeyBWKHRoaXMpOyB0aGlzLmEuZm9yRWFjaChmdW5jdGlvbiAoYywgZCkgeyBvYShjLCBmdW5jdGlvbiAoZSkgeyBhLmNhbGwoYiwgZSwgZCwgdGhpcyk7IH0sIHRoaXMpOyB9LCB0aGlzKTsgfTtcclxuZy5MID0gZnVuY3Rpb24gKCkgeyBWKHRoaXMpOyBmb3IgKHZhciBhID0gdGhpcy5hLksoKSwgYiA9IHRoaXMuYS5MKCksIGMgPSBbXSwgZCA9IDA7IGQgPCBiLmxlbmd0aDsgZCsrKVxyXG4gICAgZm9yICh2YXIgZSA9IGFbZF0sIGYgPSAwOyBmIDwgZS5sZW5ndGg7IGYrKylcclxuICAgICAgICBjLnB1c2goYltkXSk7IHJldHVybiBjOyB9O1xyXG5nLksgPSBmdW5jdGlvbiAoYSkgeyBWKHRoaXMpOyB2YXIgYiA9IFtdOyBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpXHJcbiAgICBlZCh0aGlzLCBhKSAmJiAoYiA9IHJhKGIsIHRoaXMuYS5nZXQoVyh0aGlzLCBhKSkpKTtcclxuZWxzZSB7XHJcbiAgICBhID0gdGhpcy5hLksoKTtcclxuICAgIGZvciAodmFyIGMgPSAwOyBjIDwgYS5sZW5ndGg7IGMrKylcclxuICAgICAgICBiID0gcmEoYiwgYVtjXSk7XHJcbn0gcmV0dXJuIGI7IH07XHJcbmcuc2V0ID0gZnVuY3Rpb24gKGEsIGIpIHsgVih0aGlzKTsgdGhpcy5jID0gbnVsbDsgYSA9IFcodGhpcywgYSk7IGVkKHRoaXMsIGEpICYmICh0aGlzLmIgLT0gdGhpcy5hLmdldChhKS5sZW5ndGgpOyB0aGlzLmEuc2V0KGEsIFtiXSk7IHRoaXMuYiArPSAxOyByZXR1cm4gdGhpczsgfTtcclxuZy5nZXQgPSBmdW5jdGlvbiAoYSwgYikgeyBpZiAoIWEpXHJcbiAgICByZXR1cm4gYjsgYSA9IHRoaXMuSyhhKTsgcmV0dXJuIDAgPCBhLmxlbmd0aCA/IFN0cmluZyhhWzBdKSA6IGI7IH07XHJcbmZ1bmN0aW9uIG5jKGEsIGIsIGMpIHsgZGQoYSwgYik7IDAgPCBjLmxlbmd0aCAmJiAoYS5jID0gbnVsbCwgYS5hLnNldChXKGEsIGIpLCBzYShjKSksIGEuYiArPSBjLmxlbmd0aCk7IH1cclxuZy50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsgaWYgKHRoaXMuYylcclxuICAgIHJldHVybiB0aGlzLmM7IGlmICghdGhpcy5hKVxyXG4gICAgcmV0dXJuIFwiXCI7IGZvciAodmFyIGEgPSBbXSwgYiA9IHRoaXMuYS5MKCksIGMgPSAwOyBjIDwgYi5sZW5ndGg7IGMrKykge1xyXG4gICAgdmFyIGQgPSBiW2NdLCBlID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSk7XHJcbiAgICBkID0gdGhpcy5LKGQpO1xyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBkLmxlbmd0aDsgZisrKSB7XHJcbiAgICAgICAgdmFyIGggPSBlO1xyXG4gICAgICAgIFwiXCIgIT09IGRbZl0gJiYgKGggKz0gXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGRbZl0pKSk7XHJcbiAgICAgICAgYS5wdXNoKGgpO1xyXG4gICAgfVxyXG59IHJldHVybiB0aGlzLmMgPSBhLmpvaW4oXCImXCIpOyB9O1xyXG5mdW5jdGlvbiBXKGEsIGIpIHsgYiA9IFN0cmluZyhiKTsgYS5mICYmIChiID0gYi50b0xvd2VyQ2FzZSgpKTsgcmV0dXJuIGI7IH1cclxuZnVuY3Rpb24gWmMoYSwgYikgeyBiICYmICFhLmYgJiYgKFYoYSksIGEuYyA9IG51bGwsIGEuYS5mb3JFYWNoKGZ1bmN0aW9uIChjLCBkKSB7IHZhciBlID0gZC50b0xvd2VyQ2FzZSgpOyBkICE9IGUgJiYgKGRkKHRoaXMsIGQpLCBuYyh0aGlzLCBlLCBjKSk7IH0sIGEpKTsgYS5mID0gYjsgfVxyXG5mdW5jdGlvbiBmZChhLCBiKSB7IHRoaXMuYiA9IGE7IHRoaXMuYSA9IGI7IH1cclxuZnVuY3Rpb24gZ2QoYSkgeyB0aGlzLmcgPSBhIHx8IGhkOyBrLlBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyA/IChhID0gay5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKSwgYSA9IDAgPCBhLmxlbmd0aCAmJiAoXCJocVwiID09IGFbMF0ubmV4dEhvcFByb3RvY29sIHx8IFwiaDJcIiA9PSBhWzBdLm5leHRIb3BQcm90b2NvbCkpIDogYSA9ICEhKGsuaWEgJiYgay5pYS55YSAmJiBrLmlhLnlhKCkgJiYgay5pYS55YSgpLnFiKTsgdGhpcy5mID0gYSA/IHRoaXMuZyA6IDE7IHRoaXMuYSA9IG51bGw7IDEgPCB0aGlzLmYgJiYgKHRoaXMuYSA9IG5ldyBTZXQpOyB0aGlzLmIgPSBudWxsOyB0aGlzLmMgPSBbXTsgfVxyXG52YXIgaGQgPSAxMDtcclxuZnVuY3Rpb24gaWQoYSkgeyByZXR1cm4gYS5iID8gITAgOiBhLmEgPyBhLmEuc2l6ZSA+PSBhLmYgOiAhMTsgfVxyXG5mdW5jdGlvbiBEYyhhKSB7IHJldHVybiBhLmIgPyAxIDogYS5hID8gYS5hLnNpemUgOiAwOyB9XHJcbmZ1bmN0aW9uIHpjKGEsIGIpIHsgcmV0dXJuIGEuYiA/IGEuYiA9PSBiIDogYS5hID8gYS5hLmhhcyhiKSA6ICExOyB9XHJcbmZ1bmN0aW9uIEVjKGEsIGIpIHsgYS5hID8gYS5hLmFkZChiKSA6IGEuYiA9IGI7IH1cclxuZnVuY3Rpb24gR2MoYSwgYikgeyBhLmIgJiYgYS5iID09IGIgPyBhLmIgPSBudWxsIDogYS5hICYmIGEuYS5oYXMoYikgJiYgYS5hLmRlbGV0ZShiKTsgfVxyXG5nZC5wcm90b3R5cGUuY2FuY2VsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGVfMSwgX2E7XHJcbiAgICB0aGlzLmMgPSBqZCh0aGlzKTtcclxuICAgIGlmICh0aGlzLmIpXHJcbiAgICAgICAgdGhpcy5iLmNhbmNlbCgpLCB0aGlzLmIgPSBudWxsO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hICYmIDAgIT09IHRoaXMuYS5zaXplKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyh0aGlzLmEudmFsdWVzKCkpLCBfYyA9IF9iLm5leHQoKTsgIV9jLmRvbmU7IF9jID0gX2IubmV4dCgpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYSA9IF9jLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgYS5jYW5jZWwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZV8xXzEpIHsgZV8xID0geyBlcnJvcjogZV8xXzEgfTsgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkgeyBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hLmNsZWFyKCk7XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIGpkKGEpIHtcclxuICAgIHZhciBlXzIsIF9hO1xyXG4gICAgaWYgKG51bGwgIT0gYS5iKVxyXG4gICAgICAgIHJldHVybiBhLmMuY29uY2F0KGEuYi5zKTtcclxuICAgIGlmIChudWxsICE9IGEuYSAmJiAwICE9PSBhLmEuc2l6ZSkge1xyXG4gICAgICAgIHZhciBiID0gYS5jO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9iID0gX192YWx1ZXMoYS5hLnZhbHVlcygpKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGMgPSBfYy52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGIgPSBiLmNvbmNhdChjLnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlXzJfMSkgeyBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OyB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2MgJiYgIV9jLmRvbmUgJiYgKF9hID0gX2IucmV0dXJuKSkgX2EuY2FsbChfYik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYjtcclxuICAgIH1cclxuICAgIHJldHVybiBzYShhLmMpO1xyXG59XHJcbmZ1bmN0aW9uIGtkKCkgeyB9XHJcbmtkLnByb3RvdHlwZS5zdHJpbmdpZnkgPSBmdW5jdGlvbiAoYSkgeyByZXR1cm4gay5KU09OLnN0cmluZ2lmeShhLCB2b2lkIDApOyB9O1xyXG5rZC5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoYSkgeyByZXR1cm4gay5KU09OLnBhcnNlKGEsIHZvaWQgMCk7IH07XHJcbmZ1bmN0aW9uIGxkKCkgeyB0aGlzLmEgPSBuZXcga2Q7IH1cclxuZnVuY3Rpb24gbWQoYSwgYiwgYykgeyB2YXIgZCA9IGMgfHwgXCJcIjsgdHJ5IHtcclxuICAgIExjKGEsIGZ1bmN0aW9uIChlLCBmKSB7IHZhciBoID0gZTsgbihlKSAmJiAoaCA9IHZiKGUpKTsgYi5wdXNoKGQgKyBmICsgXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoaCkpOyB9KTtcclxufVxyXG5jYXRjaCAoZSkge1xyXG4gICAgdGhyb3cgYi5wdXNoKGQgKyBcInR5cGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoXCJfYmFkbWFwXCIpKSwgZTtcclxufSB9XHJcbmZ1bmN0aW9uIG5kKGEsIGIpIHsgdmFyIGMgPSBuZXcgUGI7IGlmIChrLkltYWdlKSB7XHJcbiAgICB2YXIgZCA9IG5ldyBJbWFnZTtcclxuICAgIGQub25sb2FkID0ga2Eob2QsIGMsIGQsIFwiVGVzdExvYWRJbWFnZTogbG9hZGVkXCIsICEwLCBiKTtcclxuICAgIGQub25lcnJvciA9IGthKG9kLCBjLCBkLCBcIlRlc3RMb2FkSW1hZ2U6IGVycm9yXCIsICExLCBiKTtcclxuICAgIGQub25hYm9ydCA9IGthKG9kLCBjLCBkLCBcIlRlc3RMb2FkSW1hZ2U6IGFib3J0XCIsICExLCBiKTtcclxuICAgIGQub250aW1lb3V0ID0ga2Eob2QsIGMsIGQsIFwiVGVzdExvYWRJbWFnZTogdGltZW91dFwiLCAhMSwgYik7XHJcbiAgICBrLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBpZiAoZC5vbnRpbWVvdXQpXHJcbiAgICAgICAgZC5vbnRpbWVvdXQoKTsgfSwgMUU0KTtcclxuICAgIGQuc3JjID0gYTtcclxufVxyXG5lbHNlXHJcbiAgICBiKCExKTsgfVxyXG5mdW5jdGlvbiBvZChhLCBiLCBjLCBkLCBlKSB7IHRyeSB7XHJcbiAgICBiLm9ubG9hZCA9IG51bGwsIGIub25lcnJvciA9IG51bGwsIGIub25hYm9ydCA9IG51bGwsIGIub250aW1lb3V0ID0gbnVsbCwgZShkKTtcclxufVxyXG5jYXRjaCAoZikgeyB9IH1cclxudmFyIHBkID0gay5KU09OLnBhcnNlO1xyXG5mdW5jdGlvbiBYKGEpIHsgRC5jYWxsKHRoaXMpOyB0aGlzLmhlYWRlcnMgPSBuZXcgUjsgdGhpcy5IID0gYSB8fCBudWxsOyB0aGlzLmIgPSAhMTsgdGhpcy5zID0gdGhpcy5hID0gbnVsbDsgdGhpcy5CID0gXCJcIjsgdGhpcy5oID0gMDsgdGhpcy5mID0gXCJcIjsgdGhpcy5nID0gdGhpcy5BID0gdGhpcy5sID0gdGhpcy51ID0gITE7IHRoaXMubyA9IDA7IHRoaXMubSA9IG51bGw7IHRoaXMuSSA9IHFkOyB0aGlzLkQgPSB0aGlzLkYgPSAhMTsgfVxyXG5yKFgsIEQpO1xyXG52YXIgcWQgPSBcIlwiLCByZCA9IC9eaHR0cHM/JC9pLCBzZCA9IFtcIlBPU1RcIiwgXCJQVVRcIl07XHJcbmcgPSBYLnByb3RvdHlwZTtcclxuZy5iYSA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XHJcbiAgICBpZiAodGhpcy5hKVxyXG4gICAgICAgIHRocm93IEVycm9yKFwiW2dvb2cubmV0LlhocklvXSBPYmplY3QgaXMgYWN0aXZlIHdpdGggYW5vdGhlciByZXF1ZXN0PVwiICsgdGhpcy5CICsgXCI7IG5ld1VyaT1cIiArIGEpO1xyXG4gICAgYiA9IGIgPyBiLnRvVXBwZXJDYXNlKCkgOiBcIkdFVFwiO1xyXG4gICAgdGhpcy5CID0gYTtcclxuICAgIHRoaXMuZiA9IFwiXCI7XHJcbiAgICB0aGlzLmggPSAwO1xyXG4gICAgdGhpcy51ID0gITE7XHJcbiAgICB0aGlzLmIgPSAhMDtcclxuICAgIHRoaXMuYSA9IG5ldyBYTUxIdHRwUmVxdWVzdDtcclxuICAgIHRoaXMucyA9IHRoaXMuSCA/IGJjKHRoaXMuSCkgOiBiYyhmYyk7XHJcbiAgICB0aGlzLmEub25yZWFkeXN0YXRlY2hhbmdlID0gcCh0aGlzLnphLCB0aGlzKTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5BID0gITAsIHRoaXMuYS5vcGVuKGIsIFN0cmluZyhhKSwgITApLCB0aGlzLkEgPSAhMTtcclxuICAgIH1cclxuICAgIGNhdGNoIChmKSB7XHJcbiAgICAgICAgdGQodGhpcywgZik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgYSA9IGMgfHwgXCJcIjtcclxuICAgIHZhciBlID0gbmV3IFIodGhpcy5oZWFkZXJzKTtcclxuICAgIGQgJiYgTGMoZCwgZnVuY3Rpb24gKGYsIGgpIHsgZS5zZXQoaCwgZik7IH0pO1xyXG4gICAgZCA9IHBhKGUuTCgpKTtcclxuICAgIGMgPSBrLkZvcm1EYXRhICYmIGEgaW5zdGFuY2VvZiBrLkZvcm1EYXRhO1xyXG4gICAgISgwIDw9XHJcbiAgICAgICAgbmEoc2QsIGIpKSB8fCBkIHx8IGMgfHwgZS5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOFwiKTtcclxuICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoZiwgaCkgeyB0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcihoLCBmKTsgfSwgdGhpcyk7XHJcbiAgICB0aGlzLkkgJiYgKHRoaXMuYS5yZXNwb25zZVR5cGUgPSB0aGlzLkkpO1xyXG4gICAgXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB0aGlzLmEgJiYgdGhpcy5hLndpdGhDcmVkZW50aWFscyAhPT0gdGhpcy5GICYmICh0aGlzLmEud2l0aENyZWRlbnRpYWxzID0gdGhpcy5GKTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdWQodGhpcyksIDAgPCB0aGlzLm8gJiYgKCh0aGlzLkQgPSB2ZCh0aGlzLmEpKSA/ICh0aGlzLmEudGltZW91dCA9IHRoaXMubywgdGhpcy5hLm9udGltZW91dCA9IHAodGhpcy54YSwgdGhpcykpIDogdGhpcy5tID0gSmIodGhpcy54YSwgdGhpcy5vLCB0aGlzKSksIHRoaXMubCA9ICEwLCB0aGlzLmEuc2VuZChhKSwgdGhpcy5sID0gITE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZikge1xyXG4gICAgICAgIHRkKHRoaXMsIGYpO1xyXG4gICAgfVxyXG59O1xyXG5mdW5jdGlvbiB2ZChhKSB7IHJldHVybiB4ICYmIFJhKDkpICYmIFwibnVtYmVyXCIgPT09IHR5cGVvZiBhLnRpbWVvdXQgJiYgdm9pZCAwICE9PSBhLm9udGltZW91dDsgfVxyXG5mdW5jdGlvbiBxYShhKSB7IHJldHVybiBcImNvbnRlbnQtdHlwZVwiID09IGEudG9Mb3dlckNhc2UoKTsgfVxyXG5nLnhhID0gZnVuY3Rpb24gKCkgeyBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBnb29nICYmIHRoaXMuYSAmJiAodGhpcy5mID0gXCJUaW1lZCBvdXQgYWZ0ZXIgXCIgKyB0aGlzLm8gKyBcIm1zLCBhYm9ydGluZ1wiLCB0aGlzLmggPSA4LCB0aGlzLmRpc3BhdGNoRXZlbnQoXCJ0aW1lb3V0XCIpLCB0aGlzLmFib3J0KDgpKTsgfTtcclxuZnVuY3Rpb24gdGQoYSwgYikgeyBhLmIgPSAhMTsgYS5hICYmIChhLmcgPSAhMCwgYS5hLmFib3J0KCksIGEuZyA9ICExKTsgYS5mID0gYjsgYS5oID0gNTsgd2QoYSk7IHhkKGEpOyB9XHJcbmZ1bmN0aW9uIHdkKGEpIHsgYS51IHx8IChhLnUgPSAhMCwgYS5kaXNwYXRjaEV2ZW50KFwiY29tcGxldGVcIiksIGEuZGlzcGF0Y2hFdmVudChcImVycm9yXCIpKTsgfVxyXG5nLmFib3J0ID0gZnVuY3Rpb24gKGEpIHsgdGhpcy5hICYmIHRoaXMuYiAmJiAodGhpcy5iID0gITEsIHRoaXMuZyA9ICEwLCB0aGlzLmEuYWJvcnQoKSwgdGhpcy5nID0gITEsIHRoaXMuaCA9IGEgfHwgNywgdGhpcy5kaXNwYXRjaEV2ZW50KFwiY29tcGxldGVcIiksIHRoaXMuZGlzcGF0Y2hFdmVudChcImFib3J0XCIpLCB4ZCh0aGlzKSk7IH07XHJcbmcuRyA9IGZ1bmN0aW9uICgpIHsgdGhpcy5hICYmICh0aGlzLmIgJiYgKHRoaXMuYiA9ICExLCB0aGlzLmcgPSAhMCwgdGhpcy5hLmFib3J0KCksIHRoaXMuZyA9ICExKSwgeGQodGhpcywgITApKTsgWC5TLkcuY2FsbCh0aGlzKTsgfTtcclxuZy56YSA9IGZ1bmN0aW9uICgpIHsgdGhpcy5qIHx8ICh0aGlzLkEgfHwgdGhpcy5sIHx8IHRoaXMuZyA/IHlkKHRoaXMpIDogdGhpcy5UYSgpKTsgfTtcclxuZy5UYSA9IGZ1bmN0aW9uICgpIHsgeWQodGhpcyk7IH07XHJcbmZ1bmN0aW9uIHlkKGEpIHtcclxuICAgIGlmIChhLmIgJiYgXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgZ29vZyAmJiAoIWEuc1sxXSB8fCA0ICE9IE4oYSkgfHwgMiAhPSBhLlgoKSkpXHJcbiAgICAgICAgaWYgKGEubCAmJiA0ID09IE4oYSkpXHJcbiAgICAgICAgICAgIEpiKGEuemEsIDAsIGEpO1xyXG4gICAgICAgIGVsc2UgaWYgKGEuZGlzcGF0Y2hFdmVudChcInJlYWR5c3RhdGVjaGFuZ2VcIiksIDQgPT0gTihhKSkge1xyXG4gICAgICAgICAgICBhLmIgPSAhMTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciBiID0gYS5YKCk7XHJcbiAgICAgICAgICAgICAgICBhOiBzd2l0Y2ggKGIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMTpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMjpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwNDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwNjpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDMwNDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDEyMjM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gITA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogYyA9ICExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShkID0gYykpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSA9IDAgPT09IGIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBTdHJpbmcoYS5CKS5tYXRjaChOYylbMV0gfHwgbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmICYmIGsuc2VsZiAmJiBrLnNlbGYubG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoID0gay5zZWxmLmxvY2F0aW9uLnByb3RvY29sO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGguc3Vic3RyKDAsIGgubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZSA9ICFyZC50ZXN0KGYgPyBmLnRvTG93ZXJDYXNlKCkgOiBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZCA9IGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZClcclxuICAgICAgICAgICAgICAgICAgICBhLmRpc3BhdGNoRXZlbnQoXCJjb21wbGV0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kaXNwYXRjaEV2ZW50KFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGEuaCA9IDY7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG0gPSAyIDwgTihhKSA/IGEuYS5zdGF0dXNUZXh0IDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGEuZiA9IG0gKyBcIiBbXCIgKyBhLlgoKSArIFwiXVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHdkKGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgeGQoYSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbn1cclxuZnVuY3Rpb24geGQoYSwgYikgeyBpZiAoYS5hKSB7XHJcbiAgICB1ZChhKTtcclxuICAgIHZhciBjID0gYS5hLCBkID0gYS5zWzBdID8gYWEgOiBudWxsO1xyXG4gICAgYS5hID0gbnVsbDtcclxuICAgIGEucyA9IG51bGw7XHJcbiAgICBiIHx8IGEuZGlzcGF0Y2hFdmVudChcInJlYWR5XCIpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGQ7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkgeyB9XHJcbn0gfVxyXG5mdW5jdGlvbiB1ZChhKSB7IGEuYSAmJiBhLkQgJiYgKGEuYS5vbnRpbWVvdXQgPSBudWxsKTsgYS5tICYmIChrLmNsZWFyVGltZW91dChhLm0pLCBhLm0gPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBOKGEpIHsgcmV0dXJuIGEuYSA/IGEuYS5yZWFkeVN0YXRlIDogMDsgfVxyXG5nLlggPSBmdW5jdGlvbiAoKSB7IHRyeSB7XHJcbiAgICByZXR1cm4gMiA8IE4odGhpcykgPyB0aGlzLmEuc3RhdHVzIDogLTE7XHJcbn1cclxuY2F0Y2ggKGEpIHtcclxuICAgIHJldHVybiAtMTtcclxufSB9O1xyXG5nLiQgPSBmdW5jdGlvbiAoKSB7IHRyeSB7XHJcbiAgICByZXR1cm4gdGhpcy5hID8gdGhpcy5hLnJlc3BvbnNlVGV4dCA6IFwiXCI7XHJcbn1cclxuY2F0Y2ggKGEpIHtcclxuICAgIHJldHVybiBcIlwiO1xyXG59IH07XHJcbmcuTmEgPSBmdW5jdGlvbiAoYSkgeyBpZiAodGhpcy5hKSB7XHJcbiAgICB2YXIgYiA9IHRoaXMuYS5yZXNwb25zZVRleHQ7XHJcbiAgICBhICYmIDAgPT0gYi5pbmRleE9mKGEpICYmIChiID0gYi5zdWJzdHJpbmcoYS5sZW5ndGgpKTtcclxuICAgIHJldHVybiBwZChiKTtcclxufSB9O1xyXG5nLnVhID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5oOyB9O1xyXG5nLlFhID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHRoaXMuZiA/IHRoaXMuZiA6IFN0cmluZyh0aGlzLmYpOyB9O1xyXG5mdW5jdGlvbiB6ZChhKSB7IHZhciBiID0gXCJcIjsgQWEoYSwgZnVuY3Rpb24gKGMsIGQpIHsgYiArPSBkOyBiICs9IFwiOlwiOyBiICs9IGM7IGIgKz0gXCJcXHJcXG5cIjsgfSk7IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIEFkKGEsIGIsIGMpIHsgYToge1xyXG4gICAgZm9yIChkIGluIGMpIHtcclxuICAgICAgICB2YXIgZCA9ICExO1xyXG4gICAgICAgIGJyZWFrIGE7XHJcbiAgICB9XHJcbiAgICBkID0gITA7XHJcbn0gZCB8fCAoYyA9IHpkKGMpLCBcInN0cmluZ1wiID09PSB0eXBlb2YgYSA/IChudWxsICE9IGMgJiYgZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSkpIDogUShhLCBiLCBjKSk7IH1cclxuZnVuY3Rpb24gQmQoYSwgYiwgYykgeyByZXR1cm4gYyAmJiBjLmludGVybmFsQ2hhbm5lbFBhcmFtcyA/IGMuaW50ZXJuYWxDaGFubmVsUGFyYW1zW2FdIHx8IGIgOiBiOyB9XHJcbmZ1bmN0aW9uIENkKGEpIHtcclxuICAgIHRoaXMucGEgPSAwO1xyXG4gICAgdGhpcy5nID0gW107XHJcbiAgICB0aGlzLmMgPSBuZXcgUGI7XHJcbiAgICB0aGlzLmdhID0gdGhpcy5sYSA9IHRoaXMuQiA9IHRoaXMuZmEgPSB0aGlzLmEgPSB0aGlzLm5hID0gdGhpcy5BID0gdGhpcy5XID0gdGhpcy5pID0gdGhpcy5PID0gdGhpcy5sID0gbnVsbDtcclxuICAgIHRoaXMuTGEgPSB0aGlzLlIgPSAwO1xyXG4gICAgdGhpcy5JYSA9IEJkKFwiZmFpbEZhc3RcIiwgITEsIGEpO1xyXG4gICAgdGhpcy5IID0gdGhpcy5tID0gdGhpcy5qID0gdGhpcy5oID0gdGhpcy5mID0gbnVsbDtcclxuICAgIHRoaXMuVCA9ICEwO1xyXG4gICAgdGhpcy5JID0gdGhpcy5vYSA9IHRoaXMuUCA9IC0xO1xyXG4gICAgdGhpcy5VID0gdGhpcy5vID0gdGhpcy51ID0gMDtcclxuICAgIHRoaXMuRmEgPSBCZChcImJhc2VSZXRyeURlbGF5TXNcIiwgNUUzLCBhKTtcclxuICAgIHRoaXMuTWEgPSBCZChcInJldHJ5RGVsYXlTZWVkTXNcIiwgMUU0LCBhKTtcclxuICAgIHRoaXMuSmEgPSBCZChcImZvcndhcmRDaGFubmVsTWF4UmV0cmllc1wiLCAyLCBhKTtcclxuICAgIHRoaXMubWEgPSBCZChcImZvcndhcmRDaGFubmVsUmVxdWVzdFRpbWVvdXRNc1wiLCAyRTQsIGEpO1xyXG4gICAgdGhpcy5LYSA9IGEgJiYgYS5nIHx8IHZvaWQgMDtcclxuICAgIHRoaXMuRCA9IHZvaWQgMDtcclxuICAgIHRoaXMuQyA9IGEgJiYgYS5zdXBwb3J0c0Nyb3NzRG9tYWluWGhyIHx8XHJcbiAgICAgICAgITE7XHJcbiAgICB0aGlzLkogPSBcIlwiO1xyXG4gICAgdGhpcy5iID0gbmV3IGdkKGEgJiYgYS5jb25jdXJyZW50UmVxdWVzdExpbWl0KTtcclxuICAgIHRoaXMua2EgPSBuZXcgbGQ7XHJcbiAgICB0aGlzLmRhID0gYSAmJiBhLmZhc3RIYW5kc2hha2UgfHwgITE7XHJcbiAgICB0aGlzLkdhID0gYSAmJiBhLmIgfHwgITE7XHJcbiAgICBhICYmIGEuZiAmJiAodGhpcy5jLmEgPSAhMSk7XHJcbiAgICBhICYmIGEuZm9yY2VMb25nUG9sbGluZyAmJiAodGhpcy5UID0gITEpO1xyXG4gICAgdGhpcy5WID0gIXRoaXMuZGEgJiYgdGhpcy5UICYmIGEgJiYgYS5jIHx8ICExO1xyXG4gICAgdGhpcy5lYSA9IHZvaWQgMDtcclxuICAgIHRoaXMuTiA9IDA7XHJcbiAgICB0aGlzLkYgPSAhMTtcclxuICAgIHRoaXMucyA9IG51bGw7XHJcbn1cclxuZyA9IENkLnByb3RvdHlwZTtcclxuZy5oYSA9IDg7XHJcbmcudiA9IDE7XHJcbmZ1bmN0aW9uIEpjKGEpIHsgRGQoYSk7IGlmICgzID09IGEudikge1xyXG4gICAgdmFyIGIgPSBhLlIrKywgYyA9IEwoYS5CKTtcclxuICAgIFEoYywgXCJTSURcIiwgYS5KKTtcclxuICAgIFEoYywgXCJSSURcIiwgYik7XHJcbiAgICBRKGMsIFwiVFlQRVwiLCBcInRlcm1pbmF0ZVwiKTtcclxuICAgIEVkKGEsIGMpO1xyXG4gICAgYiA9IG5ldyBLKGEsIGEuYywgYiwgdm9pZCAwKTtcclxuICAgIGIuSCA9IDI7XHJcbiAgICBiLmkgPSBsYyhMKGMpKTtcclxuICAgIGMgPSAhMTtcclxuICAgIGsubmF2aWdhdG9yICYmIGsubmF2aWdhdG9yLnNlbmRCZWFjb24gJiYgKGMgPSBrLm5hdmlnYXRvci5zZW5kQmVhY29uKGIuaS50b1N0cmluZygpLCBcIlwiKSk7XHJcbiAgICAhYyAmJiBrLkltYWdlICYmICgobmV3IEltYWdlKS5zcmMgPSBiLmksIGMgPSAhMCk7XHJcbiAgICBjIHx8IChiLmEgPSBvYyhiLmcsIG51bGwpLCBiLmEuYmEoYi5pKSk7XHJcbiAgICBiLnUgPSBxKCk7XHJcbiAgICBNKGIpO1xyXG59IEZkKGEpOyB9XHJcbmZ1bmN0aW9uIEJjKGEpIHsgYS5hICYmICh4YyhhKSwgYS5hLmNhbmNlbCgpLCBhLmEgPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBEZChhKSB7IEJjKGEpOyBhLmogJiYgKGsuY2xlYXJUaW1lb3V0KGEuaiksIGEuaiA9IG51bGwpOyBBYyhhKTsgYS5iLmNhbmNlbCgpOyBhLmggJiYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiBhLmggJiYgay5jbGVhclRpbWVvdXQoYS5oKSwgYS5oID0gbnVsbCk7IH1cclxuZnVuY3Rpb24gR2QoYSwgYikgeyBhLmcucHVzaChuZXcgZmQoYS5MYSsrLCBiKSk7IDMgPT0gYS52ICYmIEljKGEpOyB9XHJcbmZ1bmN0aW9uIEljKGEpIHsgaWQoYS5iKSB8fCBhLmggfHwgKGEuaCA9ICEwLCBDYihhLkJhLCBhKSwgYS51ID0gMCk7IH1cclxuZnVuY3Rpb24gSGQoYSwgYikgeyBpZiAoRGMoYS5iKSA+PSBhLmIuZiAtIChhLmggPyAxIDogMCkpXHJcbiAgICByZXR1cm4gITE7IGlmIChhLmgpXHJcbiAgICByZXR1cm4gYS5nID0gYi5zLmNvbmNhdChhLmcpLCAhMDsgaWYgKDEgPT0gYS52IHx8IDIgPT0gYS52IHx8IGEudSA+PSAoYS5JYSA/IDAgOiBhLkphKSlcclxuICAgIHJldHVybiAhMTsgYS5oID0gSShwKGEuQmEsIGEsIGIpLCBJZChhLCBhLnUpKTsgYS51Kys7IHJldHVybiAhMDsgfVxyXG5nLkJhID0gZnVuY3Rpb24gKGEpIHtcclxuICAgIGlmICh0aGlzLmgpXHJcbiAgICAgICAgaWYgKHRoaXMuaCA9IG51bGwsIDEgPT0gdGhpcy52KSB7XHJcbiAgICAgICAgICAgIGlmICghYSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5SID0gTWF0aC5mbG9vcigxRTUgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICAgICAgICAgIGEgPSB0aGlzLlIrKztcclxuICAgICAgICAgICAgICAgIHZhciBiID0gbmV3IEsodGhpcywgdGhpcy5jLCBhLCB2b2lkIDApLCBjID0gdGhpcy5sO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5PICYmIChjID8gKGMgPSBCYShjKSwgRGEoYywgdGhpcy5PKSkgOiBjID0gdGhpcy5PKTtcclxuICAgICAgICAgICAgICAgIG51bGwgPT09IHRoaXMuaSAmJiAoYi5CID0gYyk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhKVxyXG4gICAgICAgICAgICAgICAgICAgIGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9IGQgPSAwOyBlIDwgdGhpcy5nLmxlbmd0aDsgZSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSB0aGlzLmdbZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwiX19kYXRhX19cIiBpbiBmLmEgJiYgKGYgPSBmLmEuX19kYXRhX18sIFwic3RyaW5nXCIgPT09IHR5cGVvZiBmKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gZi5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodm9pZCAwID09PSBmKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZCArPSBmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDQwOTYgPCBkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICg0MDk2ID09PSBkIHx8IGUgPT09IHRoaXMuZy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGUgKyAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZCA9IDFFMztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgZCA9IDFFMztcclxuICAgICAgICAgICAgICAgIGQgPSBKZCh0aGlzLCBiLCBkKTtcclxuICAgICAgICAgICAgICAgIGUgPSBMKHRoaXMuQik7XHJcbiAgICAgICAgICAgICAgICBRKGUsIFwiUklEXCIsIGEpO1xyXG4gICAgICAgICAgICAgICAgUShlLCBcIkNWRVJcIiwgMjIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5BICYmIFEoZSwgXCJYLUhUVFAtU2Vzc2lvbi1JZFwiLCB0aGlzLkEpO1xyXG4gICAgICAgICAgICAgICAgRWQodGhpcywgZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmkgJiYgYyAmJiBBZChlLCB0aGlzLmksIGMpO1xyXG4gICAgICAgICAgICAgICAgRWModGhpcy5iLCBiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuR2EgJiYgUShlLCBcIlRZUEVcIiwgXCJpbml0XCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYSA/IChRKGUsIFwiJHJlcVwiLCBkKSwgUShlLCBcIlNJRFwiLCBcIm51bGxcIiksIGIuViA9ICEwLCBrYyhiLCBlLCBudWxsKSkgOiBrYyhiLCBlLCBkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudiA9IDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAzID09IHRoaXMudiAmJiAoYSA/IEtkKHRoaXMsIGEpIDogMCA9PSB0aGlzLmcubGVuZ3RoIHx8IGlkKHRoaXMuYikgfHwgS2QodGhpcykpO1xyXG59O1xyXG5mdW5jdGlvbiBLZChhLCBiKSB7IHZhciBjOyBiID8gYyA9IGIuZiA6IGMgPSBhLlIrKzsgdmFyIGQgPSBMKGEuQik7IFEoZCwgXCJTSURcIiwgYS5KKTsgUShkLCBcIlJJRFwiLCBjKTsgUShkLCBcIkFJRFwiLCBhLlApOyBFZChhLCBkKTsgYS5pICYmIGEubCAmJiBBZChkLCBhLmksIGEubCk7IGMgPSBuZXcgSyhhLCBhLmMsIGMsIGEudSArIDEpOyBudWxsID09PSBhLmkgJiYgKGMuQiA9IGEubCk7IGIgJiYgKGEuZyA9IGIucy5jb25jYXQoYS5nKSk7IGIgPSBKZChhLCBjLCAxRTMpOyBjLnNldFRpbWVvdXQoTWF0aC5yb3VuZCguNSAqIGEubWEpICsgTWF0aC5yb3VuZCguNSAqIGEubWEgKiBNYXRoLnJhbmRvbSgpKSk7IEVjKGEuYiwgYyk7IGtjKGMsIGQsIGIpOyB9XHJcbmZ1bmN0aW9uIEVkKGEsIGIpIHsgYS5mICYmIExjKHt9LCBmdW5jdGlvbiAoYywgZCkgeyBRKGIsIGQsIGMpOyB9KTsgfVxyXG5mdW5jdGlvbiBKZChhLCBiLCBjKSB7IGMgPSBNYXRoLm1pbihhLmcubGVuZ3RoLCBjKTsgdmFyIGQgPSBhLmYgPyBwKGEuZi5IYSwgYS5mLCBhKSA6IG51bGw7IGE6IGZvciAodmFyIGUgPSBhLmcsIGYgPSAtMTs7KSB7XHJcbiAgICB2YXIgaCA9IFtcImNvdW50PVwiICsgY107XHJcbiAgICAtMSA9PSBmID8gMCA8IGMgPyAoZiA9IGVbMF0uYiwgaC5wdXNoKFwib2ZzPVwiICsgZikpIDogZiA9IDAgOiBoLnB1c2goXCJvZnM9XCIgKyBmKTtcclxuICAgIGZvciAodmFyIG0gPSAhMCwgbCA9IDA7IGwgPCBjOyBsKyspIHtcclxuICAgICAgICB2YXIgdCA9IGVbbF0uYiwgQiA9IGVbbF0uYTtcclxuICAgICAgICB0IC09IGY7XHJcbiAgICAgICAgaWYgKDAgPiB0KVxyXG4gICAgICAgICAgICBmID0gTWF0aC5tYXgoMCwgZVtsXS5iIC0gMTAwKSwgbSA9ICExO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG1kKEIsIGgsIFwicmVxXCIgKyB0ICsgXCJfXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoICh6KSB7XHJcbiAgICAgICAgICAgICAgICBkICYmIGQoQik7XHJcbiAgICAgICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChtKSB7XHJcbiAgICAgICAgZCA9IGguam9pbihcIiZcIik7XHJcbiAgICAgICAgYnJlYWsgYTtcclxuICAgIH1cclxufSBhID0gYS5nLnNwbGljZSgwLCBjKTsgYi5zID0gYTsgcmV0dXJuIGQ7IH1cclxuZnVuY3Rpb24gSGMoYSkgeyBhLmEgfHwgYS5qIHx8IChhLlUgPSAxLCBDYihhLkFhLCBhKSwgYS5vID0gMCk7IH1cclxuZnVuY3Rpb24gQ2MoYSkgeyBpZiAoYS5hIHx8IGEuaiB8fCAzIDw9IGEubylcclxuICAgIHJldHVybiAhMTsgYS5VKys7IGEuaiA9IEkocChhLkFhLCBhKSwgSWQoYSwgYS5vKSk7IGEubysrOyByZXR1cm4gITA7IH1cclxuZy5BYSA9IGZ1bmN0aW9uICgpIHsgdGhpcy5qID0gbnVsbDsgTGQodGhpcyk7IGlmICh0aGlzLlYgJiYgISh0aGlzLkYgfHwgbnVsbCA9PSB0aGlzLmEgfHwgMCA+PSB0aGlzLk4pKSB7XHJcbiAgICB2YXIgYSA9IDIgKiB0aGlzLk47XHJcbiAgICB0aGlzLmMuaW5mbyhcIkJQIGRldGVjdGlvbiB0aW1lciBlbmFibGVkOiBcIiArIGEpO1xyXG4gICAgdGhpcy5zID0gSShwKHRoaXMuU2EsIHRoaXMpLCBhKTtcclxufSB9O1xyXG5nLlNhID0gZnVuY3Rpb24gKCkgeyB0aGlzLnMgJiYgKHRoaXMucyA9IG51bGwsIHRoaXMuYy5pbmZvKFwiQlAgZGV0ZWN0aW9uIHRpbWVvdXQgcmVhY2hlZC5cIiksIHRoaXMuYy5pbmZvKFwiQnVmZmVyaW5nIHByb3h5IGRldGVjdGVkIGFuZCBzd2l0Y2ggdG8gbG9uZy1wb2xsaW5nIVwiKSwgdGhpcy5IID0gITEsIHRoaXMuRiA9ICEwLCBCYyh0aGlzKSwgTGQodGhpcykpOyB9O1xyXG5mdW5jdGlvbiB4YyhhKSB7IG51bGwgIT0gYS5zICYmIChrLmNsZWFyVGltZW91dChhLnMpLCBhLnMgPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBMZChhKSB7IGEuYSA9IG5ldyBLKGEsIGEuYywgXCJycGNcIiwgYS5VKTsgbnVsbCA9PT0gYS5pICYmIChhLmEuQiA9IGEubCk7IGEuYS5PID0gMDsgdmFyIGIgPSBMKGEubGEpOyBRKGIsIFwiUklEXCIsIFwicnBjXCIpOyBRKGIsIFwiU0lEXCIsIGEuSik7IFEoYiwgXCJDSVwiLCBhLkggPyBcIjBcIiA6IFwiMVwiKTsgUShiLCBcIkFJRFwiLCBhLlApOyBFZChhLCBiKTsgUShiLCBcIlRZUEVcIiwgXCJ4bWxodHRwXCIpOyBhLmkgJiYgYS5sICYmIEFkKGIsIGEuaSwgYS5sKTsgYS5EICYmIGEuYS5zZXRUaW1lb3V0KGEuRCk7IHZhciBjID0gYS5hOyBhID0gYS5nYTsgYy5IID0gMTsgYy5pID0gbGMoTChiKSk7IGMuaiA9IG51bGw7IGMuSSA9ICEwOyBtYyhjLCBhKTsgfVxyXG5nLlJhID0gZnVuY3Rpb24gKCkgeyBudWxsICE9IHRoaXMubSAmJiAodGhpcy5tID0gbnVsbCwgQmModGhpcyksIENjKHRoaXMpLCBIKDE5KSk7IH07XHJcbmZ1bmN0aW9uIEFjKGEpIHsgbnVsbCAhPSBhLm0gJiYgKGsuY2xlYXJUaW1lb3V0KGEubSksIGEubSA9IG51bGwpOyB9XHJcbmZ1bmN0aW9uIHVjKGEsIGIpIHsgdmFyIGMgPSBudWxsOyBpZiAoYS5hID09IGIpIHtcclxuICAgIEFjKGEpO1xyXG4gICAgeGMoYSk7XHJcbiAgICBhLmEgPSBudWxsO1xyXG4gICAgdmFyIGQgPSAyO1xyXG59XHJcbmVsc2UgaWYgKHpjKGEuYiwgYikpXHJcbiAgICBjID0gYi5zLCBHYyhhLmIsIGIpLCBkID0gMTtcclxuZWxzZVxyXG4gICAgcmV0dXJuOyBhLkkgPSBiLk47IGlmICgwICE9IGEudilcclxuICAgIGlmIChiLmIpXHJcbiAgICAgICAgaWYgKDEgPT0gZCkge1xyXG4gICAgICAgICAgICBjID0gYi5qID8gYi5qLmxlbmd0aCA6IDA7XHJcbiAgICAgICAgICAgIGIgPSBxKCkgLSBiLnU7XHJcbiAgICAgICAgICAgIHZhciBlID0gYS51O1xyXG4gICAgICAgICAgICBkID0gVmIoKTtcclxuICAgICAgICAgICAgZC5kaXNwYXRjaEV2ZW50KG5ldyBZYihkLCBjLCBiLCBlKSk7XHJcbiAgICAgICAgICAgIEljKGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIEhjKGEpO1xyXG4gICAgZWxzZSBpZiAoZSA9IGIuaCwgMyA9PSBlIHx8IDAgPT0gZSAmJiAwIDwgYS5JIHx8ICEoMSA9PSBkICYmIEhkKGEsIGIpIHx8IDIgPT0gZCAmJiBDYyhhKSkpXHJcbiAgICAgICAgc3dpdGNoIChjICYmIDAgPCBjLmxlbmd0aCAmJiAoYiA9IGEuYiwgYi5jID0gYi5jLmNvbmNhdChjKSksIGUpIHtcclxuICAgICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgICAgICAgUChhLCA1KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgICAgICBQKGEsIDEwKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICBQKGEsIDYpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IFAoYSwgMik7XHJcbiAgICAgICAgfSB9XHJcbmZ1bmN0aW9uIElkKGEsIGIpIHsgdmFyIGMgPSBhLkZhICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYS5NYSk7IGEuZiB8fCAoYyAqPSAyKTsgcmV0dXJuIGMgKiBiOyB9XHJcbmZ1bmN0aW9uIFAoYSwgYikgeyBhLmMuaW5mbyhcIkVycm9yIGNvZGUgXCIgKyBiKTsgaWYgKDIgPT0gYikge1xyXG4gICAgdmFyIGMgPSBudWxsO1xyXG4gICAgYS5mICYmIChjID0gbnVsbCk7XHJcbiAgICB2YXIgZCA9IHAoYS5YYSwgYSk7XHJcbiAgICBjIHx8IChjID0gbmV3IFQoXCIvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9jbGVhcmRvdC5naWZcIiksIGsubG9jYXRpb24gJiYgXCJodHRwXCIgPT0gay5sb2NhdGlvbi5wcm90b2NvbCB8fCBQYyhjLCBcImh0dHBzXCIpLCBsYyhjKSk7XHJcbiAgICBuZChjLnRvU3RyaW5nKCksIGQpO1xyXG59XHJcbmVsc2VcclxuICAgIEgoMik7IGEudiA9IDA7IGEuZiAmJiBhLmYucmEoYik7IEZkKGEpOyBEZChhKTsgfVxyXG5nLlhhID0gZnVuY3Rpb24gKGEpIHsgYSA/ICh0aGlzLmMuaW5mbyhcIlN1Y2Nlc3NmdWxseSBwaW5nZWQgZ29vZ2xlLmNvbVwiKSwgSCgyKSkgOiAodGhpcy5jLmluZm8oXCJGYWlsZWQgdG8gcGluZyBnb29nbGUuY29tXCIpLCBIKDEpKTsgfTtcclxuZnVuY3Rpb24gRmQoYSkgeyBhLnYgPSAwOyBhLkkgPSAtMTsgaWYgKGEuZikge1xyXG4gICAgaWYgKDAgIT0gamQoYS5iKS5sZW5ndGggfHwgMCAhPSBhLmcubGVuZ3RoKVxyXG4gICAgICAgIGEuYi5jLmxlbmd0aCA9IDAsIHNhKGEuZyksIGEuZy5sZW5ndGggPSAwO1xyXG4gICAgYS5mLnFhKCk7XHJcbn0gfVxyXG5mdW5jdGlvbiBGYyhhLCBiLCBjKSB7IHZhciBkID0gYWQoYyk7IGlmIChcIlwiICE9IGQuYylcclxuICAgIGIgJiYgUWMoZCwgYiArIFwiLlwiICsgZC5jKSwgUmMoZCwgZC5oKTtcclxuZWxzZSB7XHJcbiAgICB2YXIgZSA9IGsubG9jYXRpb247XHJcbiAgICBkID0gYmQoZS5wcm90b2NvbCwgYiA/IGIgKyBcIi5cIiArIGUuaG9zdG5hbWUgOiBlLmhvc3RuYW1lLCArZS5wb3J0LCBjKTtcclxufSBhLlcgJiYgQWEoYS5XLCBmdW5jdGlvbiAoZiwgaCkgeyBRKGQsIGgsIGYpOyB9KTsgYiA9IGEuQTsgYyA9IGEubmE7IGIgJiYgYyAmJiBRKGQsIGIsIGMpOyBRKGQsIFwiVkVSXCIsIGEuaGEpOyBFZChhLCBkKTsgcmV0dXJuIGQ7IH1cclxuZnVuY3Rpb24gb2MoYSwgYikgeyBpZiAoYiAmJiAhYS5DKVxyXG4gICAgdGhyb3cgRXJyb3IoXCJDYW4ndCBjcmVhdGUgc2Vjb25kYXJ5IGRvbWFpbiBjYXBhYmxlIFhocklvIG9iamVjdC5cIik7IGIgPSBuZXcgWChhLkthKTsgYi5GID0gYS5DOyByZXR1cm4gYjsgfVxyXG5mdW5jdGlvbiBNZCgpIHsgfVxyXG5nID0gTWQucHJvdG90eXBlO1xyXG5nLnRhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnNhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnJhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnFhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLkhhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5mdW5jdGlvbiBOZCgpIHsgaWYgKHggJiYgISgxMCA8PSBOdW1iZXIoVWEpKSlcclxuICAgIHRocm93IEVycm9yKFwiRW52aXJvbm1lbnRhbCBlcnJvcjogbm8gYXZhaWxhYmxlIHRyYW5zcG9ydC5cIik7IH1cclxuTmQucHJvdG90eXBlLmEgPSBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gbmV3IFkoYSwgYik7IH07XHJcbmZ1bmN0aW9uIFkoYSwgYikge1xyXG4gICAgRC5jYWxsKHRoaXMpO1xyXG4gICAgdGhpcy5hID0gbmV3IENkKGIpO1xyXG4gICAgdGhpcy5sID0gYTtcclxuICAgIHRoaXMuYiA9IGIgJiYgYi5tZXNzYWdlVXJsUGFyYW1zIHx8IG51bGw7XHJcbiAgICBhID0gYiAmJiBiLm1lc3NhZ2VIZWFkZXJzIHx8IG51bGw7XHJcbiAgICBiICYmIGIuY2xpZW50UHJvdG9jb2xIZWFkZXJSZXF1aXJlZCAmJiAoYSA/IGFbXCJYLUNsaWVudC1Qcm90b2NvbFwiXSA9IFwid2ViY2hhbm5lbFwiIDogYSA9IHsgXCJYLUNsaWVudC1Qcm90b2NvbFwiOiBcIndlYmNoYW5uZWxcIiB9KTtcclxuICAgIHRoaXMuYS5sID0gYTtcclxuICAgIGEgPSBiICYmIGIuaW5pdE1lc3NhZ2VIZWFkZXJzIHx8IG51bGw7XHJcbiAgICBiICYmIGIubWVzc2FnZUNvbnRlbnRUeXBlICYmIChhID8gYVtcIlgtV2ViQ2hhbm5lbC1Db250ZW50LVR5cGVcIl0gPSBiLm1lc3NhZ2VDb250ZW50VHlwZSA6IGEgPSB7IFwiWC1XZWJDaGFubmVsLUNvbnRlbnQtVHlwZVwiOiBiLm1lc3NhZ2VDb250ZW50VHlwZSB9KTtcclxuICAgIGIgJiYgYi5hICYmIChhID8gYVtcIlgtV2ViQ2hhbm5lbC1DbGllbnQtUHJvZmlsZVwiXSA9IGIuYSA6IGEgPSB7IFwiWC1XZWJDaGFubmVsLUNsaWVudC1Qcm9maWxlXCI6IGIuYSB9KTtcclxuICAgIHRoaXMuYS5PID1cclxuICAgICAgICBhO1xyXG4gICAgKGEgPSBiICYmIGIuaHR0cEhlYWRlcnNPdmVyd3JpdGVQYXJhbSkgJiYgIXRhKGEpICYmICh0aGlzLmEuaSA9IGEpO1xyXG4gICAgdGhpcy5oID0gYiAmJiBiLnN1cHBvcnRzQ3Jvc3NEb21haW5YaHIgfHwgITE7XHJcbiAgICB0aGlzLmcgPSBiICYmIGIuc2VuZFJhd0pzb24gfHwgITE7XHJcbiAgICAoYiA9IGIgJiYgYi5odHRwU2Vzc2lvbklkUGFyYW0pICYmICF0YShiKSAmJiAodGhpcy5hLkEgPSBiLCBhID0gdGhpcy5iLCBudWxsICE9PSBhICYmIGIgaW4gYSAmJiAoYSA9IHRoaXMuYiwgYiBpbiBhICYmIGRlbGV0ZSBhW2JdKSk7XHJcbiAgICB0aGlzLmYgPSBuZXcgWih0aGlzKTtcclxufVxyXG5yKFksIEQpO1xyXG5nID0gWS5wcm90b3R5cGU7XHJcbmcuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IFkuUy5hZGRFdmVudExpc3RlbmVyLmNhbGwodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IFkuUy5yZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcuT2EgPSBmdW5jdGlvbiAoKSB7IHRoaXMuYS5mID0gdGhpcy5mOyB0aGlzLmggJiYgKHRoaXMuYS5DID0gITApOyB2YXIgYSA9IHRoaXMuYSwgYiA9IHRoaXMubCwgYyA9IHRoaXMuYiB8fCB2b2lkIDA7IEgoMCk7IGEuZmEgPSBiOyBhLlcgPSBjIHx8IHt9OyBhLkggPSBhLlQ7IGEuQiA9IEZjKGEsIG51bGwsIGEuZmEpOyBJYyhhKTsgfTtcclxuZy5jbG9zZSA9IGZ1bmN0aW9uICgpIHsgSmModGhpcy5hKTsgfTtcclxuZy5QYSA9IGZ1bmN0aW9uIChhKSB7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSkge1xyXG4gICAgdmFyIGIgPSB7fTtcclxuICAgIGIuX19kYXRhX18gPSBhO1xyXG4gICAgR2QodGhpcy5hLCBiKTtcclxufVxyXG5lbHNlXHJcbiAgICB0aGlzLmcgPyAoYiA9IHt9LCBiLl9fZGF0YV9fID0gdmIoYSksIEdkKHRoaXMuYSwgYikpIDogR2QodGhpcy5hLCBhKTsgfTtcclxuZy5HID0gZnVuY3Rpb24gKCkgeyB0aGlzLmEuZiA9IG51bGw7IGRlbGV0ZSB0aGlzLmY7IEpjKHRoaXMuYSk7IGRlbGV0ZSB0aGlzLmE7IFkuUy5HLmNhbGwodGhpcyk7IH07XHJcbmZ1bmN0aW9uIE9kKGEpIHsgZGMuY2FsbCh0aGlzKTsgdmFyIGIgPSBhLl9fc21fXzsgaWYgKGIpIHtcclxuICAgIGE6IHtcclxuICAgICAgICBmb3IgKHZhciBjIGluIGIpIHtcclxuICAgICAgICAgICAgYSA9IGM7XHJcbiAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEgPSB2b2lkIDA7XHJcbiAgICB9XHJcbiAgICAodGhpcy5jID0gYSkgPyAoYSA9IHRoaXMuYywgdGhpcy5kYXRhID0gbnVsbCAhPT0gYiAmJiBhIGluIGIgPyBiW2FdIDogdm9pZCAwKSA6IHRoaXMuZGF0YSA9IGI7XHJcbn1cclxuZWxzZVxyXG4gICAgdGhpcy5kYXRhID0gYTsgfVxyXG5yKE9kLCBkYyk7XHJcbmZ1bmN0aW9uIFBkKCkgeyBlYy5jYWxsKHRoaXMpOyB0aGlzLnN0YXR1cyA9IDE7IH1cclxucihQZCwgZWMpO1xyXG5mdW5jdGlvbiBaKGEpIHsgdGhpcy5hID0gYTsgfVxyXG5yKFosIE1kKTtcclxuWi5wcm90b3R5cGUudGEgPSBmdW5jdGlvbiAoKSB7IHRoaXMuYS5kaXNwYXRjaEV2ZW50KFwiYVwiKTsgfTtcclxuWi5wcm90b3R5cGUuc2EgPSBmdW5jdGlvbiAoYSkgeyB0aGlzLmEuZGlzcGF0Y2hFdmVudChuZXcgT2QoYSkpOyB9O1xyXG5aLnByb3RvdHlwZS5yYSA9IGZ1bmN0aW9uIChhKSB7IHRoaXMuYS5kaXNwYXRjaEV2ZW50KG5ldyBQZChhKSk7IH07XHJcbloucHJvdG90eXBlLnFhID0gZnVuY3Rpb24gKCkgeyB0aGlzLmEuZGlzcGF0Y2hFdmVudChcImJcIik7IH07IC8qXHJcblxuIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuXG4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5OZC5wcm90b3R5cGUuY3JlYXRlV2ViQ2hhbm5lbCA9IE5kLnByb3RvdHlwZS5hO1xyXG5ZLnByb3RvdHlwZS5zZW5kID0gWS5wcm90b3R5cGUuUGE7XHJcblkucHJvdG90eXBlLm9wZW4gPSBZLnByb3RvdHlwZS5PYTtcclxuWS5wcm90b3R5cGUuY2xvc2UgPSBZLnByb3RvdHlwZS5jbG9zZTtcclxuWmIuTk9fRVJST1IgPSAwO1xyXG5aYi5USU1FT1VUID0gODtcclxuWmIuSFRUUF9FUlJPUiA9IDY7XHJcbiRiLkNPTVBMRVRFID0gXCJjb21wbGV0ZVwiO1xyXG5jYy5FdmVudFR5cGUgPSBKO1xyXG5KLk9QRU4gPSBcImFcIjtcclxuSi5DTE9TRSA9IFwiYlwiO1xyXG5KLkVSUk9SID0gXCJjXCI7XHJcbkouTUVTU0FHRSA9IFwiZFwiO1xyXG5ELnByb3RvdHlwZS5saXN0ZW4gPSBELnByb3RvdHlwZS52YTtcclxuWC5wcm90b3R5cGUubGlzdGVuT25jZSA9IFgucHJvdG90eXBlLndhO1xyXG5YLnByb3RvdHlwZS5nZXRMYXN0RXJyb3IgPSBYLnByb3RvdHlwZS5RYTtcclxuWC5wcm90b3R5cGUuZ2V0TGFzdEVycm9yQ29kZSA9IFgucHJvdG90eXBlLnVhO1xyXG5YLnByb3RvdHlwZS5nZXRTdGF0dXMgPSBYLnByb3RvdHlwZS5YO1xyXG5YLnByb3RvdHlwZS5nZXRSZXNwb25zZUpzb24gPSBYLnByb3RvdHlwZS5OYTtcclxuWC5wcm90b3R5cGUuZ2V0UmVzcG9uc2VUZXh0ID0gWC5wcm90b3R5cGUuJDtcclxuWC5wcm90b3R5cGUuc2VuZCA9IFgucHJvdG90eXBlLmJhO1xyXG52YXIgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBOZDsgfTtcclxudmFyIEVycm9yQ29kZSA9IFpiO1xyXG52YXIgRXZlbnRUeXBlID0gJGI7XHJcbnZhciBXZWJDaGFubmVsID0gY2M7XHJcbnZhciBYaHJJbyA9IFg7XHJcblxyXG52YXIgZXNtID0ge1xyXG4gICAgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydDogY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCxcclxuICAgIEVycm9yQ29kZTogRXJyb3JDb2RlLFxyXG4gICAgRXZlbnRUeXBlOiBFdmVudFR5cGUsXHJcbiAgICBXZWJDaGFubmVsOiBXZWJDaGFubmVsLFxyXG4gICAgWGhySW86IFhocklvXHJcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVzbTtcbmV4cG9ydCB7IEVycm9yQ29kZSwgRXZlbnRUeXBlLCBXZWJDaGFubmVsLCBYaHJJbywgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@fortawesome/react-fontawesome/index.es.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@fortawesome/react-fontawesome/index.es.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 */ FontAwesomeIcon: () => (/* binding */ FontAwesomeIcon)\n/* harmony export */ });\n/* harmony import */ var _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fortawesome/fontawesome-svg-core */ \"./node_modules/@fortawesome/fontawesome-svg-core/index.mjs\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = \"development\" === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.icon) {\n return _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = (0,_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.icon)(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n border: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n beatFade: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n bounce: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n fade: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n flash: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n mask: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n maskId: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n fixedWidth: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n inverse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n flip: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n listItem: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n pull: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(['right', 'left']),\n pulse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n rotation: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([0, 90, 180, 270]),\n shake: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n spinPulse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n spinReverse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n symbol: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n titleId: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n transform: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)]),\n swapOpacity: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool)\n};\nvar convertCurry = convert.bind(null, react__WEBPACK_IMPORTED_MODULE_1__.createElement);\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lL2luZGV4LmVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWdFO0FBQzdCO0FBQ1Q7O0FBRTFCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixzQkFBc0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxjQUFjLHVCQUF1QjtBQUNyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0IsNkJBQTZCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSx5Q0FBeUMsU0FBUzs7QUFFbEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK1lBQStZO0FBQ2xaOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsR0FBRyxHQUFHOztBQUVOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7O0FBRUg7QUFDQSx3REFBd0Q7QUFDeEQ7O0FBRUEsMERBQTBEO0FBQzFEOztBQUVBLG1GQUFtRjtBQUNuRjs7QUFFQTs7QUFFQTtBQUNBLGVBQWUsYUFBb0I7QUFDbkMsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLG9FQUFLO0FBQ1gsV0FBVyxvRUFBSztBQUNoQixJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3R0FBd0c7QUFDeEc7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsNkNBQWdCO0FBQ25ELGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLG9FQUFLO0FBQzNGO0FBQ0EscUJBQXFCLHVFQUFJLDJFQUEyRSxpQ0FBaUM7QUFDckk7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsUUFBUSx3REFBYztBQUN0QixVQUFVLHdEQUFjO0FBQ3hCLFlBQVksd0RBQWM7QUFDMUIsVUFBVSx3REFBYztBQUN4QixhQUFhLDBEQUFnQjtBQUM3QixRQUFRLHdEQUFjO0FBQ3RCLFNBQVMsd0RBQWM7QUFDdkIsUUFBUSwyREFBbUIsRUFBRSwwREFBZ0IsRUFBRSx5REFBZSxFQUFFLDBEQUFnQjtBQUNoRixVQUFVLDBEQUFnQjtBQUMxQixjQUFjLHdEQUFjO0FBQzVCLFdBQVcsd0RBQWM7QUFDekIsUUFBUSx1REFBZTtBQUN2QixRQUFRLDJEQUFtQixFQUFFLDBEQUFnQixFQUFFLHlEQUFlLEVBQUUsMERBQWdCO0FBQ2hGLFlBQVksd0RBQWM7QUFDMUIsUUFBUSx1REFBZTtBQUN2QixTQUFTLHdEQUFjO0FBQ3ZCLFlBQVksdURBQWU7QUFDM0IsU0FBUyx3REFBYztBQUN2QixRQUFRLHVEQUFlO0FBQ3ZCLFFBQVEsd0RBQWM7QUFDdEIsYUFBYSx3REFBYztBQUMzQixlQUFlLHdEQUFjO0FBQzdCLFVBQVUsMkRBQW1CLEVBQUUsd0RBQWMsRUFBRSwwREFBZ0I7QUFDL0QsU0FBUywwREFBZ0I7QUFDekIsV0FBVywwREFBZ0I7QUFDM0IsYUFBYSwyREFBbUIsRUFBRSwwREFBZ0IsRUFBRSwwREFBZ0I7QUFDcEUsZUFBZSx3REFBYztBQUM3QjtBQUNBLHNDQUFzQyxnREFBbUI7O0FBRTlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUvaW5kZXguZXMuanM/MjBmZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZSwgaWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuICAgIGVudW1lcmFibGVPbmx5ICYmIChzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7XG4gICAgfSkpLCBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZDIodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IG51bGwgIT0gYXJndW1lbnRzW2ldID8gYXJndW1lbnRzW2ldIDoge307XG4gICAgaSAlIDIgPyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKSA6IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gIH0gOiBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgfSwgX3R5cGVvZihvYmopO1xufVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuXG4gIHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcblxuICB2YXIga2V5LCBpO1xuXG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc291cmNlU3ltYm9sS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAga2V5ID0gc291cmNlU3ltYm9sS2V5c1tpXTtcbiAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2UsIGtleSkpIGNvbnRpbnVlO1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBfaXRlcmFibGVUb0FycmF5KGFycikgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgX25vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5cbi8vIEdldCBDU1MgY2xhc3MgbGlzdCBmcm9tIGEgcHJvcHMgb2JqZWN0XG5mdW5jdGlvbiBjbGFzc0xpc3QocHJvcHMpIHtcbiAgdmFyIF9jbGFzc2VzO1xuXG4gIHZhciBiZWF0ID0gcHJvcHMuYmVhdCxcbiAgICAgIGZhZGUgPSBwcm9wcy5mYWRlLFxuICAgICAgYmVhdEZhZGUgPSBwcm9wcy5iZWF0RmFkZSxcbiAgICAgIGJvdW5jZSA9IHByb3BzLmJvdW5jZSxcbiAgICAgIHNoYWtlID0gcHJvcHMuc2hha2UsXG4gICAgICBmbGFzaCA9IHByb3BzLmZsYXNoLFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICBzcGluUHVsc2UgPSBwcm9wcy5zcGluUHVsc2UsXG4gICAgICBzcGluUmV2ZXJzZSA9IHByb3BzLnNwaW5SZXZlcnNlLFxuICAgICAgcHVsc2UgPSBwcm9wcy5wdWxzZSxcbiAgICAgIGZpeGVkV2lkdGggPSBwcm9wcy5maXhlZFdpZHRoLFxuICAgICAgaW52ZXJzZSA9IHByb3BzLmludmVyc2UsXG4gICAgICBib3JkZXIgPSBwcm9wcy5ib3JkZXIsXG4gICAgICBsaXN0SXRlbSA9IHByb3BzLmxpc3RJdGVtLFxuICAgICAgZmxpcCA9IHByb3BzLmZsaXAsXG4gICAgICBzaXplID0gcHJvcHMuc2l6ZSxcbiAgICAgIHJvdGF0aW9uID0gcHJvcHMucm90YXRpb24sXG4gICAgICBwdWxsID0gcHJvcHMucHVsbDsgLy8gbWFwIG9mIENTUyBjbGFzcyBuYW1lcyB0byBwcm9wZXJ0aWVzXG5cbiAgdmFyIGNsYXNzZXMgPSAoX2NsYXNzZXMgPSB7XG4gICAgJ2ZhLWJlYXQnOiBiZWF0LFxuICAgICdmYS1mYWRlJzogZmFkZSxcbiAgICAnZmEtYmVhdC1mYWRlJzogYmVhdEZhZGUsXG4gICAgJ2ZhLWJvdW5jZSc6IGJvdW5jZSxcbiAgICAnZmEtc2hha2UnOiBzaGFrZSxcbiAgICAnZmEtZmxhc2gnOiBmbGFzaCxcbiAgICAnZmEtc3Bpbic6IHNwaW4sXG4gICAgJ2ZhLXNwaW4tcmV2ZXJzZSc6IHNwaW5SZXZlcnNlLFxuICAgICdmYS1zcGluLXB1bHNlJzogc3BpblB1bHNlLFxuICAgICdmYS1wdWxzZSc6IHB1bHNlLFxuICAgICdmYS1mdyc6IGZpeGVkV2lkdGgsXG4gICAgJ2ZhLWludmVyc2UnOiBpbnZlcnNlLFxuICAgICdmYS1ib3JkZXInOiBib3JkZXIsXG4gICAgJ2ZhLWxpJzogbGlzdEl0ZW0sXG4gICAgJ2ZhLWZsaXAnOiBmbGlwID09PSB0cnVlLFxuICAgICdmYS1mbGlwLWhvcml6b250YWwnOiBmbGlwID09PSAnaG9yaXpvbnRhbCcgfHwgZmxpcCA9PT0gJ2JvdGgnLFxuICAgICdmYS1mbGlwLXZlcnRpY2FsJzogZmxpcCA9PT0gJ3ZlcnRpY2FsJyB8fCBmbGlwID09PSAnYm90aCdcbiAgfSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCBcImZhLVwiLmNvbmNhdChzaXplKSwgdHlwZW9mIHNpemUgIT09ICd1bmRlZmluZWQnICYmIHNpemUgIT09IG51bGwpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsIFwiZmEtcm90YXRlLVwiLmNvbmNhdChyb3RhdGlvbiksIHR5cGVvZiByb3RhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgcm90YXRpb24gIT09IG51bGwgJiYgcm90YXRpb24gIT09IDApLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzZXMsIFwiZmEtcHVsbC1cIi5jb25jYXQocHVsbCksIHR5cGVvZiBwdWxsICE9PSAndW5kZWZpbmVkJyAmJiBwdWxsICE9PSBudWxsKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCAnZmEtc3dhcC1vcGFjaXR5JywgcHJvcHMuc3dhcE9wYWNpdHkpLCBfY2xhc3Nlcyk7IC8vIG1hcCBvdmVyIGFsbCB0aGUga2V5cyBpbiB0aGUgY2xhc3NlcyBvYmplY3RcbiAgLy8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBrZXlzIHdoZXJlIHRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpcyBub3QgbnVsbFxuXG4gIHJldHVybiBPYmplY3Qua2V5cyhjbGFzc2VzKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBjbGFzc2VzW2tleV0gPyBrZXkgOiBudWxsO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBrZXk7XG4gIH0pO1xufVxuXG4vLyBDYW1lbGl6ZSB0YWtlbiBmcm9tIGh1bXBzXG4vLyBodW1wcyBpcyBjb3B5cmlnaHQgwqkgMjAxMisgRG9tIENocmlzdGllXG4vLyBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4vLyBQZXJmb3JtYW50IHdheSB0byBkZXRlcm1pbmUgaWYgb2JqZWN0IGNvZXJjZXMgdG8gYSBudW1iZXJcbmZ1bmN0aW9uIF9pc051bWVyaWNhbChvYmopIHtcbiAgb2JqID0gb2JqIC0gMDsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuXG4gIHJldHVybiBvYmogPT09IG9iajtcbn1cblxuZnVuY3Rpb24gY2FtZWxpemUoc3RyaW5nKSB7XG4gIGlmIChfaXNOdW1lcmljYWwoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG5cblxuICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvW1xcLV9cXHNdKyguKT8vZywgZnVuY3Rpb24gKG1hdGNoLCBjaHIpIHtcbiAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAnJztcbiAgfSk7IC8vIEVuc3VyZSAxc3QgY2hhciBpcyBhbHdheXMgbG93ZXJjYXNlXG5cbiAgcmV0dXJuIHN0cmluZy5zdWJzdHIoMCwgMSkudG9Mb3dlckNhc2UoKSArIHN0cmluZy5zdWJzdHIoMSk7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJzdHlsZVwiXTtcblxuZnVuY3Rpb24gY2FwaXRhbGl6ZSh2YWwpIHtcbiAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbn1cblxuZnVuY3Rpb24gc3R5bGVUb09iamVjdChzdHlsZSkge1xuICByZXR1cm4gc3R5bGUuc3BsaXQoJzsnKS5tYXAoZnVuY3Rpb24gKHMpIHtcbiAgICByZXR1cm4gcy50cmltKCk7XG4gIH0pLmZpbHRlcihmdW5jdGlvbiAocykge1xuICAgIHJldHVybiBzO1xuICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGFpcikge1xuICAgIHZhciBpID0gcGFpci5pbmRleE9mKCc6Jyk7XG4gICAgdmFyIHByb3AgPSBjYW1lbGl6ZShwYWlyLnNsaWNlKDAsIGkpKTtcbiAgICB2YXIgdmFsdWUgPSBwYWlyLnNsaWNlKGkgKyAxKS50cmltKCk7XG4gICAgcHJvcC5zdGFydHNXaXRoKCd3ZWJraXQnKSA/IGFjY1tjYXBpdGFsaXplKHByb3ApXSA9IHZhbHVlIDogYWNjW3Byb3BdID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0KGNyZWF0ZUVsZW1lbnQsIGVsZW1lbnQpIHtcbiAgdmFyIGV4dHJhUHJvcHMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHZhciBjaGlsZHJlbiA9IChlbGVtZW50LmNoaWxkcmVuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNvbnZlcnQoY3JlYXRlRWxlbWVudCwgY2hpbGQpO1xuICB9KTtcbiAgLyogZXNsaW50LWRpc2FibGUgZG90LW5vdGF0aW9uICovXG5cbiAgdmFyIG1peGlucyA9IE9iamVjdC5rZXlzKGVsZW1lbnQuYXR0cmlidXRlcyB8fCB7fSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgIHZhciB2YWwgPSBlbGVtZW50LmF0dHJpYnV0ZXNba2V5XTtcblxuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5hdHRyc1snY2xhc3NOYW1lJ10gPSB2YWw7XG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmF0dHJpYnV0ZXNbJ2NsYXNzJ107XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgIGFjYy5hdHRyc1snc3R5bGUnXSA9IHN0eWxlVG9PYmplY3QodmFsKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZignYXJpYS0nKSA9PT0gMCB8fCBrZXkuaW5kZXhPZignZGF0YS0nKSA9PT0gMCkge1xuICAgICAgICAgIGFjYy5hdHRyc1trZXkudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLmF0dHJzW2NhbWVsaXplKGtleSldID0gdmFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7XG4gICAgYXR0cnM6IHt9XG4gIH0pO1xuXG4gIHZhciBfZXh0cmFQcm9wcyRzdHlsZSA9IGV4dHJhUHJvcHMuc3R5bGUsXG4gICAgICBleGlzdGluZ1N0eWxlID0gX2V4dHJhUHJvcHMkc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX2V4dHJhUHJvcHMkc3R5bGUsXG4gICAgICByZW1haW5pbmcgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZXh0cmFQcm9wcywgX2V4Y2x1ZGVkKTtcblxuICBtaXhpbnMuYXR0cnNbJ3N0eWxlJ10gPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbWl4aW5zLmF0dHJzWydzdHlsZSddKSwgZXhpc3RpbmdTdHlsZSk7XG4gIC8qIGVzbGludC1lbmFibGUgKi9cblxuICByZXR1cm4gY3JlYXRlRWxlbWVudC5hcHBseSh2b2lkIDAsIFtlbGVtZW50LnRhZywgX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIG1peGlucy5hdHRycyksIHJlbWFpbmluZyldLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY2hpbGRyZW4pKSk7XG59XG5cbnZhciBQUk9EVUNUSU9OID0gZmFsc2U7XG5cbnRyeSB7XG4gIFBST0RVQ1RJT04gPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nO1xufSBjYXRjaCAoZSkge31cblxuZnVuY3Rpb24gbG9nICgpIHtcbiAgaWYgKCFQUk9EVUNUSU9OICYmIGNvbnNvbGUgJiYgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgX2NvbnNvbGU7XG5cbiAgICAoX2NvbnNvbGUgPSBjb25zb2xlKS5lcnJvci5hcHBseShfY29uc29sZSwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJY29uQXJncyhpY29uKSB7XG4gIC8vIHRoaXMgaGFzIGV2ZXJ5dGhpbmcgdGhhdCBpdCBuZWVkcyB0byBiZSByZW5kZXJlZCB3aGljaCBtZWFucyBpdCB3YXMgcHJvYmFibHkgaW1wb3J0ZWRcbiAgLy8gZGlyZWN0bHkgZnJvbSBhbiBpY29uIHN2ZyBwYWNrYWdlXG4gIGlmIChpY29uICYmIF90eXBlb2YoaWNvbikgPT09ICdvYmplY3QnICYmIGljb24ucHJlZml4ICYmIGljb24uaWNvbk5hbWUgJiYgaWNvbi5pY29uKSB7XG4gICAgcmV0dXJuIGljb247XG4gIH1cblxuICBpZiAocGFyc2UuaWNvbikge1xuICAgIHJldHVybiBwYXJzZS5pY29uKGljb24pO1xuICB9IC8vIGlmIHRoZSBpY29uIGlzIG51bGwsIHRoZXJlJ3Mgbm90aGluZyB0byBkb1xuXG5cbiAgaWYgKGljb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBpZiB0aGUgaWNvbiBpcyBhbiBvYmplY3QgYW5kIGhhcyBhIHByZWZpeCBhbmQgYW4gaWNvbiBuYW1lLCByZXR1cm4gaXRcblxuXG4gIGlmIChpY29uICYmIF90eXBlb2YoaWNvbikgPT09ICdvYmplY3QnICYmIGljb24ucHJlZml4ICYmIGljb24uaWNvbk5hbWUpIHtcbiAgICByZXR1cm4gaWNvbjtcbiAgfSAvLyBpZiBpdCdzIGFuIGFycmF5IHdpdGggbGVuZ3RoIG9mIHR3b1xuXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoaWNvbikgJiYgaWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAvLyB1c2UgdGhlIGZpcnN0IGl0ZW0gYXMgcHJlZml4LCBzZWNvbmQgYXMgaWNvbiBuYW1lXG4gICAgcmV0dXJuIHtcbiAgICAgIHByZWZpeDogaWNvblswXSxcbiAgICAgIGljb25OYW1lOiBpY29uWzFdXG4gICAgfTtcbiAgfSAvLyBpZiBpdCdzIGEgc3RyaW5nLCB1c2UgaXQgYXMgdGhlIGljb24gbmFtZVxuXG5cbiAgaWYgKHR5cGVvZiBpY29uID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBwcmVmaXg6ICdmYXMnLFxuICAgICAgaWNvbk5hbWU6IGljb25cbiAgICB9O1xuICB9XG59XG5cbi8vIGNyZWF0ZXMgYW4gb2JqZWN0IHdpdGggYSBrZXkgb2Yga2V5XG4vLyBhbmQgYSB2YWx1ZSBvZiB2YWx1ZVxuLy8gaWYgY2VydGFpbiBjb25kaXRpb25zIGFyZSBtZXRcbmZ1bmN0aW9uIG9iamVjdFdpdGhLZXkoa2V5LCB2YWx1ZSkge1xuICAvLyBpZiB0aGUgdmFsdWUgaXMgYSBub24tZW1wdHkgYXJyYXlcbiAgLy8gb3IgaXQncyBub3QgYW4gYXJyYXkgYnV0IGl0IGlzIHRydXRoeVxuICAvLyB0aGVuIGNyZWF0ZSB0aGUgb2JqZWN0IHdpdGggdGhlIGtleSBhbmQgdGhlIHZhbHVlXG4gIC8vIGlmIG5vdCwgcmV0dXJuIGFuIGVtcHR5IGFycmF5XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZSA/IF9kZWZpbmVQcm9wZXJ0eSh7fSwga2V5LCB2YWx1ZSkgOiB7fTtcbn1cblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgYm9yZGVyOiBmYWxzZSxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgbWFzazogbnVsbCxcbiAgbWFza0lkOiBudWxsLFxuICBmaXhlZFdpZHRoOiBmYWxzZSxcbiAgaW52ZXJzZTogZmFsc2UsXG4gIGZsaXA6IGZhbHNlLFxuICBpY29uOiBudWxsLFxuICBsaXN0SXRlbTogZmFsc2UsXG4gIHB1bGw6IG51bGwsXG4gIHB1bHNlOiBmYWxzZSxcbiAgcm90YXRpb246IG51bGwsXG4gIHNpemU6IG51bGwsXG4gIHNwaW46IGZhbHNlLFxuICBzcGluUHVsc2U6IGZhbHNlLFxuICBzcGluUmV2ZXJzZTogZmFsc2UsXG4gIGJlYXQ6IGZhbHNlLFxuICBmYWRlOiBmYWxzZSxcbiAgYmVhdEZhZGU6IGZhbHNlLFxuICBib3VuY2U6IGZhbHNlLFxuICBzaGFrZTogZmFsc2UsXG4gIHN5bWJvbDogZmFsc2UsXG4gIHRpdGxlOiAnJyxcbiAgdGl0bGVJZDogbnVsbCxcbiAgdHJhbnNmb3JtOiBudWxsLFxuICBzd2FwT3BhY2l0eTogZmFsc2Vcbn07XG52YXIgRm9udEF3ZXNvbWVJY29uID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgdmFyIGFsbFByb3BzID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIGRlZmF1bHRQcm9wcyksIHByb3BzKTtcblxuICB2YXIgaWNvbkFyZ3MgPSBhbGxQcm9wcy5pY29uLFxuICAgICAgbWFza0FyZ3MgPSBhbGxQcm9wcy5tYXNrLFxuICAgICAgc3ltYm9sID0gYWxsUHJvcHMuc3ltYm9sLFxuICAgICAgY2xhc3NOYW1lID0gYWxsUHJvcHMuY2xhc3NOYW1lLFxuICAgICAgdGl0bGUgPSBhbGxQcm9wcy50aXRsZSxcbiAgICAgIHRpdGxlSWQgPSBhbGxQcm9wcy50aXRsZUlkLFxuICAgICAgbWFza0lkID0gYWxsUHJvcHMubWFza0lkO1xuICB2YXIgaWNvbkxvb2t1cCA9IG5vcm1hbGl6ZUljb25BcmdzKGljb25BcmdzKTtcbiAgdmFyIGNsYXNzZXMgPSBvYmplY3RXaXRoS2V5KCdjbGFzc2VzJywgW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShjbGFzc0xpc3QoYWxsUHJvcHMpKSwgX3RvQ29uc3VtYWJsZUFycmF5KChjbGFzc05hbWUgfHwgJycpLnNwbGl0KCcgJykpKSk7XG4gIHZhciB0cmFuc2Zvcm0gPSBvYmplY3RXaXRoS2V5KCd0cmFuc2Zvcm0nLCB0eXBlb2YgYWxsUHJvcHMudHJhbnNmb3JtID09PSAnc3RyaW5nJyA/IHBhcnNlLnRyYW5zZm9ybShhbGxQcm9wcy50cmFuc2Zvcm0pIDogYWxsUHJvcHMudHJhbnNmb3JtKTtcbiAgdmFyIG1hc2sgPSBvYmplY3RXaXRoS2V5KCdtYXNrJywgbm9ybWFsaXplSWNvbkFyZ3MobWFza0FyZ3MpKTtcbiAgdmFyIHJlbmRlcmVkSWNvbiA9IGljb24oaWNvbkxvb2t1cCwgX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIGNsYXNzZXMpLCB0cmFuc2Zvcm0pLCBtYXNrKSwge30sIHtcbiAgICBzeW1ib2w6IHN5bWJvbCxcbiAgICB0aXRsZTogdGl0bGUsXG4gICAgdGl0bGVJZDogdGl0bGVJZCxcbiAgICBtYXNrSWQ6IG1hc2tJZFxuICB9KSk7XG5cbiAgaWYgKCFyZW5kZXJlZEljb24pIHtcbiAgICBsb2coJ0NvdWxkIG5vdCBmaW5kIGljb24nLCBpY29uTG9va3VwKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBhYnN0cmFjdCA9IHJlbmRlcmVkSWNvbi5hYnN0cmFjdDtcbiAgdmFyIGV4dHJhUHJvcHMgPSB7XG4gICAgcmVmOiByZWZcbiAgfTtcbiAgT2JqZWN0LmtleXMoYWxsUHJvcHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICBpZiAoIWRlZmF1bHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBleHRyYVByb3BzW2tleV0gPSBhbGxQcm9wc1trZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjb252ZXJ0Q3VycnkoYWJzdHJhY3RbMF0sIGV4dHJhUHJvcHMpO1xufSk7XG5Gb250QXdlc29tZUljb24uZGlzcGxheU5hbWUgPSAnRm9udEF3ZXNvbWVJY29uJztcbkZvbnRBd2Vzb21lSWNvbi5wcm9wVHlwZXMgPSB7XG4gIGJlYXQ6IFByb3BUeXBlcy5ib29sLFxuICBib3JkZXI6IFByb3BUeXBlcy5ib29sLFxuICBiZWF0RmFkZTogUHJvcFR5cGVzLmJvb2wsXG4gIGJvdW5jZTogUHJvcFR5cGVzLmJvb2wsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZmFkZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZsYXNoOiBQcm9wVHlwZXMuYm9vbCxcbiAgbWFzazogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIG1hc2tJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZml4ZWRXaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gIGludmVyc2U6IFByb3BUeXBlcy5ib29sLFxuICBmbGlwOiBQcm9wVHlwZXMub25lT2YoW3RydWUsIGZhbHNlLCAnaG9yaXpvbnRhbCcsICd2ZXJ0aWNhbCcsICdib3RoJ10pLFxuICBpY29uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgbGlzdEl0ZW06IFByb3BUeXBlcy5ib29sLFxuICBwdWxsOiBQcm9wVHlwZXMub25lT2YoWydyaWdodCcsICdsZWZ0J10pLFxuICBwdWxzZTogUHJvcFR5cGVzLmJvb2wsXG4gIHJvdGF0aW9uOiBQcm9wVHlwZXMub25lT2YoWzAsIDkwLCAxODAsIDI3MF0pLFxuICBzaGFrZTogUHJvcFR5cGVzLmJvb2wsXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbJzJ4cycsICd4cycsICdzbScsICdsZycsICd4bCcsICcyeGwnLCAnMXgnLCAnMngnLCAnM3gnLCAnNHgnLCAnNXgnLCAnNngnLCAnN3gnLCAnOHgnLCAnOXgnLCAnMTB4J10pLFxuICBzcGluOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3BpblB1bHNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3BpblJldmVyc2U6IFByb3BUeXBlcy5ib29sLFxuICBzeW1ib2w6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0aXRsZUlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0cmFuc2Zvcm06IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgc3dhcE9wYWNpdHk6IFByb3BUeXBlcy5ib29sXG59O1xudmFyIGNvbnZlcnRDdXJyeSA9IGNvbnZlcnQuYmluZChudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KTtcblxuZXhwb3J0IHsgRm9udEF3ZXNvbWVJY29uIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@fortawesome/react-fontawesome/index.es.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@icons/material/CheckIcon.js":
+/*!***************************************************!*\
+ !*** ./node_modules/@icons/material/CheckIcon.js ***!
+ \***************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports[\"default\"] = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGljb25zL21hdGVyaWFsL0NoZWNrSWNvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7O0FBRUYsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsK0NBQStDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxzQkFBc0I7O0FBRTVNOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMENBQTBDO0FBQ2xFLEtBQUs7QUFDTCw0Q0FBNEMsOERBQThEO0FBQzFHO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BpY29ucy9tYXRlcmlhbC9DaGVja0ljb24uanM/YWE1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgREVGQVVMVF9TSVpFID0gMjQ7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBfcmVmJGZpbGwgPSBfcmVmLmZpbGwsXG4gICAgICBmaWxsID0gX3JlZiRmaWxsID09PSB1bmRlZmluZWQgPyAnY3VycmVudENvbG9yJyA6IF9yZWYkZmlsbCxcbiAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgd2lkdGggPSBfcmVmJHdpZHRoID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJHdpZHRoLFxuICAgICAgX3JlZiRoZWlnaHQgPSBfcmVmLmhlaWdodCxcbiAgICAgIGhlaWdodCA9IF9yZWYkaGVpZ2h0ID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJGhlaWdodCxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBbJ2ZpbGwnLCAnd2lkdGgnLCAnaGVpZ2h0JywgJ3N0eWxlJ10pO1xuXG4gIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAnc3ZnJyxcbiAgICBfZXh0ZW5kcyh7XG4gICAgICB2aWV3Qm94OiAnMCAwICcgKyBERUZBVUxUX1NJWkUgKyAnICcgKyBERUZBVUxUX1NJWkUsXG4gICAgICBzdHlsZTogX2V4dGVuZHMoeyBmaWxsOiBmaWxsLCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH0sIHN0eWxlKVxuICAgIH0sIHByb3BzKSxcbiAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncGF0aCcsIHsgZDogJ00yMSw3TDksMTlMMy41LDEzLjVMNC45MSwxMi4wOUw5LDE2LjE3TDE5LjU5LDUuNTlMMjEsN1onIH0pXG4gICk7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@icons/material/CheckIcon.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports[\"default\"] = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGljb25zL21hdGVyaWFsL1VuZm9sZE1vcmVIb3Jpem9udGFsSWNvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7O0FBRUYsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsK0NBQStDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxzQkFBc0I7O0FBRTVNOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMENBQTBDO0FBQ2xFLEtBQUs7QUFDTCw0Q0FBNEMsd0hBQXdIO0FBQ3BLO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BpY29ucy9tYXRlcmlhbC9VbmZvbGRNb3JlSG9yaXpvbnRhbEljb24uanM/ZjQ1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgREVGQVVMVF9TSVpFID0gMjQ7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBfcmVmJGZpbGwgPSBfcmVmLmZpbGwsXG4gICAgICBmaWxsID0gX3JlZiRmaWxsID09PSB1bmRlZmluZWQgPyAnY3VycmVudENvbG9yJyA6IF9yZWYkZmlsbCxcbiAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgd2lkdGggPSBfcmVmJHdpZHRoID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJHdpZHRoLFxuICAgICAgX3JlZiRoZWlnaHQgPSBfcmVmLmhlaWdodCxcbiAgICAgIGhlaWdodCA9IF9yZWYkaGVpZ2h0ID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJGhlaWdodCxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBbJ2ZpbGwnLCAnd2lkdGgnLCAnaGVpZ2h0JywgJ3N0eWxlJ10pO1xuXG4gIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAnc3ZnJyxcbiAgICBfZXh0ZW5kcyh7XG4gICAgICB2aWV3Qm94OiAnMCAwICcgKyBERUZBVUxUX1NJWkUgKyAnICcgKyBERUZBVUxUX1NJWkUsXG4gICAgICBzdHlsZTogX2V4dGVuZHMoeyBmaWxsOiBmaWxsLCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH0sIHN0eWxlKVxuICAgIH0sIHByb3BzKSxcbiAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncGF0aCcsIHsgZDogJ00xMiwxOC4xN0w4LjgzLDE1TDcuNDIsMTYuNDFMMTIsMjFMMTYuNTksMTYuNDFMMTUuMTcsMTVNMTIsNS44M0wxNS4xNyw5TDE2LjU4LDcuNTlMMTIsM0w3LjQxLDcuNTlMOC44Myw5TDEyLDUuODNaJyB9KVxuICApO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/index.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/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 _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./messages */ \"./node_modules/@rc-component/async-validator/es/messages.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n/* harmony import */ var _validator_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./validator/index */ \"./node_modules/@rc-component/async-validator/es/validator/index.js\");\n/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./interface */ \"./node_modules/@rc-component/async-validator/es/interface.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nvar Schema = /*#__PURE__*/function () {\n function Schema(descriptor) {\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, Schema);\n // ======================== Instance ========================\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this, \"rules\", null);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this, \"_messages\", _messages__WEBPACK_IMPORTED_MODULE_6__.messages);\n this.define(descriptor);\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Schema, [{\n key: \"define\",\n value: function define(rules) {\n var _this = this;\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rules) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n Object.keys(rules).forEach(function (name) {\n var item = rules[name];\n _this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n }, {\n key: \"messages\",\n value: function messages(_messages) {\n if (_messages) {\n this._messages = (0,_util__WEBPACK_IMPORTED_MODULE_7__.deepMerge)((0,_messages__WEBPACK_IMPORTED_MODULE_6__.newMessages)(), _messages);\n }\n return this._messages;\n }\n }, {\n key: \"validate\",\n value: function validate(source_) {\n var _this2 = this;\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n function complete(results) {\n var errors = [];\n var fields = {};\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n errors = (_errors = errors).concat.apply(_errors, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e));\n } else {\n errors.push(e);\n }\n }\n for (var i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = (0,_util__WEBPACK_IMPORTED_MODULE_7__.convertFieldsError)(errors);\n callback(errors, fields);\n }\n }\n if (options.messages) {\n var messages = this.messages();\n if (messages === _messages__WEBPACK_IMPORTED_MODULE_6__.messages) {\n messages = (0,_messages__WEBPACK_IMPORTED_MODULE_6__.newMessages)();\n }\n (0,_util__WEBPACK_IMPORTED_MODULE_7__.deepMerge)(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n var arr = _this2.rules[z];\n var value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, source);\n }\n value = source[z] = rule.transform(value);\n if (value !== undefined && value !== null) {\n rule.type = rule.type || (Array.isArray(value) ? 'array' : (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value));\n }\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rule);\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = _this2.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this2.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return (0,_util__WEBPACK_IMPORTED_MODULE_7__.asyncMap)(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rule.fields) === 'object' || (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullField(key, schema) {\n return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, schema), {}, {\n fullField: \"\".concat(rule.fullField, \".\").concat(key),\n fullFields: rule.fullFields ? [].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(rule.fullFields), [key]) : [key]\n });\n }\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n var filledErrors = errorList.map((0,_util__WEBPACK_IMPORTED_MODULE_7__.complementError)(rule, source));\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = [].concat(rule.message).map((0,_util__WEBPACK_IMPORTED_MODULE_7__.complementError)(rule, source));\n } else if (options.error) {\n filledErrors = [options.error(rule, (0,_util__WEBPACK_IMPORTED_MODULE_7__.format)(options.messages.required, rule.field))];\n }\n return doIt(filledErrors);\n }\n var fieldsSchema = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(function (key) {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, fieldsSchema), data.rule.fields);\n var paredFieldsSchema = {};\n Object.keys(fieldsSchema).forEach(function (field) {\n var fieldSchema = fieldsSchema[field];\n var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n });\n var schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push.apply(finalErrors, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(filledErrors));\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(errs));\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n var res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n var _console$error, _console;\n (_console$error = (_console = console).error) === null || _console$error === void 0 || _console$error.call(_console, error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || \"\".concat(rule.fullField || rule.field, \" fails\"));\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n }, source);\n }\n }, {\n key: \"getType\",\n value: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !_validator_index__WEBPACK_IMPORTED_MODULE_8__[\"default\"].hasOwnProperty(rule.type)) {\n throw new Error((0,_util__WEBPACK_IMPORTED_MODULE_7__.format)('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n }, {\n key: \"getValidationMethod\",\n value: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return _validator_index__WEBPACK_IMPORTED_MODULE_8__[\"default\"].required;\n }\n return _validator_index__WEBPACK_IMPORTED_MODULE_8__[\"default\"][this.getType(rule)] || undefined;\n }\n }]);\n return Schema;\n}();\n// ========================= Static =========================\n(0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Schema, \"register\", function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n _validator_index__WEBPACK_IMPORTED_MODULE_8__[\"default\"][type] = validator;\n});\n(0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Schema, \"warning\", _util__WEBPACK_IMPORTED_MODULE_7__.warning);\n(0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Schema, \"messages\", _messages__WEBPACK_IMPORTED_MODULE_6__.messages);\n(0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Schema, \"validators\", _validator_index__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Schema);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBcUU7QUFDUztBQUN0QjtBQUNnQjtBQUNOO0FBQ007QUFDRjtBQUM2QjtBQUN4RDtBQUNmOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxRkFBZTtBQUNuQjtBQUNBLElBQUkscUZBQWU7QUFDbkIsSUFBSSxxRkFBZSxvQkFBb0IsK0NBQWU7QUFDdEQ7QUFDQTtBQUNBLEVBQUUsa0ZBQVk7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLDZFQUFPO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsZ0RBQVMsQ0FBQyxzREFBVztBQUM5QztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELHdGQUFrQjtBQUNoRixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG9CQUFvQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixtQkFBbUIseURBQWtCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsK0NBQWU7QUFDeEMscUJBQXFCLHNEQUFXO0FBQ2hDO0FBQ0EsUUFBUSxnREFBUztBQUNqQjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLG9GQUFhLEdBQUc7QUFDdkM7QUFDQTtBQUNBO0FBQ0EseUVBQXlFLDZFQUFPO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWixtQkFBbUIsb0ZBQWEsR0FBRztBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSxhQUFhLCtDQUFRO0FBQ3JCO0FBQ0EseUVBQXlFLDZFQUFPLDhCQUE4Qiw2RUFBTztBQUNySDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLGFBQWE7QUFDNUQ7QUFDQSxvREFBb0Qsd0ZBQWtCO0FBQ3RFLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJDQUEyQyxzREFBZTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxzREFBZTtBQUMxRSxnQkFBZ0I7QUFDaEIsb0RBQW9ELDZDQUFNO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0EsMkJBQTJCLG9GQUFhLENBQUMsb0ZBQWEsR0FBRztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCx3RkFBa0I7QUFDdEU7QUFDQTtBQUNBLG9EQUFvRCx3RkFBa0I7QUFDdEU7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0Usd0RBQVU7QUFDMUUsd0JBQXdCLDZDQUFNO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3REFBVTtBQUN6QjtBQUNBLGFBQWEsd0RBQVU7QUFDdkI7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxxRkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0RBQVU7QUFDWixDQUFDO0FBQ0QscUZBQWUsb0JBQW9CLDBDQUFPO0FBQzFDLHFGQUFlLHFCQUFxQiwrQ0FBZTtBQUNuRCxxRkFBZSx1QkFBdUIsd0RBQVU7QUFDaEQsaUVBQWUsTUFBTSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvaW5kZXguanM/NDU3NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXlcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrXCI7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCB7IG1lc3NhZ2VzIGFzIGRlZmF1bHRNZXNzYWdlcywgbmV3TWVzc2FnZXMgfSBmcm9tIFwiLi9tZXNzYWdlc1wiO1xuaW1wb3J0IHsgYXN5bmNNYXAsIGNvbXBsZW1lbnRFcnJvciwgY29udmVydEZpZWxkc0Vycm9yLCBkZWVwTWVyZ2UsIGZvcm1hdCwgd2FybmluZyB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB2YWxpZGF0b3JzIGZyb20gXCIuL3ZhbGlkYXRvci9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlXCI7XG5cbi8qKlxuICogIEVuY2Fwc3VsYXRlcyBhIHZhbGlkYXRpb24gc2NoZW1hLlxuICpcbiAqICBAcGFyYW0gZGVzY3JpcHRvciBBbiBvYmplY3QgZGVjbGFyaW5nIHZhbGlkYXRpb24gcnVsZXNcbiAqICBmb3IgdGhpcyBzY2hlbWEuXG4gKi9cbnZhciBTY2hlbWEgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBTY2hlbWEoZGVzY3JpcHRvcikge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTY2hlbWEpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBJbnN0YW5jZSA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJydWxlc1wiLCBudWxsKTtcbiAgICBfZGVmaW5lUHJvcGVydHkodGhpcywgXCJfbWVzc2FnZXNcIiwgZGVmYXVsdE1lc3NhZ2VzKTtcbiAgICB0aGlzLmRlZmluZShkZXNjcmlwdG9yKTtcbiAgfVxuICBfY3JlYXRlQ2xhc3MoU2NoZW1hLCBbe1xuICAgIGtleTogXCJkZWZpbmVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVmaW5lKHJ1bGVzKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgaWYgKCFydWxlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb25maWd1cmUgYSBzY2hlbWEgd2l0aCBubyBydWxlcycpO1xuICAgICAgfVxuICAgICAgaWYgKF90eXBlb2YocnVsZXMpICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHJ1bGVzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1J1bGVzIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bGVzID0ge307XG4gICAgICBPYmplY3Qua2V5cyhydWxlcykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICB2YXIgaXRlbSA9IHJ1bGVzW25hbWVdO1xuICAgICAgICBfdGhpcy5ydWxlc1tuYW1lXSA9IEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogW2l0ZW1dO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm1lc3NhZ2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG1lc3NhZ2VzKF9tZXNzYWdlcykge1xuICAgICAgaWYgKF9tZXNzYWdlcykge1xuICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IGRlZXBNZXJnZShuZXdNZXNzYWdlcygpLCBfbWVzc2FnZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ2YWxpZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB2YWxpZGF0ZShzb3VyY2VfKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcbiAgICAgIHZhciBvID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHZhciBvYyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogZnVuY3Rpb24gKCkge307XG4gICAgICB2YXIgc291cmNlID0gc291cmNlXztcbiAgICAgIHZhciBvcHRpb25zID0gbztcbiAgICAgIHZhciBjYWxsYmFjayA9IG9jO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnJ1bGVzIHx8IE9iamVjdC5rZXlzKHRoaXMucnVsZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayhudWxsLCBzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc291cmNlKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNvbXBsZXRlKHJlc3VsdHMpIHtcbiAgICAgICAgdmFyIGVycm9ycyA9IFtdO1xuICAgICAgICB2YXIgZmllbGRzID0ge307XG4gICAgICAgIGZ1bmN0aW9uIGFkZChlKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIHtcbiAgICAgICAgICAgIHZhciBfZXJyb3JzO1xuICAgICAgICAgICAgZXJyb3JzID0gKF9lcnJvcnMgPSBlcnJvcnMpLmNvbmNhdC5hcHBseShfZXJyb3JzLCBfdG9Db25zdW1hYmxlQXJyYXkoZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvcnMucHVzaChlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgYWRkKHJlc3VsdHNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRzID0gY29udmVydEZpZWxkc0Vycm9yKGVycm9ycyk7XG4gICAgICAgICAgY2FsbGJhY2soZXJyb3JzLCBmaWVsZHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5tZXNzYWdlcykge1xuICAgICAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzKCk7XG4gICAgICAgIGlmIChtZXNzYWdlcyA9PT0gZGVmYXVsdE1lc3NhZ2VzKSB7XG4gICAgICAgICAgbWVzc2FnZXMgPSBuZXdNZXNzYWdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGRlZXBNZXJnZShtZXNzYWdlcywgb3B0aW9ucy5tZXNzYWdlcyk7XG4gICAgICAgIG9wdGlvbnMubWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzKCk7XG4gICAgICB9XG4gICAgICB2YXIgc2VyaWVzID0ge307XG4gICAgICB2YXIga2V5cyA9IG9wdGlvbnMua2V5cyB8fCBPYmplY3Qua2V5cyh0aGlzLnJ1bGVzKTtcbiAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoeikge1xuICAgICAgICB2YXIgYXJyID0gX3RoaXMyLnJ1bGVzW3pdO1xuICAgICAgICB2YXIgdmFsdWUgPSBzb3VyY2Vbel07XG4gICAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgdmFyIHJ1bGUgPSByO1xuICAgICAgICAgIGlmICh0eXBlb2YgcnVsZS50cmFuc2Zvcm0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGlmIChzb3VyY2UgPT09IHNvdXJjZV8pIHtcbiAgICAgICAgICAgICAgc291cmNlID0gX29iamVjdFNwcmVhZCh7fSwgc291cmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gc291cmNlW3pdID0gcnVsZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcnVsZS50eXBlID0gcnVsZS50eXBlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSA/ICdhcnJheScgOiBfdHlwZW9mKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2YgcnVsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcnVsZSA9IHtcbiAgICAgICAgICAgICAgdmFsaWRhdG9yOiBydWxlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBydWxlID0gX29iamVjdFNwcmVhZCh7fSwgcnVsZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmlsbCB2YWxpZGF0b3IuIFNraXAgaWYgbm90aGluZyBuZWVkIHRvIHZhbGlkYXRlXG4gICAgICAgICAgcnVsZS52YWxpZGF0b3IgPSBfdGhpczIuZ2V0VmFsaWRhdGlvbk1ldGhvZChydWxlKTtcbiAgICAgICAgICBpZiAoIXJ1bGUudmFsaWRhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJ1bGUuZmllbGQgPSB6O1xuICAgICAgICAgIHJ1bGUuZnVsbEZpZWxkID0gcnVsZS5mdWxsRmllbGQgfHwgejtcbiAgICAgICAgICBydWxlLnR5cGUgPSBfdGhpczIuZ2V0VHlwZShydWxlKTtcbiAgICAgICAgICBzZXJpZXNbel0gPSBzZXJpZXNbel0gfHwgW107XG4gICAgICAgICAgc2VyaWVzW3pdLnB1c2goe1xuICAgICAgICAgICAgcnVsZTogcnVsZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICAgICAgZmllbGQ6IHpcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHZhciBlcnJvckZpZWxkcyA9IHt9O1xuICAgICAgcmV0dXJuIGFzeW5jTWFwKHNlcmllcywgb3B0aW9ucywgZnVuY3Rpb24gKGRhdGEsIGRvSXQpIHtcbiAgICAgICAgdmFyIHJ1bGUgPSBkYXRhLnJ1bGU7XG4gICAgICAgIHZhciBkZWVwID0gKHJ1bGUudHlwZSA9PT0gJ29iamVjdCcgfHwgcnVsZS50eXBlID09PSAnYXJyYXknKSAmJiAoX3R5cGVvZihydWxlLmZpZWxkcykgPT09ICdvYmplY3QnIHx8IF90eXBlb2YocnVsZS5kZWZhdWx0RmllbGQpID09PSAnb2JqZWN0Jyk7XG4gICAgICAgIGRlZXAgPSBkZWVwICYmIChydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIGRhdGEudmFsdWUpO1xuICAgICAgICBydWxlLmZpZWxkID0gZGF0YS5maWVsZDtcbiAgICAgICAgZnVuY3Rpb24gYWRkRnVsbEZpZWxkKGtleSwgc2NoZW1hKSB7XG4gICAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc2NoZW1hKSwge30sIHtcbiAgICAgICAgICAgIGZ1bGxGaWVsZDogXCJcIi5jb25jYXQocnVsZS5mdWxsRmllbGQsIFwiLlwiKS5jb25jYXQoa2V5KSxcbiAgICAgICAgICAgIGZ1bGxGaWVsZHM6IHJ1bGUuZnVsbEZpZWxkcyA/IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkocnVsZS5mdWxsRmllbGRzKSwgW2tleV0pIDogW2tleV1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjYigpIHtcbiAgICAgICAgICB2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107XG4gICAgICAgICAgdmFyIGVycm9yTGlzdCA9IEFycmF5LmlzQXJyYXkoZSkgPyBlIDogW2VdO1xuICAgICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1dhcm5pbmcgJiYgZXJyb3JMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgU2NoZW1hLndhcm5pbmcoJ2FzeW5jLXZhbGlkYXRvcjonLCBlcnJvckxpc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3JMaXN0Lmxlbmd0aCAmJiBydWxlLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZXJyb3JMaXN0ID0gW10uY29uY2F0KHJ1bGUubWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmlsbCBlcnJvciBpbmZvXG4gICAgICAgICAgdmFyIGZpbGxlZEVycm9ycyA9IGVycm9yTGlzdC5tYXAoY29tcGxlbWVudEVycm9yKHJ1bGUsIHNvdXJjZSkpO1xuICAgICAgICAgIGlmIChvcHRpb25zLmZpcnN0ICYmIGZpbGxlZEVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGVycm9yRmllbGRzW3J1bGUuZmllbGRdID0gMTtcbiAgICAgICAgICAgIHJldHVybiBkb0l0KGZpbGxlZEVycm9ycyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZGVlcCkge1xuICAgICAgICAgICAgZG9JdChmaWxsZWRFcnJvcnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiBydWxlIGlzIHJlcXVpcmVkIGJ1dCB0aGUgdGFyZ2V0IG9iamVjdFxuICAgICAgICAgICAgLy8gZG9lcyBub3QgZXhpc3QgZmFpbCBhdCB0aGUgcnVsZSBsZXZlbCBhbmQgZG9uJ3RcbiAgICAgICAgICAgIC8vIGdvIGRlZXBlclxuICAgICAgICAgICAgaWYgKHJ1bGUucmVxdWlyZWQgJiYgIWRhdGEudmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKHJ1bGUubWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZmlsbGVkRXJyb3JzID0gW10uY29uY2F0KHJ1bGUubWVzc2FnZSkubWFwKGNvbXBsZW1lbnRFcnJvcihydWxlLCBzb3VyY2UpKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgZmlsbGVkRXJyb3JzID0gW29wdGlvbnMuZXJyb3IocnVsZSwgZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMucmVxdWlyZWQsIHJ1bGUuZmllbGQpKV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGRvSXQoZmlsbGVkRXJyb3JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmaWVsZHNTY2hlbWEgPSB7fTtcbiAgICAgICAgICAgIGlmIChydWxlLmRlZmF1bHRGaWVsZCkge1xuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhLnZhbHVlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgIGZpZWxkc1NjaGVtYVtrZXldID0gcnVsZS5kZWZhdWx0RmllbGQ7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRzU2NoZW1hID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBmaWVsZHNTY2hlbWEpLCBkYXRhLnJ1bGUuZmllbGRzKTtcbiAgICAgICAgICAgIHZhciBwYXJlZEZpZWxkc1NjaGVtYSA9IHt9O1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZmllbGRzU2NoZW1hKS5mb3JFYWNoKGZ1bmN0aW9uIChmaWVsZCkge1xuICAgICAgICAgICAgICB2YXIgZmllbGRTY2hlbWEgPSBmaWVsZHNTY2hlbWFbZmllbGRdO1xuICAgICAgICAgICAgICB2YXIgZmllbGRTY2hlbWFMaXN0ID0gQXJyYXkuaXNBcnJheShmaWVsZFNjaGVtYSkgPyBmaWVsZFNjaGVtYSA6IFtmaWVsZFNjaGVtYV07XG4gICAgICAgICAgICAgIHBhcmVkRmllbGRzU2NoZW1hW2ZpZWxkXSA9IGZpZWxkU2NoZW1hTGlzdC5tYXAoYWRkRnVsbEZpZWxkLmJpbmQobnVsbCwgZmllbGQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHNjaGVtYSA9IG5ldyBTY2hlbWEocGFyZWRGaWVsZHNTY2hlbWEpO1xuICAgICAgICAgICAgc2NoZW1hLm1lc3NhZ2VzKG9wdGlvbnMubWVzc2FnZXMpO1xuICAgICAgICAgICAgaWYgKGRhdGEucnVsZS5vcHRpb25zKSB7XG4gICAgICAgICAgICAgIGRhdGEucnVsZS5vcHRpb25zLm1lc3NhZ2VzID0gb3B0aW9ucy5tZXNzYWdlcztcbiAgICAgICAgICAgICAgZGF0YS5ydWxlLm9wdGlvbnMuZXJyb3IgPSBvcHRpb25zLmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NoZW1hLnZhbGlkYXRlKGRhdGEudmFsdWUsIGRhdGEucnVsZS5vcHRpb25zIHx8IG9wdGlvbnMsIGZ1bmN0aW9uIChlcnJzKSB7XG4gICAgICAgICAgICAgIHZhciBmaW5hbEVycm9ycyA9IFtdO1xuICAgICAgICAgICAgICBpZiAoZmlsbGVkRXJyb3JzICYmIGZpbGxlZEVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmaW5hbEVycm9ycy5wdXNoLmFwcGx5KGZpbmFsRXJyb3JzLCBfdG9Db25zdW1hYmxlQXJyYXkoZmlsbGVkRXJyb3JzKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGVycnMgJiYgZXJycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmaW5hbEVycm9ycy5wdXNoLmFwcGx5KGZpbmFsRXJyb3JzLCBfdG9Db25zdW1hYmxlQXJyYXkoZXJycykpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRvSXQoZmluYWxFcnJvcnMubGVuZ3RoID8gZmluYWxFcnJvcnMgOiBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVzO1xuICAgICAgICBpZiAocnVsZS5hc3luY1ZhbGlkYXRvcikge1xuICAgICAgICAgIHJlcyA9IHJ1bGUuYXN5bmNWYWxpZGF0b3IocnVsZSwgZGF0YS52YWx1ZSwgY2IsIGRhdGEuc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmIChydWxlLnZhbGlkYXRvcikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXMgPSBydWxlLnZhbGlkYXRvcihydWxlLCBkYXRhLnZhbHVlLCBjYiwgZGF0YS5zb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB2YXIgX2NvbnNvbGUkZXJyb3IsIF9jb25zb2xlO1xuICAgICAgICAgICAgKF9jb25zb2xlJGVycm9yID0gKF9jb25zb2xlID0gY29uc29sZSkuZXJyb3IpID09PSBudWxsIHx8IF9jb25zb2xlJGVycm9yID09PSB2b2lkIDAgfHwgX2NvbnNvbGUkZXJyb3IuY2FsbChfY29uc29sZSwgZXJyb3IpO1xuICAgICAgICAgICAgLy8gcmV0aHJvdyB0byByZXBvcnQgZXJyb3JcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1ZhbGlkYXRvckVycm9yKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNiKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY2IodHlwZW9mIHJ1bGUubWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJyA/IHJ1bGUubWVzc2FnZShydWxlLmZ1bGxGaWVsZCB8fCBydWxlLmZpZWxkKSA6IHJ1bGUubWVzc2FnZSB8fCBcIlwiLmNvbmNhdChydWxlLmZ1bGxGaWVsZCB8fCBydWxlLmZpZWxkLCBcIiBmYWlsc1wiKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgY2IocmVzKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICBjYihyZXMubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXMgJiYgcmVzLnRoZW4pIHtcbiAgICAgICAgICByZXMudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IoKTtcbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNiKGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBmdW5jdGlvbiAocmVzdWx0cykge1xuICAgICAgICBjb21wbGV0ZShyZXN1bHRzKTtcbiAgICAgIH0sIHNvdXJjZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFR5cGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VHlwZShydWxlKSB7XG4gICAgICBpZiAocnVsZS50eXBlID09PSB1bmRlZmluZWQgJiYgcnVsZS5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJ1bGUudHlwZSA9ICdwYXR0ZXJuJztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcnVsZS52YWxpZGF0b3IgIT09ICdmdW5jdGlvbicgJiYgcnVsZS50eXBlICYmICF2YWxpZGF0b3JzLmhhc093blByb3BlcnR5KHJ1bGUudHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdCgnVW5rbm93biBydWxlIHR5cGUgJXMnLCBydWxlLnR5cGUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBydWxlLnR5cGUgfHwgJ3N0cmluZyc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFZhbGlkYXRpb25NZXRob2RcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbk1ldGhvZChydWxlKSB7XG4gICAgICBpZiAodHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBydWxlLnZhbGlkYXRvcjtcbiAgICAgIH1cbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMocnVsZSk7XG4gICAgICB2YXIgbWVzc2FnZUluZGV4ID0ga2V5cy5pbmRleE9mKCdtZXNzYWdlJyk7XG4gICAgICBpZiAobWVzc2FnZUluZGV4ICE9PSAtMSkge1xuICAgICAgICBrZXlzLnNwbGljZShtZXNzYWdlSW5kZXgsIDEpO1xuICAgICAgfVxuICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxICYmIGtleXNbMF0gPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnMucmVxdWlyZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsaWRhdG9yc1t0aGlzLmdldFR5cGUocnVsZSldIHx8IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNjaGVtYTtcbn0oKTtcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT0gU3RhdGljID09PT09PT09PT09PT09PT09PT09PT09PT1cbl9kZWZpbmVQcm9wZXJ0eShTY2hlbWEsIFwicmVnaXN0ZXJcIiwgZnVuY3Rpb24gcmVnaXN0ZXIodHlwZSwgdmFsaWRhdG9yKSB7XG4gIGlmICh0eXBlb2YgdmFsaWRhdG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVnaXN0ZXIgYSB2YWxpZGF0b3IgYnkgdHlwZSwgdmFsaWRhdG9yIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH1cbiAgdmFsaWRhdG9yc1t0eXBlXSA9IHZhbGlkYXRvcjtcbn0pO1xuX2RlZmluZVByb3BlcnR5KFNjaGVtYSwgXCJ3YXJuaW5nXCIsIHdhcm5pbmcpO1xuX2RlZmluZVByb3BlcnR5KFNjaGVtYSwgXCJtZXNzYWdlc1wiLCBkZWZhdWx0TWVzc2FnZXMpO1xuX2RlZmluZVByb3BlcnR5KFNjaGVtYSwgXCJ2YWxpZGF0b3JzXCIsIHZhbGlkYXRvcnMpO1xuZXhwb3J0IGRlZmF1bHQgU2NoZW1hOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/index.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/interface.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/interface.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/messages.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/messages.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 */ messages: () => (/* binding */ messages),\n/* harmony export */ newMessages: () => (/* binding */ newMessages)\n/* harmony export */ });\nfunction newMessages() {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvbWVzc2FnZXMuanM/MGNmNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbmV3TWVzc2FnZXMoKSB7XG4gIHJldHVybiB7XG4gICAgZGVmYXVsdDogJ1ZhbGlkYXRpb24gZXJyb3Igb24gZmllbGQgJXMnLFxuICAgIHJlcXVpcmVkOiAnJXMgaXMgcmVxdWlyZWQnLFxuICAgIGVudW06ICclcyBtdXN0IGJlIG9uZSBvZiAlcycsXG4gICAgd2hpdGVzcGFjZTogJyVzIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgZGF0ZToge1xuICAgICAgZm9ybWF0OiAnJXMgZGF0ZSAlcyBpcyBpbnZhbGlkIGZvciBmb3JtYXQgJXMnLFxuICAgICAgcGFyc2U6ICclcyBkYXRlIGNvdWxkIG5vdCBiZSBwYXJzZWQsICVzIGlzIGludmFsaWQgJyxcbiAgICAgIGludmFsaWQ6ICclcyBkYXRlICVzIGlzIGludmFsaWQnXG4gICAgfSxcbiAgICB0eXBlczoge1xuICAgICAgc3RyaW5nOiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgbWV0aG9kOiAnJXMgaXMgbm90IGEgJXMgKGZ1bmN0aW9uKScsXG4gICAgICBhcnJheTogJyVzIGlzIG5vdCBhbiAlcycsXG4gICAgICBvYmplY3Q6ICclcyBpcyBub3QgYW4gJXMnLFxuICAgICAgbnVtYmVyOiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgZGF0ZTogJyVzIGlzIG5vdCBhICVzJyxcbiAgICAgIGJvb2xlYW46ICclcyBpcyBub3QgYSAlcycsXG4gICAgICBpbnRlZ2VyOiAnJXMgaXMgbm90IGFuICVzJyxcbiAgICAgIGZsb2F0OiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgcmVnZXhwOiAnJXMgaXMgbm90IGEgdmFsaWQgJXMnLFxuICAgICAgZW1haWw6ICclcyBpcyBub3QgYSB2YWxpZCAlcycsXG4gICAgICB1cmw6ICclcyBpcyBub3QgYSB2YWxpZCAlcycsXG4gICAgICBoZXg6ICclcyBpcyBub3QgYSB2YWxpZCAlcydcbiAgICB9LFxuICAgIHN0cmluZzoge1xuICAgICAgbGVuOiAnJXMgbXVzdCBiZSBleGFjdGx5ICVzIGNoYXJhY3RlcnMnLFxuICAgICAgbWluOiAnJXMgbXVzdCBiZSBhdCBsZWFzdCAlcyBjaGFyYWN0ZXJzJyxcbiAgICAgIG1heDogJyVzIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJyxcbiAgICAgIHJhbmdlOiAnJXMgbXVzdCBiZSBiZXR3ZWVuICVzIGFuZCAlcyBjaGFyYWN0ZXJzJ1xuICAgIH0sXG4gICAgbnVtYmVyOiB7XG4gICAgICBsZW46ICclcyBtdXN0IGVxdWFsICVzJyxcbiAgICAgIG1pbjogJyVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gJXMnLFxuICAgICAgbWF4OiAnJXMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAlcycsXG4gICAgICByYW5nZTogJyVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMnXG4gICAgfSxcbiAgICBhcnJheToge1xuICAgICAgbGVuOiAnJXMgbXVzdCBiZSBleGFjdGx5ICVzIGluIGxlbmd0aCcsXG4gICAgICBtaW46ICclcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIGluIGxlbmd0aCcsXG4gICAgICBtYXg6ICclcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzIGluIGxlbmd0aCcsXG4gICAgICByYW5nZTogJyVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMgaW4gbGVuZ3RoJ1xuICAgIH0sXG4gICAgcGF0dGVybjoge1xuICAgICAgbWlzbWF0Y2g6ICclcyB2YWx1ZSAlcyBkb2VzIG5vdCBtYXRjaCBwYXR0ZXJuICVzJ1xuICAgIH0sXG4gICAgY2xvbmU6IGZ1bmN0aW9uIGNsb25lKCkge1xuICAgICAgdmFyIGNsb25lZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcykpO1xuICAgICAgY2xvbmVkLmNsb25lID0gdGhpcy5jbG9uZTtcbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IHZhciBtZXNzYWdlcyA9IG5ld01lc3NhZ2VzKCk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/messages.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/enum.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/enum.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 _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (enumerable);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9lbnVtLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDZDQUFNO0FBQ3RCO0FBQ0E7QUFDQSxpRUFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL2VudW0uanM/NmQ5OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIEVOVU0gPSAnZW51bSc7XG52YXIgZW51bWVyYWJsZSA9IGZ1bmN0aW9uIGVudW1lcmFibGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIHJ1bGVbRU5VTV0gPSBBcnJheS5pc0FycmF5KHJ1bGVbRU5VTV0pID8gcnVsZVtFTlVNXSA6IFtdO1xuICBpZiAocnVsZVtFTlVNXS5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1tFTlVNXSwgcnVsZS5mdWxsRmllbGQsIHJ1bGVbRU5VTV0uam9pbignLCAnKSkpO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgZW51bWVyYWJsZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/enum.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/index.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/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 _enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enum */ \"./node_modules/@rc-component/async-validator/es/rule/enum.js\");\n/* harmony import */ var _pattern__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pattern */ \"./node_modules/@rc-component/async-validator/es/rule/pattern.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./range */ \"./node_modules/@rc-component/async-validator/es/rule/range.js\");\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./required */ \"./node_modules/@rc-component/async-validator/es/rule/required.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./type */ \"./node_modules/@rc-component/async-validator/es/rule/type.js\");\n/* harmony import */ var _whitespace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./whitespace */ \"./node_modules/@rc-component/async-validator/es/rule/whitespace.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n required: _required__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n whitespace: _whitespace__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n type: _type__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n range: _range__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n enum: _enum__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n pattern: _pattern__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQThCO0FBQ0U7QUFDSjtBQUNNO0FBQ1I7QUFDWTtBQUN0QyxpRUFBZTtBQUNmLFlBQVksaURBQVE7QUFDcEIsY0FBYyxtREFBVTtBQUN4QixRQUFRLDZDQUFJO0FBQ1osU0FBUyw4Q0FBSztBQUNkLFFBQVEsNkNBQVE7QUFDaEIsV0FBVyxnREFBTztBQUNsQixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL2luZGV4LmpzPzUxNzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVudW1SdWxlIGZyb20gXCIuL2VudW1cIjtcbmltcG9ydCBwYXR0ZXJuIGZyb20gXCIuL3BhdHRlcm5cIjtcbmltcG9ydCByYW5nZSBmcm9tIFwiLi9yYW5nZVwiO1xuaW1wb3J0IHJlcXVpcmVkIGZyb20gXCIuL3JlcXVpcmVkXCI7XG5pbXBvcnQgdHlwZSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgd2hpdGVzcGFjZSBmcm9tIFwiLi93aGl0ZXNwYWNlXCI7XG5leHBvcnQgZGVmYXVsdCB7XG4gIHJlcXVpcmVkOiByZXF1aXJlZCxcbiAgd2hpdGVzcGFjZTogd2hpdGVzcGFjZSxcbiAgdHlwZTogdHlwZSxcbiAgcmFuZ2U6IHJhbmdlLFxuICBlbnVtOiBlbnVtUnVsZSxcbiAgcGF0dGVybjogcGF0dGVyblxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/index.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/pattern.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/pattern.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 _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\nvar pattern = function pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pattern);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9wYXR0ZXJuLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNkNBQU07QUFDMUI7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLG9CQUFvQiw2Q0FBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvcGF0dGVybi5qcz81ZGY5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgcGF0dGVybiA9IGZ1bmN0aW9uIHBhdHRlcm4ocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIGlmIChydWxlLnBhdHRlcm4pIHtcbiAgICBpZiAocnVsZS5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBpZiBhIFJlZ0V4cCBpbnN0YW5jZSBpcyBwYXNzZWQsIHJlc2V0IGBsYXN0SW5kZXhgIGluIGNhc2UgaXRzIGBnbG9iYWxgXG4gICAgICAvLyBmbGFnIGlzIGFjY2lkZW50YWxseSBzZXQgdG8gYHRydWVgLCB3aGljaCBpbiBhIHZhbGlkYXRpb24gc2NlbmFyaW9cbiAgICAgIC8vIGlzIG5vdCBuZWNlc3NhcnkgYW5kIHRoZSByZXN1bHQgbWlnaHQgYmUgbWlzbGVhZGluZ1xuICAgICAgcnVsZS5wYXR0ZXJuLmxhc3RJbmRleCA9IDA7XG4gICAgICBpZiAoIXJ1bGUucGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJ1bGUucGF0dGVybiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBfcGF0dGVybiA9IG5ldyBSZWdFeHAocnVsZS5wYXR0ZXJuKTtcbiAgICAgIGlmICghX3BhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMucGF0dGVybi5taXNtYXRjaCwgcnVsZS5mdWxsRmllbGQsIHZhbHVlLCBydWxlLnBhdHRlcm4pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCBwYXR0ZXJuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/pattern.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/range.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/range.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 _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\nvar range = function range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (range);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9yYW5nZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDZDQUFNO0FBQ3hCO0FBQ0EsSUFBSTtBQUNKLGdCQUFnQiw2Q0FBTTtBQUN0QixJQUFJO0FBQ0osZ0JBQWdCLDZDQUFNO0FBQ3RCLElBQUk7QUFDSixnQkFBZ0IsNkNBQU07QUFDdEI7QUFDQTtBQUNBLGlFQUFlLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvcmFuZ2UuanM/YmY0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIHJhbmdlID0gZnVuY3Rpb24gcmFuZ2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIHZhciBsZW4gPSB0eXBlb2YgcnVsZS5sZW4gPT09ICdudW1iZXInO1xuICB2YXIgbWluID0gdHlwZW9mIHJ1bGUubWluID09PSAnbnVtYmVyJztcbiAgdmFyIG1heCA9IHR5cGVvZiBydWxlLm1heCA9PT0gJ251bWJlcic7XG4gIC8vIOato+WImeWMuemFjeeggeeCueiMg+WbtOS7jlUrMDEwMDAw5LiA55u05YiwVSsxMEZGRkbnmoTmloflrZfvvIjooaXlhYXlubPpnaJTdXBwbGVtZW50YXJ5IFBsYW5l77yJXG4gIHZhciBzcFJlZ2V4cCA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2c7XG4gIHZhciB2YWwgPSB2YWx1ZTtcbiAgdmFyIGtleSA9IG51bGw7XG4gIHZhciBudW0gPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInO1xuICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbiAgdmFyIGFyciA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICBpZiAobnVtKSB7XG4gICAga2V5ID0gJ251bWJlcic7XG4gIH0gZWxzZSBpZiAoc3RyKSB7XG4gICAga2V5ID0gJ3N0cmluZyc7XG4gIH0gZWxzZSBpZiAoYXJyKSB7XG4gICAga2V5ID0gJ2FycmF5JztcbiAgfVxuICAvLyBpZiB0aGUgdmFsdWUgaXMgbm90IG9mIGEgc3VwcG9ydGVkIHR5cGUgZm9yIHJhbmdlIHZhbGlkYXRpb25cbiAgLy8gdGhlIHZhbGlkYXRpb24gcnVsZSBydWxlIHNob3VsZCB1c2UgdGhlXG4gIC8vIHR5cGUgcHJvcGVydHkgdG8gYWxzbyB0ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHlwZVxuICBpZiAoIWtleSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJyKSB7XG4gICAgdmFsID0gdmFsdWUubGVuZ3RoO1xuICB9XG4gIGlmIChzdHIpIHtcbiAgICAvLyDlpITnkIbnoIHngrnlpKfkuo5VKzAxMDAwMOeahOaWh+Wtl2xlbmd0aOWxnuaAp+S4jeWHhuehrueahGJ1Z++8jOWmglwi8KCut/CgrrfwoK63XCIubGVuZ3RoICE9PSAzXG4gICAgdmFsID0gdmFsdWUucmVwbGFjZShzcFJlZ2V4cCwgJ18nKS5sZW5ndGg7XG4gIH1cbiAgaWYgKGxlbikge1xuICAgIGlmICh2YWwgIT09IHJ1bGUubGVuKSB7XG4gICAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLmxlbiwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubGVuKSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG1pbiAmJiAhbWF4ICYmIHZhbCA8IHJ1bGUubWluKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5taW4sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLm1pbikpO1xuICB9IGVsc2UgaWYgKG1heCAmJiAhbWluICYmIHZhbCA+IHJ1bGUubWF4KSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5tYXgsIHJ1bGUuZnVsbEZpZWxkLCBydWxlLm1heCkpO1xuICB9IGVsc2UgaWYgKG1pbiAmJiBtYXggJiYgKHZhbCA8IHJ1bGUubWluIHx8IHZhbCA+IHJ1bGUubWF4KSkge1xuICAgIGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ucmFuZ2UsIHJ1bGUuZnVsbEZpZWxkLCBydWxlLm1pbiwgcnVsZS5tYXgpKTtcbiAgfVxufTtcbmV4cG9ydCBkZWZhdWx0IHJhbmdlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/range.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/required.js":
+/*!************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/required.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 _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\nvar required = function required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || (0,_util__WEBPACK_IMPORTED_MODULE_0__.isEmptyValue)(value, type || rule.type))) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages.required, rule.fullField));\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (required);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9yZXF1aXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUMvQztBQUNBLDhEQUE4RCxtREFBWTtBQUMxRSxnQkFBZ0IsNkNBQU07QUFDdEI7QUFDQTtBQUNBLGlFQUFlLFFBQVEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvcmVxdWlyZWQuanM/ZmRiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQsIGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgcmVxdWlyZWQgPSBmdW5jdGlvbiByZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMsIHR5cGUpIHtcbiAgaWYgKHJ1bGUucmVxdWlyZWQgJiYgKCFzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkgfHwgaXNFbXB0eVZhbHVlKHZhbHVlLCB0eXBlIHx8IHJ1bGUudHlwZSkpKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMucmVxdWlyZWQsIHJ1bGUuZnVsbEZpZWxkKSk7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCByZXF1aXJlZDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/required.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/type.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/type.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_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./required */ \"./node_modules/@rc-component/async-validator/es/rule/required.js\");\n/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./url */ \"./node_modules/@rc-component/async-validator/es/rule/url.js\");\n\n\n\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && value.length <= 320 && !!value.match(pattern.email);\n },\n url: function url(value) {\n return typeof value === 'string' && value.length <= 2048 && !!value.match((0,_url__WEBPACK_IMPORTED_MODULE_3__[\"default\"])());\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\nvar type = function type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n (0,_required__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_1__.format)(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) !== rule.type) {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_1__.format)(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (type);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS90eXBlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXdEO0FBQ3ZCO0FBQ0M7QUFDRjtBQUNoQzs7QUFFQTtBQUNBO0FBQ0EsNEJBQTRCLHlCQUF5Qiw2QkFBNkIsSUFBSSxRQUFRLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSw4R0FBOEcsR0FBRztBQUMzTztBQUNBLCtIQUErSCxJQUFJLHFCQUFxQixFQUFFLHVNQUF1TSxHQUFHLHNCQUFzQixJQUFJO0FBQzlYO0FBQ0E7QUFDQSxxQkFBcUIsRUFBRSxVQUFVLEVBQUU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLFdBQVcsNkVBQU87QUFDbEIsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLDhFQUE4RSxnREFBVztBQUN6RixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxREFBUTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw2Q0FBTTtBQUN4QjtBQUNBO0FBQ0EsSUFBSSxxQkFBcUIsNkVBQU87QUFDaEMsZ0JBQWdCLDZDQUFNO0FBQ3RCO0FBQ0E7QUFDQSxpRUFBZSxJQUFJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL3R5cGUuanM/MTRmZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHJlcXVpcmVkIGZyb20gXCIuL3JlcXVpcmVkXCI7XG5pbXBvcnQgZ2V0VXJsUmVnZXggZnJvbSBcIi4vdXJsXCI7XG4vKiBlc2xpbnQgbWF4LWxlbjowICovXG5cbnZhciBwYXR0ZXJuID0ge1xuICAvLyBodHRwOi8vZW1haWxyZWdleC5jb20vXG4gIGVtYWlsOiAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTlcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdK1xcLikrW2EtekEtWlxcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl17Mix9KSkkLyxcbiAgLy8gdXJsOiBuZXcgUmVnRXhwKFxuICAvLyAgICdeKD8hbWFpbHRvOikoPzooPzpodHRwfGh0dHBzfGZ0cCk6Ly98Ly8pKD86XFxcXFMrKD86OlxcXFxTKik/QCk/KD86KD86KD86WzEtOV1cXFxcZD98MVxcXFxkXFxcXGR8MlswMV1cXFxcZHwyMlswLTNdKSg/OlxcXFwuKD86MT9cXFxcZHsxLDJ9fDJbMC00XVxcXFxkfDI1WzAtNV0pKXsyfSg/OlxcXFwuKD86WzAtOV1cXFxcZD98MVxcXFxkXFxcXGR8MlswLTRdXFxcXGR8MjVbMC00XSkpfCg/Oig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSstKikqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykoPzpcXFxcLig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSstKikqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykqKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZl17Mix9KSkpfGxvY2FsaG9zdCkoPzo6XFxcXGR7Miw1fSk/KD86KC98XFxcXD98IylbXlxcXFxzXSopPyQnLFxuICAvLyAgICdpJyxcbiAgLy8gKSxcbiAgaGV4OiAvXiM/KFthLWYwLTldezZ9fFthLWYwLTldezN9KSQvaVxufTtcbnZhciB0eXBlcyA9IHtcbiAgaW50ZWdlcjogZnVuY3Rpb24gaW50ZWdlcih2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlcy5udW1iZXIodmFsdWUpICYmIHBhcnNlSW50KHZhbHVlLCAxMCkgPT09IHZhbHVlO1xuICB9LFxuICBmbG9hdDogZnVuY3Rpb24gZmxvYXQodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZXMubnVtYmVyKHZhbHVlKSAmJiAhdHlwZXMuaW50ZWdlcih2YWx1ZSk7XG4gIH0sXG4gIGFycmF5OiBmdW5jdGlvbiBhcnJheSh2YWx1ZSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgfSxcbiAgcmVnZXhwOiBmdW5jdGlvbiByZWdleHAodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmV0dXJuICEhbmV3IFJlZ0V4cCh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSxcbiAgZGF0ZTogZnVuY3Rpb24gZGF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUuZ2V0VGltZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmFsdWUuZ2V0TW9udGggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlLmdldFllYXIgPT09ICdmdW5jdGlvbicgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSk7XG4gIH0sXG4gIG51bWJlcjogZnVuY3Rpb24gbnVtYmVyKHZhbHVlKSB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbiAgfSxcbiAgb2JqZWN0OiBmdW5jdGlvbiBvYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmICF0eXBlcy5hcnJheSh2YWx1ZSk7XG4gIH0sXG4gIG1ldGhvZDogZnVuY3Rpb24gbWV0aG9kKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgfSxcbiAgZW1haWw6IGZ1bmN0aW9uIGVtYWlsKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoIDw9IDMyMCAmJiAhIXZhbHVlLm1hdGNoKHBhdHRlcm4uZW1haWwpO1xuICB9LFxuICB1cmw6IGZ1bmN0aW9uIHVybCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA8PSAyMDQ4ICYmICEhdmFsdWUubWF0Y2goZ2V0VXJsUmVnZXgoKSk7XG4gIH0sXG4gIGhleDogZnVuY3Rpb24gaGV4KHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmhleCk7XG4gIH1cbn07XG52YXIgdHlwZSA9IGZ1bmN0aW9uIHR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIGlmIChydWxlLnJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgY3VzdG9tID0gWydpbnRlZ2VyJywgJ2Zsb2F0JywgJ2FycmF5JywgJ3JlZ2V4cCcsICdvYmplY3QnLCAnbWV0aG9kJywgJ2VtYWlsJywgJ251bWJlcicsICdkYXRlJywgJ3VybCcsICdoZXgnXTtcbiAgdmFyIHJ1bGVUeXBlID0gcnVsZS50eXBlO1xuICBpZiAoY3VzdG9tLmluZGV4T2YocnVsZVR5cGUpID4gLTEpIHtcbiAgICBpZiAoIXR5cGVzW3J1bGVUeXBlXSh2YWx1ZSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLnR5cGVzW3J1bGVUeXBlXSwgcnVsZS5mdWxsRmllbGQsIHJ1bGUudHlwZSkpO1xuICAgIH1cbiAgICAvLyBzdHJhaWdodCB0eXBlb2YgY2hlY2tcbiAgfSBlbHNlIGlmIChydWxlVHlwZSAmJiBfdHlwZW9mKHZhbHVlKSAhPT0gcnVsZS50eXBlKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMudHlwZXNbcnVsZVR5cGVdLCBydWxlLmZ1bGxGaWVsZCwgcnVsZS50eXBlKSk7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCB0eXBlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/type.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/url.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/url.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// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {\n if (urlReg) {\n return urlReg;\n }\n var word = '[a-fA-F\\\\d:]';\n var b = function b(options) {\n return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\".concat(word, \")|(?<=\").concat(word, \")(?=\\\\s|$))\") : '';\n };\n var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n var v6seg = '[a-fA-F\\\\d]{1,4}';\n var v6List = [\"(?:\".concat(v6seg, \":){7}(?:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n \"(?:\".concat(v6seg, \":){6}(?:\").concat(v4, \"|:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::\n \"(?:\".concat(v6seg, \":){5}(?::\").concat(v4, \"|(?::\").concat(v6seg, \"){1,2}|:)\"), // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::\n \"(?:\".concat(v6seg, \":){4}(?:(?::\").concat(v6seg, \"){0,1}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,3}|:)\"), // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::\n \"(?:\".concat(v6seg, \":){3}(?:(?::\").concat(v6seg, \"){0,2}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,4}|:)\"), // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::\n \"(?:\".concat(v6seg, \":){2}(?:(?::\").concat(v6seg, \"){0,3}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,5}|:)\"), // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::\n \"(?:\".concat(v6seg, \":){1}(?:(?::\").concat(v6seg, \"){0,4}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,6}|:)\"), // 1:: 1::3:4:5:6:7:8 1::8 1::\n \"(?::(?:(?::\".concat(v6seg, \"){0,5}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,7}|:))\") // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::\n ];\n var v6Eth0 = \"(?:%[0-9a-zA-Z]{1,})?\"; // %eth0 %1\n\n var v6 = \"(?:\".concat(v6List.join('|'), \")\").concat(v6Eth0);\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n var v46Exact = new RegExp(\"(?:^\".concat(v4, \"$)|(?:^\").concat(v6, \"$)\"));\n var v4exact = new RegExp(\"^\".concat(v4, \"$\"));\n var v6exact = new RegExp(\"^\".concat(v6, \"$\"));\n var ip = function ip(options) {\n return options && options.exact ? v46Exact : new RegExp(\"(?:\".concat(b(options)).concat(v4).concat(b(options), \")|(?:\").concat(b(options)).concat(v6).concat(b(options), \")\"), 'g');\n };\n ip.v4 = function (options) {\n return options && options.exact ? v4exact : new RegExp(\"\".concat(b(options)).concat(v4).concat(b(options)), 'g');\n };\n ip.v6 = function (options) {\n return options && options.exact ? v6exact : new RegExp(\"\".concat(b(options)).concat(v6).concat(b(options)), 'g');\n };\n var protocol = \"(?:(?:[a-z]+:)?//)\";\n var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n var ipv4 = ip.v4().source;\n var ipv6 = ip.v6().source;\n var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n var port = '(?::\\\\d{2,5})?';\n var path = '(?:[/?#][^\\\\s\"]*)?';\n var regex = \"(?:\".concat(protocol, \"|www\\\\.)\").concat(auth, \"(?:localhost|\").concat(ipv4, \"|\").concat(ipv6, \"|\").concat(host).concat(domain).concat(tld, \")\").concat(port).concat(path);\n urlReg = new RegExp(\"(?:^\".concat(regex, \"$)\"), 'i');\n return urlReg;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS91cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxpRUFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3R0FBd0csRUFBRTtBQUMxRywyQkFBMkIsSUFBSTtBQUMvQix3Q0FBd0MsRUFBRTtBQUMxQywwQkFBMEIsRUFBRTtBQUM1QiwwQkFBMEIsRUFBRSw0Q0FBNEMsSUFBSTtBQUM1RSwwQkFBMEIsRUFBRSwyQkFBMkIsSUFBSSx5Q0FBeUMsSUFBSTtBQUN4RywwQkFBMEIsRUFBRSwyQkFBMkIsSUFBSSx5Q0FBeUMsSUFBSTtBQUN4RywwQkFBMEIsRUFBRSwyQkFBMkIsSUFBSSx5Q0FBeUMsSUFBSTtBQUN4RywwQkFBMEIsRUFBRSwyQkFBMkIsSUFBSSx5Q0FBeUMsSUFBSTtBQUN4RyxpQ0FBaUMsSUFBSSx5Q0FBeUMsSUFBSTtBQUNsRjtBQUNBLGdDQUFnQyxHQUFHLEtBQUs7O0FBRXhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLEdBQUc7QUFDOUMsc0JBQXNCLElBQUk7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL3VybC5qcz9iYzFiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rZXZ2YS91cmwtcmVnZXgvYmxvYi9tYXN0ZXIvaW5kZXguanNcbnZhciB1cmxSZWc7XG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gKCkge1xuICBpZiAodXJsUmVnKSB7XG4gICAgcmV0dXJuIHVybFJlZztcbiAgfVxuICB2YXIgd29yZCA9ICdbYS1mQS1GXFxcXGQ6XSc7XG4gIHZhciBiID0gZnVuY3Rpb24gYihvcHRpb25zKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5pbmNsdWRlQm91bmRhcmllcyA/IFwiKD86KD88PVxcXFxzfF4pKD89XCIuY29uY2F0KHdvcmQsIFwiKXwoPzw9XCIpLmNvbmNhdCh3b3JkLCBcIikoPz1cXFxcc3wkKSlcIikgOiAnJztcbiAgfTtcbiAgdmFyIHY0ID0gJyg/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkoPzpcXFxcLig/OjI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV1cXFxcZHxcXFxcZCkpezN9JztcbiAgdmFyIHY2c2VnID0gJ1thLWZBLUZcXFxcZF17MSw0fSc7XG4gIHZhciB2Nkxpc3QgPSBbXCIoPzpcIi5jb25jYXQodjZzZWcsIFwiOil7N30oPzpcIikuY29uY2F0KHY2c2VnLCBcInw6KVwiKSwgLy8gMToyOjM6NDo1OjY6Nzo6ICAxOjI6Mzo0OjU6Njo3OjhcbiAgXCIoPzpcIi5jb25jYXQodjZzZWcsIFwiOil7Nn0oPzpcIikuY29uY2F0KHY0LCBcInw6XCIpLmNvbmNhdCh2NnNlZywgXCJ8OilcIiksIC8vIDE6MjozOjQ6NTo2OjogICAgMToyOjM6NDo1OjY6OjggICAxOjI6Mzo0OjU6Njo6OCAgMToyOjM6NDo1OjY6OlxuICBcIig/OlwiLmNvbmNhdCh2NnNlZywgXCI6KXs1fSg/OjpcIikuY29uY2F0KHY0LCBcInwoPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezEsMn18OilcIiksIC8vIDE6MjozOjQ6NTo6ICAgICAgMToyOjM6NDo1Ojo3OjggICAxOjI6Mzo0OjU6OjggICAgMToyOjM6NDo1OjpcbiAgXCIoPzpcIi5jb25jYXQodjZzZWcsIFwiOil7NH0oPzooPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezAsMX06XCIpLmNvbmNhdCh2NCwgXCJ8KD86OlwiKS5jb25jYXQodjZzZWcsIFwiKXsxLDN9fDopXCIpLCAvLyAxOjI6Mzo0OjogICAgICAgIDE6MjozOjQ6OjY6Nzo4ICAgMToyOjM6NDo6OCAgICAgIDE6MjozOjQ6OlxuICBcIig/OlwiLmNvbmNhdCh2NnNlZywgXCI6KXszfSg/Oig/OjpcIikuY29uY2F0KHY2c2VnLCBcIil7MCwyfTpcIikuY29uY2F0KHY0LCBcInwoPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezEsNH18OilcIiksIC8vIDE6MjozOjogICAgICAgICAgMToyOjM6OjU6Njo3OjggICAxOjI6Mzo6OCAgICAgICAgMToyOjM6OlxuICBcIig/OlwiLmNvbmNhdCh2NnNlZywgXCI6KXsyfSg/Oig/OjpcIikuY29uY2F0KHY2c2VnLCBcIil7MCwzfTpcIikuY29uY2F0KHY0LCBcInwoPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezEsNX18OilcIiksIC8vIDE6Mjo6ICAgICAgICAgICAgMToyOjo0OjU6Njo3OjggICAxOjI6OjggICAgICAgICAgMToyOjpcbiAgXCIoPzpcIi5jb25jYXQodjZzZWcsIFwiOil7MX0oPzooPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezAsNH06XCIpLmNvbmNhdCh2NCwgXCJ8KD86OlwiKS5jb25jYXQodjZzZWcsIFwiKXsxLDZ9fDopXCIpLCAvLyAxOjogICAgICAgICAgICAgIDE6OjM6NDo1OjY6Nzo4ICAgMTo6OCAgICAgICAgICAgIDE6OlxuICBcIig/OjooPzooPzo6XCIuY29uY2F0KHY2c2VnLCBcIil7MCw1fTpcIikuY29uY2F0KHY0LCBcInwoPzo6XCIpLmNvbmNhdCh2NnNlZywgXCIpezEsN318OikpXCIpIC8vIDo6MjozOjQ6NTo2Ojc6OCAgOjoyOjM6NDo1OjY6Nzo4ICA6OjggICAgICAgICAgICAgOjpcbiAgXTtcbiAgdmFyIHY2RXRoMCA9IFwiKD86JVswLTlhLXpBLVpdezEsfSk/XCI7IC8vICVldGgwICAgICAgICAgICAgJTFcblxuICB2YXIgdjYgPSBcIig/OlwiLmNvbmNhdCh2Nkxpc3Quam9pbignfCcpLCBcIilcIikuY29uY2F0KHY2RXRoMCk7XG5cbiAgLy8gUHJlLWNvbXBpbGUgb25seSB0aGUgZXhhY3QgcmVnZXhlcyBiZWNhdXNlIGFkZGluZyBhIGdsb2JhbCBmbGFnIG1ha2UgcmVnZXhlcyBzdGF0ZWZ1bFxuICB2YXIgdjQ2RXhhY3QgPSBuZXcgUmVnRXhwKFwiKD86XlwiLmNvbmNhdCh2NCwgXCIkKXwoPzpeXCIpLmNvbmNhdCh2NiwgXCIkKVwiKSk7XG4gIHZhciB2NGV4YWN0ID0gbmV3IFJlZ0V4cChcIl5cIi5jb25jYXQodjQsIFwiJFwiKSk7XG4gIHZhciB2NmV4YWN0ID0gbmV3IFJlZ0V4cChcIl5cIi5jb25jYXQodjYsIFwiJFwiKSk7XG4gIHZhciBpcCA9IGZ1bmN0aW9uIGlwKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmV4YWN0ID8gdjQ2RXhhY3QgOiBuZXcgUmVnRXhwKFwiKD86XCIuY29uY2F0KGIob3B0aW9ucykpLmNvbmNhdCh2NCkuY29uY2F0KGIob3B0aW9ucyksIFwiKXwoPzpcIikuY29uY2F0KGIob3B0aW9ucykpLmNvbmNhdCh2NikuY29uY2F0KGIob3B0aW9ucyksIFwiKVwiKSwgJ2cnKTtcbiAgfTtcbiAgaXAudjQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMuZXhhY3QgPyB2NGV4YWN0IDogbmV3IFJlZ0V4cChcIlwiLmNvbmNhdChiKG9wdGlvbnMpKS5jb25jYXQodjQpLmNvbmNhdChiKG9wdGlvbnMpKSwgJ2cnKTtcbiAgfTtcbiAgaXAudjYgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMuZXhhY3QgPyB2NmV4YWN0IDogbmV3IFJlZ0V4cChcIlwiLmNvbmNhdChiKG9wdGlvbnMpKS5jb25jYXQodjYpLmNvbmNhdChiKG9wdGlvbnMpKSwgJ2cnKTtcbiAgfTtcbiAgdmFyIHByb3RvY29sID0gXCIoPzooPzpbYS16XSs6KT8vLylcIjtcbiAgdmFyIGF1dGggPSAnKD86XFxcXFMrKD86OlxcXFxTKik/QCk/JztcbiAgdmFyIGlwdjQgPSBpcC52NCgpLnNvdXJjZTtcbiAgdmFyIGlwdjYgPSBpcC52NigpLnNvdXJjZTtcbiAgdmFyIGhvc3QgPSBcIig/Oig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XVstX10qKSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKVwiO1xuICB2YXIgZG9tYWluID0gXCIoPzpcXFxcLig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XS0qKSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKSpcIjtcbiAgdmFyIHRsZCA9IFwiKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZl17Mix9KSlcIjtcbiAgdmFyIHBvcnQgPSAnKD86OlxcXFxkezIsNX0pPyc7XG4gIHZhciBwYXRoID0gJyg/OlsvPyNdW15cXFxcc1wiXSopPyc7XG4gIHZhciByZWdleCA9IFwiKD86XCIuY29uY2F0KHByb3RvY29sLCBcInx3d3dcXFxcLilcIikuY29uY2F0KGF1dGgsIFwiKD86bG9jYWxob3N0fFwiKS5jb25jYXQoaXB2NCwgXCJ8XCIpLmNvbmNhdChpcHY2LCBcInxcIikuY29uY2F0KGhvc3QpLmNvbmNhdChkb21haW4pLmNvbmNhdCh0bGQsIFwiKVwiKS5jb25jYXQocG9ydCkuY29uY2F0KHBhdGgpO1xuICB1cmxSZWcgPSBuZXcgUmVnRXhwKFwiKD86XlwiLmNvbmNhdChyZWdleCwgXCIkKVwiKSwgJ2knKTtcbiAgcmV0dXJuIHVybFJlZztcbn0pOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/url.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/rule/whitespace.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/rule/whitespace.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 _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push((0,_util__WEBPACK_IMPORTED_MODULE_0__.format)(options.messages.whitespace, rule.fullField));\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (whitespace);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS93aGl0ZXNwYWNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlDOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBTTtBQUN0QjtBQUNBO0FBQ0EsaUVBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS93aGl0ZXNwYWNlLmpzP2E1MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuLyoqXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyB3aGl0ZXNwYWNlLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBlcnJvcnMgQW4gYXJyYXkgb2YgZXJyb3JzIHRoYXQgdGhpcyBydWxlIG1heSBhZGRcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICovXG52YXIgd2hpdGVzcGFjZSA9IGZ1bmN0aW9uIHdoaXRlc3BhY2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIGlmICgvXlxccyskLy50ZXN0KHZhbHVlKSB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy53aGl0ZXNwYWNlLCBydWxlLmZ1bGxGaWVsZCkpO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgd2hpdGVzcGFjZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/rule/whitespace.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/util.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/util.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 */ AsyncValidationError: () => (/* binding */ AsyncValidationError),\n/* harmony export */ asyncMap: () => (/* binding */ asyncMap),\n/* harmony export */ complementError: () => (/* binding */ complementError),\n/* harmony export */ convertFieldsError: () => (/* binding */ convertFieldsError),\n/* harmony export */ deepMerge: () => (/* binding */ deepMerge),\n/* harmony export */ format: () => (/* binding */ format),\n/* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject),\n/* harmony export */ isEmptyValue: () => (/* binding */ isEmptyValue),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n\n\n\n\n\n\n\n\n\n\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (typeof process !== 'undefined' && process.env && \"development\" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format(template) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var i = 0;\n var len = args.length;\n if (typeof template === 'function') {\n // eslint-disable-next-line prefer-spread\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n var str = template.replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n function count(errors) {\n results.push.apply(results, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n arr.forEach(function (a) {\n func(a, count);\n });\n}\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n next([]);\n}\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(objArr[k] || []));\n });\n return ret;\n}\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(AsyncValidationError, _Error);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(AsyncValidationError);\n function AsyncValidationError(errors, fields) {\n var _this;\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, AsyncValidationError);\n _this = _super.call(this, 'Async Validation Error');\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_this), \"errors\", void 0);\n (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_this), \"fields\", void 0);\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n return (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(AsyncValidationError);\n}( /*#__PURE__*/(0,_babel_runtime_helpers_esm_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(Error));\nfunction asyncMap(objArr, option, func, callback, source) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n };\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n _pending.catch(function (e) {\n return e;\n });\n return _pending;\n }\n var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n // eslint-disable-next-line prefer-spread\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(function (e) {\n return e;\n });\n return pending;\n}\nfunction isErrorObj(obj) {\n return !!(obj && obj.message !== undefined);\n}\nfunction getValue(value, path) {\n var v = value;\n for (var i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\nfunction complementError(rule, source) {\n return function (oe) {\n var fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[oe.field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue: fieldValue,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) === 'object' && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target[s]) === 'object') {\n target[s] = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, target[s]), value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdXRpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXFFO0FBQ2I7QUFDVTtBQUNNO0FBQ2M7QUFDMUI7QUFDTTtBQUNRO0FBQ0Y7QUFDTTtBQUM5RTs7QUFFQTtBQUNPOztBQUVQO0FBQ0EscURBQXFELGFBQW9CO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ087QUFDUCx5RkFBeUYsYUFBYTtBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBa0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix3RkFBa0I7QUFDMUMsR0FBRztBQUNIO0FBQ0E7QUFDTztBQUNQLEVBQUUsK0VBQVM7QUFDWCxlQUFlLGtGQUFZO0FBQzNCO0FBQ0E7QUFDQSxJQUFJLHFGQUFlO0FBQ25CO0FBQ0EsSUFBSSxxRkFBZSxDQUFDLDRGQUFzQjtBQUMxQyxJQUFJLHFGQUFlLENBQUMsNEZBQXNCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxrRkFBWTtBQUNyQixDQUFDLGVBQWUsc0ZBQWdCO0FBQ3pCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsaUJBQWlCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksNkVBQU8sd0JBQXdCLDZFQUFPO0FBQ2xELHNCQUFzQixvRkFBYSxDQUFDLG9GQUFhLEdBQUc7QUFDcEQsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy91dGlsLmpzPzBiZTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZFwiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNcIjtcbmltcG9ydCBfY3JlYXRlU3VwZXIgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZVN1cGVyXCI7XG5pbXBvcnQgX3dyYXBOYXRpdmVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vd3JhcE5hdGl2ZVN1cGVyXCI7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXlcIjtcbi8qIGVzbGludCBuby1jb25zb2xlOjAgKi9cblxudmFyIGZvcm1hdFJlZ0V4cCA9IC8lW3NkaiVdL2c7XG5leHBvcnQgdmFyIHdhcm5pbmcgPSBmdW5jdGlvbiB3YXJuaW5nKCkge307XG5cbi8vIGRvbid0IHByaW50IHdhcm5pbmcgbWVzc2FnZSB3aGVuIGluIHByb2R1Y3Rpb24gZW52IG9yIG5vZGUgcnVudGltZVxuaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgd2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcodHlwZSwgZXJyb3JzKSB7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiBjb25zb2xlLndhcm4gJiYgdHlwZW9mIEFTWU5DX1ZBTElEQVRPUl9OT19XQVJOSU5HID09PSAndW5kZWZpbmVkJykge1xuICAgICAgaWYgKGVycm9ycy5ldmVyeShmdW5jdGlvbiAoZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT09ICdzdHJpbmcnO1xuICAgICAgfSkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKHR5cGUsIGVycm9ycyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpIHtcbiAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHJldHVybiBudWxsO1xuICB2YXIgZmllbGRzID0ge307XG4gIGVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgIHZhciBmaWVsZCA9IGVycm9yLmZpZWxkO1xuICAgIGZpZWxkc1tmaWVsZF0gPSBmaWVsZHNbZmllbGRdIHx8IFtdO1xuICAgIGZpZWxkc1tmaWVsZF0ucHVzaChlcnJvcik7XG4gIH0pO1xuICByZXR1cm4gZmllbGRzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdCh0ZW1wbGF0ZSkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgdmFyIGkgPSAwO1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG4gIGlmICh0eXBlb2YgdGVtcGxhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZFxuICAgIHJldHVybiB0ZW1wbGF0ZS5hcHBseShudWxsLCBhcmdzKTtcbiAgfVxuICBpZiAodHlwZW9mIHRlbXBsYXRlID09PSAnc3RyaW5nJykge1xuICAgIHZhciBzdHIgPSB0ZW1wbGF0ZS5yZXBsYWNlKGZvcm1hdFJlZ0V4cCwgZnVuY3Rpb24gKHgpIHtcbiAgICAgIGlmICh4ID09PSAnJSUnKSB7XG4gICAgICAgIHJldHVybiAnJSc7XG4gICAgICB9XG4gICAgICBpZiAoaSA+PSBsZW4pIHtcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHgpIHtcbiAgICAgICAgY2FzZSAnJXMnOlxuICAgICAgICAgIHJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtcbiAgICAgICAgY2FzZSAnJWQnOlxuICAgICAgICAgIHJldHVybiBOdW1iZXIoYXJnc1tpKytdKTtcbiAgICAgICAgY2FzZSAnJWonOlxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnc1tpKytdKTtcbiAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIHJldHVybiB0ZW1wbGF0ZTtcbn1cbmZ1bmN0aW9uIGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlID09PSAndXJsJyB8fCB0eXBlID09PSAnaGV4JyB8fCB0eXBlID09PSAnZW1haWwnIHx8IHR5cGUgPT09ICdkYXRlJyB8fCB0eXBlID09PSAncGF0dGVybic7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eVZhbHVlKHZhbHVlLCB0eXBlKSB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHR5cGUgPT09ICdhcnJheScgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc05hdGl2ZVN0cmluZ1R5cGUodHlwZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufVxuZnVuY3Rpb24gYXN5bmNQYXJhbGxlbEFycmF5KGFyciwgZnVuYywgY2FsbGJhY2spIHtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgdmFyIHRvdGFsID0gMDtcbiAgdmFyIGFyckxlbmd0aCA9IGFyci5sZW5ndGg7XG4gIGZ1bmN0aW9uIGNvdW50KGVycm9ycykge1xuICAgIHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLCBfdG9Db25zdW1hYmxlQXJyYXkoZXJyb3JzIHx8IFtdKSk7XG4gICAgdG90YWwrKztcbiAgICBpZiAodG90YWwgPT09IGFyckxlbmd0aCkge1xuICAgICAgY2FsbGJhY2socmVzdWx0cyk7XG4gICAgfVxuICB9XG4gIGFyci5mb3JFYWNoKGZ1bmN0aW9uIChhKSB7XG4gICAgZnVuYyhhLCBjb3VudCk7XG4gIH0pO1xufVxuZnVuY3Rpb24gYXN5bmNTZXJpYWxBcnJheShhcnIsIGZ1bmMsIGNhbGxiYWNrKSB7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xuICBmdW5jdGlvbiBuZXh0KGVycm9ycykge1xuICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCkge1xuICAgICAgY2FsbGJhY2soZXJyb3JzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIG9yaWdpbmFsID0gaW5kZXg7XG4gICAgaW5kZXggPSBpbmRleCArIDE7XG4gICAgaWYgKG9yaWdpbmFsIDwgYXJyTGVuZ3RoKSB7XG4gICAgICBmdW5jKGFycltvcmlnaW5hbF0sIG5leHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhbXSk7XG4gICAgfVxuICB9XG4gIG5leHQoW10pO1xufVxuZnVuY3Rpb24gZmxhdHRlbk9iakFycihvYmpBcnIpIHtcbiAgdmFyIHJldCA9IFtdO1xuICBPYmplY3Qua2V5cyhvYmpBcnIpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIF90b0NvbnN1bWFibGVBcnJheShvYmpBcnJba10gfHwgW10pKTtcbiAgfSk7XG4gIHJldHVybiByZXQ7XG59XG5leHBvcnQgdmFyIEFzeW5jVmFsaWRhdGlvbkVycm9yID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfRXJyb3IpIHtcbiAgX2luaGVyaXRzKEFzeW5jVmFsaWRhdGlvbkVycm9yLCBfRXJyb3IpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKEFzeW5jVmFsaWRhdGlvbkVycm9yKTtcbiAgZnVuY3Rpb24gQXN5bmNWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLCBmaWVsZHMpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFzeW5jVmFsaWRhdGlvbkVycm9yKTtcbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsICdBc3luYyBWYWxpZGF0aW9uIEVycm9yJyk7XG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImVycm9yc1wiLCB2b2lkIDApO1xuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJmaWVsZHNcIiwgdm9pZCAwKTtcbiAgICBfdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgX3RoaXMuZmllbGRzID0gZmllbGRzO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICByZXR1cm4gX2NyZWF0ZUNsYXNzKEFzeW5jVmFsaWRhdGlvbkVycm9yKTtcbn0oIC8qI19fUFVSRV9fKi9fd3JhcE5hdGl2ZVN1cGVyKEVycm9yKSk7XG5leHBvcnQgZnVuY3Rpb24gYXN5bmNNYXAob2JqQXJyLCBvcHRpb24sIGZ1bmMsIGNhbGxiYWNrLCBzb3VyY2UpIHtcbiAgaWYgKG9wdGlvbi5maXJzdCkge1xuICAgIHZhciBfcGVuZGluZyA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3JzKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy5sZW5ndGggPyByZWplY3QobmV3IEFzeW5jVmFsaWRhdGlvbkVycm9yKGVycm9ycywgY29udmVydEZpZWxkc0Vycm9yKGVycm9ycykpKSA6IHJlc29sdmUoc291cmNlKTtcbiAgICAgIH07XG4gICAgICB2YXIgZmxhdHRlbkFyciA9IGZsYXR0ZW5PYmpBcnIob2JqQXJyKTtcbiAgICAgIGFzeW5jU2VyaWFsQXJyYXkoZmxhdHRlbkFyciwgZnVuYywgbmV4dCk7XG4gICAgfSk7XG4gICAgX3BlbmRpbmcuY2F0Y2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJldHVybiBlO1xuICAgIH0pO1xuICAgIHJldHVybiBfcGVuZGluZztcbiAgfVxuICB2YXIgZmlyc3RGaWVsZHMgPSBvcHRpb24uZmlyc3RGaWVsZHMgPT09IHRydWUgPyBPYmplY3Qua2V5cyhvYmpBcnIpIDogb3B0aW9uLmZpcnN0RmllbGRzIHx8IFtdO1xuICB2YXIgb2JqQXJyS2V5cyA9IE9iamVjdC5rZXlzKG9iakFycik7XG4gIHZhciBvYmpBcnJMZW5ndGggPSBvYmpBcnJLZXlzLmxlbmd0aDtcbiAgdmFyIHRvdGFsID0gMDtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgdmFyIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIG5leHQgPSBmdW5jdGlvbiBuZXh0KGVycm9ycykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1zcHJlYWRcbiAgICAgIHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLCBlcnJvcnMpO1xuICAgICAgdG90YWwrKztcbiAgICAgIGlmICh0b3RhbCA9PT0gb2JqQXJyTGVuZ3RoKSB7XG4gICAgICAgIGNhbGxiYWNrKHJlc3VsdHMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGggPyByZWplY3QobmV3IEFzeW5jVmFsaWRhdGlvbkVycm9yKHJlc3VsdHMsIGNvbnZlcnRGaWVsZHNFcnJvcihyZXN1bHRzKSkpIDogcmVzb2x2ZShzb3VyY2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKCFvYmpBcnJLZXlzLmxlbmd0aCkge1xuICAgICAgY2FsbGJhY2socmVzdWx0cyk7XG4gICAgICByZXNvbHZlKHNvdXJjZSk7XG4gICAgfVxuICAgIG9iakFycktleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICB2YXIgYXJyID0gb2JqQXJyW2tleV07XG4gICAgICBpZiAoZmlyc3RGaWVsZHMuaW5kZXhPZihrZXkpICE9PSAtMSkge1xuICAgICAgICBhc3luY1NlcmlhbEFycmF5KGFyciwgZnVuYywgbmV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3luY1BhcmFsbGVsQXJyYXkoYXJyLCBmdW5jLCBuZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHBlbmRpbmcuY2F0Y2goZnVuY3Rpb24gKGUpIHtcbiAgICByZXR1cm4gZTtcbiAgfSk7XG4gIHJldHVybiBwZW5kaW5nO1xufVxuZnVuY3Rpb24gaXNFcnJvck9iaihvYmopIHtcbiAgcmV0dXJuICEhKG9iaiAmJiBvYmoubWVzc2FnZSAhPT0gdW5kZWZpbmVkKTtcbn1cbmZ1bmN0aW9uIGdldFZhbHVlKHZhbHVlLCBwYXRoKSB7XG4gIHZhciB2ID0gdmFsdWU7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh2ID09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICAgIHYgPSB2W3BhdGhbaV1dO1xuICB9XG4gIHJldHVybiB2O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBsZW1lbnRFcnJvcihydWxlLCBzb3VyY2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvZSkge1xuICAgIHZhciBmaWVsZFZhbHVlO1xuICAgIGlmIChydWxlLmZ1bGxGaWVsZHMpIHtcbiAgICAgIGZpZWxkVmFsdWUgPSBnZXRWYWx1ZShzb3VyY2UsIHJ1bGUuZnVsbEZpZWxkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkVmFsdWUgPSBzb3VyY2Vbb2UuZmllbGQgfHwgcnVsZS5mdWxsRmllbGRdO1xuICAgIH1cbiAgICBpZiAoaXNFcnJvck9iaihvZSkpIHtcbiAgICAgIG9lLmZpZWxkID0gb2UuZmllbGQgfHwgcnVsZS5mdWxsRmllbGQ7XG4gICAgICBvZS5maWVsZFZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICAgIHJldHVybiBvZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHR5cGVvZiBvZSA9PT0gJ2Z1bmN0aW9uJyA/IG9lKCkgOiBvZSxcbiAgICAgIGZpZWxkVmFsdWU6IGZpZWxkVmFsdWUsXG4gICAgICBmaWVsZDogb2UuZmllbGQgfHwgcnVsZS5mdWxsRmllbGRcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoc291cmNlKSB7XG4gICAgZm9yICh2YXIgcyBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkocykpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gc291cmNlW3NdO1xuICAgICAgICBpZiAoX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIF90eXBlb2YodGFyZ2V0W3NdKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0YXJnZXRbc10gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHRhcmdldFtzXSksIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRbc10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdGFyZ2V0O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/util.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/any.js":
+/*!************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/any.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar any = function any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (any);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2FueS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVDtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3IvYW55LmpzP2Q5MTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIGFueSA9IGZ1bmN0aW9uIGFueShydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gIH1cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn07XG5leHBvcnQgZGVmYXVsdCBhbnk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/any.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/array.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rule_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/index */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n\nvar array = function array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n _rule_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n _rule_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n _rule_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (array);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2FycmF5LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxtREFBSztBQUNUO0FBQ0EsTUFBTSxtREFBSztBQUNYLE1BQU0sbURBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9hcnJheS5qcz81MGE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBydWxlcyBmcm9tIFwiLi4vcnVsZS9pbmRleFwiO1xudmFyIGFycmF5ID0gZnVuY3Rpb24gYXJyYXkocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKCh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucywgJ2FycmF5Jyk7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICAgIHJ1bGVzLnJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGNhbGxiYWNrKGVycm9ycyk7XG59O1xuZXhwb3J0IGRlZmF1bHQgYXJyYXk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/array.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/boolean.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/boolean.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar boolean = function boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (boolean);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2Jvb2xlYW4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG1EQUFZO0FBQ3BCO0FBQ0E7QUFDQSxJQUFJLDZDQUFLO0FBQ1Q7QUFDQSxNQUFNLDZDQUFLO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3IvYm9vbGVhbi5qcz81ODUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBydWxlcyBmcm9tIFwiLi4vcnVsZVwiO1xuaW1wb3J0IHsgaXNFbXB0eVZhbHVlIH0gZnJvbSBcIi4uL3V0aWxcIjtcbnZhciBib29sZWFuID0gZnVuY3Rpb24gYm9vbGVhbihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn07XG5leHBvcnQgZGVmYXVsdCBib29sZWFuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/boolean.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/date.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/date.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar date = function date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'date') && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (!(0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'date')) {\n var dateObject;\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, dateObject, source, errors, options);\n if (dateObject) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (date);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2RhdGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxtREFBWTtBQUNwQjtBQUNBO0FBQ0EsSUFBSSw2Q0FBSztBQUNULFNBQVMsbURBQVk7QUFDckI7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNLDZDQUFLO0FBQ1g7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9kYXRlLmpzP2VkNTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIGRhdGUgPSBmdW5jdGlvbiBkYXRlKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIC8vIGNvbnNvbGUubG9nKCdpbnRlZ2VyIHJ1bGUgY2FsbGVkICVqJywgcnVsZSk7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG4gIC8vIGNvbnNvbGUubG9nKCd2YWxpZGF0ZSBvbiAlcyB2YWx1ZScsIHZhbHVlKTtcbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ2RhdGUnKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgaWYgKCFpc0VtcHR5VmFsdWUodmFsdWUsICdkYXRlJykpIHtcbiAgICAgIHZhciBkYXRlT2JqZWN0O1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICBkYXRlT2JqZWN0ID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlT2JqZWN0ID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgfVxuICAgICAgcnVsZXMudHlwZShydWxlLCBkYXRlT2JqZWN0LCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICBpZiAoZGF0ZU9iamVjdCkge1xuICAgICAgICBydWxlcy5yYW5nZShydWxlLCBkYXRlT2JqZWN0LmdldFRpbWUoKSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IGRhdGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/date.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/enum.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/enum.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"][ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (enumerable);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2VudW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVDtBQUNBLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9lbnVtLmpzPzA1ZDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIEVOVU0gPSAnZW51bSc7XG52YXIgZW51bWVyYWJsZSA9IGZ1bmN0aW9uIGVudW1lcmFibGUocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBydWxlc1tFTlVNXShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IGVudW1lcmFibGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/enum.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/float.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/float.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (floatFn);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2Zsb2F0LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QjtBQUNXO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxtREFBWTtBQUNwQjtBQUNBO0FBQ0EsSUFBSSw2Q0FBSztBQUNUO0FBQ0EsTUFBTSw2Q0FBSztBQUNYLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9mbG9hdC5qcz9lZWFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBydWxlcyBmcm9tIFwiLi4vcnVsZVwiO1xuaW1wb3J0IHsgaXNFbXB0eVZhbHVlIH0gZnJvbSBcIi4uL3V0aWxcIjtcbnZhciBmbG9hdEZuID0gZnVuY3Rpb24gZmxvYXRGbihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICAgIHJ1bGVzLnJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGNhbGxiYWNrKGVycm9ycyk7XG59O1xuZXhwb3J0IGRlZmF1bHQgZmxvYXRGbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/float.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/index.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/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 _any__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./any */ \"./node_modules/@rc-component/async-validator/es/validator/any.js\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array */ \"./node_modules/@rc-component/async-validator/es/validator/array.js\");\n/* harmony import */ var _boolean__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./boolean */ \"./node_modules/@rc-component/async-validator/es/validator/boolean.js\");\n/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date */ \"./node_modules/@rc-component/async-validator/es/validator/date.js\");\n/* harmony import */ var _enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enum */ \"./node_modules/@rc-component/async-validator/es/validator/enum.js\");\n/* harmony import */ var _float__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./float */ \"./node_modules/@rc-component/async-validator/es/validator/float.js\");\n/* harmony import */ var _integer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./integer */ \"./node_modules/@rc-component/async-validator/es/validator/integer.js\");\n/* harmony import */ var _method__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./method */ \"./node_modules/@rc-component/async-validator/es/validator/method.js\");\n/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./number */ \"./node_modules/@rc-component/async-validator/es/validator/number.js\");\n/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./object */ \"./node_modules/@rc-component/async-validator/es/validator/object.js\");\n/* harmony import */ var _pattern__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pattern */ \"./node_modules/@rc-component/async-validator/es/validator/pattern.js\");\n/* harmony import */ var _regexp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./regexp */ \"./node_modules/@rc-component/async-validator/es/validator/regexp.js\");\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./required */ \"./node_modules/@rc-component/async-validator/es/validator/required.js\");\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./string */ \"./node_modules/@rc-component/async-validator/es/validator/string.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./type */ \"./node_modules/@rc-component/async-validator/es/validator/type.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n string: _string__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n method: _method__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n number: _number__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n boolean: _boolean__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n regexp: _regexp__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n integer: _integer__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n float: _float__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n array: _array__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n object: _object__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n enum: _enum__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n pattern: _pattern__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n date: _date__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n url: _type__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n hex: _type__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n email: _type__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n required: _required__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n any: _any__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBd0I7QUFDSTtBQUNJO0FBQ047QUFDUztBQUNQO0FBQ0k7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0k7QUFDSjtBQUNKO0FBQzFCLGlFQUFlO0FBQ2YsVUFBVSxnREFBTTtBQUNoQixVQUFVLCtDQUFNO0FBQ2hCLFVBQVUsK0NBQU07QUFDaEIsV0FBVyxnREFBTztBQUNsQixVQUFVLGdEQUFNO0FBQ2hCLFdBQVcsZ0RBQU87QUFDbEIsU0FBUyw4Q0FBSztBQUNkLFNBQVMsOENBQUs7QUFDZCxVQUFVLCtDQUFNO0FBQ2hCLFFBQVEsNkNBQWE7QUFDckIsV0FBVyxpREFBTztBQUNsQixRQUFRLDZDQUFJO0FBQ1osT0FBTyw4Q0FBSTtBQUNYLE9BQU8sOENBQUk7QUFDWCxTQUFTLDhDQUFJO0FBQ2IsWUFBWSxrREFBUTtBQUNwQixPQUFPLDRDQUFHO0FBQ1YsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2luZGV4LmpzP2VkMmUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFueSBmcm9tIFwiLi9hbnlcIjtcbmltcG9ydCBhcnJheSBmcm9tIFwiLi9hcnJheVwiO1xuaW1wb3J0IGJvb2xlYW4gZnJvbSBcIi4vYm9vbGVhblwiO1xuaW1wb3J0IGRhdGUgZnJvbSBcIi4vZGF0ZVwiO1xuaW1wb3J0IGVudW1WYWxpZGF0b3IgZnJvbSBcIi4vZW51bVwiO1xuaW1wb3J0IGZsb2F0IGZyb20gXCIuL2Zsb2F0XCI7XG5pbXBvcnQgaW50ZWdlciBmcm9tIFwiLi9pbnRlZ2VyXCI7XG5pbXBvcnQgbWV0aG9kIGZyb20gXCIuL21ldGhvZFwiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXJcIjtcbmltcG9ydCBvYmplY3QgZnJvbSBcIi4vb2JqZWN0XCI7XG5pbXBvcnQgcGF0dGVybiBmcm9tIFwiLi9wYXR0ZXJuXCI7XG5pbXBvcnQgcmVnZXhwIGZyb20gXCIuL3JlZ2V4cFwiO1xuaW1wb3J0IHJlcXVpcmVkIGZyb20gXCIuL3JlcXVpcmVkXCI7XG5pbXBvcnQgc3RyaW5nIGZyb20gXCIuL3N0cmluZ1wiO1xuaW1wb3J0IHR5cGUgZnJvbSBcIi4vdHlwZVwiO1xuZXhwb3J0IGRlZmF1bHQge1xuICBzdHJpbmc6IHN0cmluZyxcbiAgbWV0aG9kOiBtZXRob2QsXG4gIG51bWJlcjogbnVtYmVyLFxuICBib29sZWFuOiBib29sZWFuLFxuICByZWdleHA6IHJlZ2V4cCxcbiAgaW50ZWdlcjogaW50ZWdlcixcbiAgZmxvYXQ6IGZsb2F0LFxuICBhcnJheTogYXJyYXksXG4gIG9iamVjdDogb2JqZWN0LFxuICBlbnVtOiBlbnVtVmFsaWRhdG9yLFxuICBwYXR0ZXJuOiBwYXR0ZXJuLFxuICBkYXRlOiBkYXRlLFxuICB1cmw6IHR5cGUsXG4gIGhleDogdHlwZSxcbiAgZW1haWw6IHR5cGUsXG4gIHJlcXVpcmVkOiByZXF1aXJlZCxcbiAgYW55OiBhbnlcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/index.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/integer.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/integer.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar integer = function integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (integer);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2ludGVnZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG1EQUFZO0FBQ3BCO0FBQ0E7QUFDQSxJQUFJLDZDQUFLO0FBQ1Q7QUFDQSxNQUFNLDZDQUFLO0FBQ1gsTUFBTSw2Q0FBSztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWUsT0FBTyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2ludGVnZXIuanM/ZTc4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVsZXMgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB7IGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgaW50ZWdlciA9IGZ1bmN0aW9uIGludGVnZXIocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICBydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IGludGVnZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/integer.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/method.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/method.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar method = function method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (method);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL21ldGhvZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVDtBQUNBLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9tZXRob2QuanM/NDIyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVsZXMgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB7IGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgbWV0aG9kID0gZnVuY3Rpb24gbWV0aG9kKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1ldGhvZDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/method.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/number.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/number.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar number = function number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n // eslint-disable-next-line no-param-reassign\n value = undefined;\n }\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (number);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL251bWJlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxtREFBWTtBQUNwQjtBQUNBO0FBQ0EsSUFBSSw2Q0FBSztBQUNUO0FBQ0EsTUFBTSw2Q0FBSztBQUNYLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9udW1iZXIuanM/NWY4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVsZXMgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB7IGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgbnVtYmVyID0gZnVuY3Rpb24gbnVtYmVyKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgcnVsZXMucmFuZ2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn07XG5leHBvcnQgZGVmYXVsdCBudW1iZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/number.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/object.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/object.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar object = function object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (value !== undefined) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (object);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL29iamVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVDtBQUNBLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9vYmplY3QuanM/MmNlOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVsZXMgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB7IGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgb2JqZWN0ID0gZnVuY3Rpb24gb2JqZWN0KHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IG9iamVjdDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/object.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/pattern.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/pattern.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar pattern = function pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'string') && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (!(0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'string')) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pattern);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3BhdHRlcm4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG1EQUFZO0FBQ3BCO0FBQ0E7QUFDQSxJQUFJLDZDQUFLO0FBQ1QsU0FBUyxtREFBWTtBQUNyQixNQUFNLDZDQUFLO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3IvcGF0dGVybi5qcz8zYTU2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBydWxlcyBmcm9tIFwiLi4vcnVsZVwiO1xuaW1wb3J0IHsgaXNFbXB0eVZhbHVlIH0gZnJvbSBcIi4uL3V0aWxcIjtcbnZhciBwYXR0ZXJuID0gZnVuY3Rpb24gcGF0dGVybihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIGlmICghaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykpIHtcbiAgICAgIHJ1bGVzLnBhdHRlcm4ocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn07XG5leHBvcnQgZGVmYXVsdCBwYXR0ZXJuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/pattern.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/regexp.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/regexp.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar regexp = function regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n if (!(0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value)) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (regexp);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3JlZ2V4cC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVCxTQUFTLG1EQUFZO0FBQ3JCLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9yZWdleHAuanM/YmU0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVsZXMgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB7IGlzRW1wdHlWYWx1ZSB9IGZyb20gXCIuLi91dGlsXCI7XG52YXIgcmVnZXhwID0gZnVuY3Rpb24gcmVnZXhwKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICBpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn07XG5leHBvcnQgZGVmYXVsdCByZWdleHA7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/regexp.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/required.js":
+/*!*****************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/required.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_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _rule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n\n\nvar required = function required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n _rule__WEBPACK_IMPORTED_MODULE_1__[\"default\"].required(rule, value, source, errors, options, type);\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (required);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3JlcXVpcmVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDtBQUM1QjtBQUM1QjtBQUNBO0FBQ0EsOENBQThDLDZFQUFPO0FBQ3JELEVBQUUsNkNBQUs7QUFDUDtBQUNBO0FBQ0EsaUVBQWUsUUFBUSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3JlcXVpcmVkLmpzP2NmNDYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG52YXIgcmVxdWlyZWQgPSBmdW5jdGlvbiByZXF1aXJlZChydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB0eXBlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAnYXJyYXknIDogX3R5cGVvZih2YWx1ZSk7XG4gIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucywgdHlwZSk7XG4gIGNhbGxiYWNrKGVycm9ycyk7XG59O1xuZXhwb3J0IGRlZmF1bHQgcmVxdWlyZWQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/required.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/string.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/string.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar string = function string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'string') && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, 'string');\n if (!(0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, 'string')) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (string);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3N0cmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNEI7QUFDVztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVCxTQUFTLG1EQUFZO0FBQ3JCLE1BQU0sNkNBQUs7QUFDWCxNQUFNLDZDQUFLO0FBQ1gsTUFBTSw2Q0FBSztBQUNYO0FBQ0EsUUFBUSw2Q0FBSztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3Ivc3RyaW5nLmpzPzU4NmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIHN0cmluZyA9IGZ1bmN0aW9uIHN0cmluZyhydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMsICdzdHJpbmcnKTtcbiAgICBpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICBydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICBydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgcnVsZXMucGF0dGVybihydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgaWYgKHJ1bGUud2hpdGVzcGFjZSA9PT0gdHJ1ZSkge1xuICAgICAgICBydWxlcy53aGl0ZXNwYWNlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNhbGxiYWNrKGVycm9ycyk7XG59O1xuZXhwb3J0IGRlZmF1bHQgc3RyaW5nOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/string.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/async-validator/es/validator/type.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@rc-component/async-validator/es/validator/type.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 _rule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule */ \"./node_modules/@rc-component/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/async-validator/es/util.js\");\n\n\nvar type = function type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, ruleType) && !rule.required) {\n return callback();\n }\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, ruleType);\n if (!(0,_util__WEBPACK_IMPORTED_MODULE_1__.isEmptyValue)(value, ruleType)) {\n _rule__WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (type);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3R5cGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRCO0FBQ1c7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbURBQVk7QUFDcEI7QUFDQTtBQUNBLElBQUksNkNBQUs7QUFDVCxTQUFTLG1EQUFZO0FBQ3JCLE1BQU0sNkNBQUs7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFlLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci90eXBlLmpzPzA2NjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJ1bGVzIGZyb20gXCIuLi9ydWxlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIHR5cGUgPSBmdW5jdGlvbiB0eXBlKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBydWxlVHlwZSA9IHJ1bGUudHlwZTtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSwgcnVsZVR5cGUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCBydWxlVHlwZSk7XG4gICAgaWYgKCFpc0VtcHR5VmFsdWUodmFsdWUsIHJ1bGVUeXBlKSkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBjYWxsYmFjayhlcnJvcnMpO1xufTtcbmV4cG9ydCBkZWZhdWx0IHR5cGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/async-validator/es/validator/type.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/ColorPicker.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ \"./node_modules/@rc-component/color-picker/es/util.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./color */ \"./node_modules/@rc-component/color-picker/es/color.js\");\n/* harmony import */ var _components_ColorBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/ColorBlock */ \"./node_modules/@rc-component/color-picker/es/components/ColorBlock.js\");\n/* harmony import */ var _components_Picker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/Picker */ \"./node_modules/@rc-component/color-picker/es/components/Picker.js\");\n/* harmony import */ var _hooks_useColorState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/useColorState */ \"./node_modules/@rc-component/color-picker/es/hooks/useColorState.js\");\n/* harmony import */ var _hooks_useComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks/useComponent */ \"./node_modules/@rc-component/color-picker/es/hooks/useComponent.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar HUE_COLORS = [{\n color: 'rgb(255, 0, 0)',\n percent: 0\n}, {\n color: 'rgb(255, 255, 0)',\n percent: 17\n}, {\n color: 'rgb(0, 255, 0)',\n percent: 33\n}, {\n color: 'rgb(0, 255, 255)',\n percent: 50\n}, {\n color: 'rgb(0, 0, 255)',\n percent: 67\n}, {\n color: 'rgb(255, 0, 255)',\n percent: 83\n}, {\n color: 'rgb(255, 0, 0)',\n percent: 100\n}];\nvar ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_3__.forwardRef)(function (props, ref) {\n var value = props.value,\n defaultValue = props.defaultValue,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? _util__WEBPACK_IMPORTED_MODULE_4__.ColorPickerPrefixCls : _props$prefixCls,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n className = props.className,\n style = props.style,\n panelRender = props.panelRender,\n _props$disabledAlpha = props.disabledAlpha,\n disabledAlpha = _props$disabledAlpha === void 0 ? false : _props$disabledAlpha,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n components = props.components;\n\n // ========================== Components ==========================\n var _useComponent = (0,_hooks_useComponent__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(components),\n _useComponent2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useComponent, 1),\n Slider = _useComponent2[0];\n\n // ============================ Color =============================\n var _useColorState = (0,_hooks_useColorState__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(defaultValue || _util__WEBPACK_IMPORTED_MODULE_4__.defaultColor, value),\n _useColorState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useColorState, 2),\n colorValue = _useColorState2[0],\n setColorValue = _useColorState2[1];\n var alphaColor = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n return colorValue.setA(1).toRgbString();\n }, [colorValue]);\n\n // ============================ Events ============================\n var handleChange = function handleChange(data, type) {\n if (!value) {\n setColorValue(data);\n }\n onChange === null || onChange === void 0 || onChange(data, type);\n };\n\n // Convert\n var getHueColor = function getHueColor(hue) {\n return new _color__WEBPACK_IMPORTED_MODULE_6__.Color(colorValue.setHue(hue));\n };\n var getAlphaColor = function getAlphaColor(alpha) {\n return new _color__WEBPACK_IMPORTED_MODULE_6__.Color(colorValue.setA(alpha / 100));\n };\n\n // Slider change\n var onHueChange = function onHueChange(hue) {\n handleChange(getHueColor(hue), {\n type: 'hue',\n value: hue\n });\n };\n var onAlphaChange = function onAlphaChange(alpha) {\n handleChange(getAlphaColor(alpha), {\n type: 'alpha',\n value: alpha\n });\n };\n\n // Complete\n var onHueChangeComplete = function onHueChangeComplete(hue) {\n if (onChangeComplete) {\n onChangeComplete(getHueColor(hue));\n }\n };\n var onAlphaChangeComplete = function onAlphaChangeComplete(alpha) {\n if (onChangeComplete) {\n onChangeComplete(getAlphaColor(alpha));\n }\n };\n\n // ============================ Render ============================\n var mergeCls = classnames__WEBPACK_IMPORTED_MODULE_5___default()(\"\".concat(prefixCls, \"-panel\"), className, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, \"\".concat(prefixCls, \"-panel-disabled\"), disabled));\n var sharedSliderProps = {\n prefixCls: prefixCls,\n disabled: disabled,\n color: colorValue\n };\n var defaultPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_components_Picker__WEBPACK_IMPORTED_MODULE_8__[\"default\"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n onChange: handleChange\n }, sharedSliderProps, {\n onChangeComplete: onChangeComplete\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-slider-container\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_5___default()(\"\".concat(prefixCls, \"-slider-group\"), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, \"\".concat(prefixCls, \"-slider-group-disabled-alpha\"), disabledAlpha))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(Slider, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, sharedSliderProps, {\n type: \"hue\",\n colors: HUE_COLORS,\n min: 0,\n max: 359,\n value: colorValue.getHue(),\n onChange: onHueChange,\n onChangeComplete: onHueChangeComplete\n })), !disabledAlpha && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(Slider, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, sharedSliderProps, {\n type: \"alpha\",\n colors: [{\n percent: 0,\n color: 'rgba(255, 0, 4, 0)'\n }, {\n percent: 100,\n color: alphaColor\n }],\n min: 0,\n max: 100,\n value: colorValue.a * 100,\n onChange: onAlphaChange,\n onChangeComplete: onAlphaChangeComplete\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_components_ColorBlock__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n color: colorValue.toRgbString(),\n prefixCls: prefixCls\n })));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: mergeCls,\n style: style,\n ref: ref\n }, typeof panelRender === 'function' ? panelRender(defaultPanel) : defaultPanel);\n});\nif (true) {\n ColorPicker.displayName = 'ColorPicker';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorPicker);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvQ29sb3JQaWNrZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUEwRDtBQUNjO0FBQ0Y7QUFDbkI7QUFDUztBQUN4QjtBQUNKO0FBQ2lCO0FBQ1I7QUFDUztBQUNGO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRCwrQkFBK0IsaURBQVU7QUFDekM7QUFDQTtBQUNBO0FBQ0EsOENBQThDLHVEQUFvQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnRUFBWTtBQUNsQyxxQkFBcUIsb0ZBQWM7QUFDbkM7O0FBRUE7QUFDQSx1QkFBdUIsZ0VBQWEsaUJBQWlCLCtDQUFZO0FBQ2pFLHNCQUFzQixvRkFBYztBQUNwQztBQUNBO0FBQ0EsbUJBQW1CLDhDQUFPO0FBQzFCO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSx5Q0FBSztBQUNwQjtBQUNBO0FBQ0EsZUFBZSx5Q0FBSztBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixpREFBVSw0Q0FBNEMscUZBQWUsR0FBRztBQUN6RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGdEQUFtQixDQUFDLDJDQUFjLHFCQUFxQixnREFBbUIsQ0FBQywwREFBTSxFQUFFLDhFQUFRO0FBQzdIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRyxpQkFBaUIsZ0RBQW1CO0FBQ3ZDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQyxlQUFlLGlEQUFVLHdDQUF3QyxxRkFBZSxHQUFHO0FBQ25GLEdBQUcsZUFBZSxnREFBbUIsU0FBUyw4RUFBUSxHQUFHO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxtQ0FBbUMsZ0RBQW1CLFNBQVMsOEVBQVEsR0FBRztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUIsQ0FBQyw4REFBVTtBQUNuRDtBQUNBO0FBQ0EsR0FBRztBQUNILHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRCxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQSxpRUFBZSxXQUFXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9Db2xvclBpY2tlci5qcz9hNGYwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2xvclBpY2tlclByZWZpeENscywgZGVmYXVsdENvbG9yIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuL2NvbG9yXCI7XG5pbXBvcnQgQ29sb3JCbG9jayBmcm9tIFwiLi9jb21wb25lbnRzL0NvbG9yQmxvY2tcIjtcbmltcG9ydCBQaWNrZXIgZnJvbSBcIi4vY29tcG9uZW50cy9QaWNrZXJcIjtcbmltcG9ydCB1c2VDb2xvclN0YXRlIGZyb20gXCIuL2hvb2tzL3VzZUNvbG9yU3RhdGVcIjtcbmltcG9ydCB1c2VDb21wb25lbnQgZnJvbSBcIi4vaG9va3MvdXNlQ29tcG9uZW50XCI7XG52YXIgSFVFX0NPTE9SUyA9IFt7XG4gIGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLFxuICBwZXJjZW50OiAwXG59LCB7XG4gIGNvbG9yOiAncmdiKDI1NSwgMjU1LCAwKScsXG4gIHBlcmNlbnQ6IDE3XG59LCB7XG4gIGNvbG9yOiAncmdiKDAsIDI1NSwgMCknLFxuICBwZXJjZW50OiAzM1xufSwge1xuICBjb2xvcjogJ3JnYigwLCAyNTUsIDI1NSknLFxuICBwZXJjZW50OiA1MFxufSwge1xuICBjb2xvcjogJ3JnYigwLCAwLCAyNTUpJyxcbiAgcGVyY2VudDogNjdcbn0sIHtcbiAgY29sb3I6ICdyZ2IoMjU1LCAwLCAyNTUpJyxcbiAgcGVyY2VudDogODNcbn0sIHtcbiAgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsXG4gIHBlcmNlbnQ6IDEwMFxufV07XG52YXIgQ29sb3JQaWNrZXIgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgX3Byb3BzJHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICBwcmVmaXhDbHMgPSBfcHJvcHMkcHJlZml4Q2xzID09PSB2b2lkIDAgPyBDb2xvclBpY2tlclByZWZpeENscyA6IF9wcm9wcyRwcmVmaXhDbHMsXG4gICAgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSxcbiAgICBvbkNoYW5nZUNvbXBsZXRlID0gcHJvcHMub25DaGFuZ2VDb21wbGV0ZSxcbiAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgc3R5bGUgPSBwcm9wcy5zdHlsZSxcbiAgICBwYW5lbFJlbmRlciA9IHByb3BzLnBhbmVsUmVuZGVyLFxuICAgIF9wcm9wcyRkaXNhYmxlZEFscGhhID0gcHJvcHMuZGlzYWJsZWRBbHBoYSxcbiAgICBkaXNhYmxlZEFscGhhID0gX3Byb3BzJGRpc2FibGVkQWxwaGEgPT09IHZvaWQgMCA/IGZhbHNlIDogX3Byb3BzJGRpc2FibGVkQWxwaGEsXG4gICAgX3Byb3BzJGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQsXG4gICAgZGlzYWJsZWQgPSBfcHJvcHMkZGlzYWJsZWQgPT09IHZvaWQgMCA/IGZhbHNlIDogX3Byb3BzJGRpc2FibGVkLFxuICAgIGNvbXBvbmVudHMgPSBwcm9wcy5jb21wb25lbnRzO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IENvbXBvbmVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIF91c2VDb21wb25lbnQgPSB1c2VDb21wb25lbnQoY29tcG9uZW50cyksXG4gICAgX3VzZUNvbXBvbmVudDIgPSBfc2xpY2VkVG9BcnJheShfdXNlQ29tcG9uZW50LCAxKSxcbiAgICBTbGlkZXIgPSBfdXNlQ29tcG9uZW50MlswXTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IENvbG9yID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHZhciBfdXNlQ29sb3JTdGF0ZSA9IHVzZUNvbG9yU3RhdGUoZGVmYXVsdFZhbHVlIHx8IGRlZmF1bHRDb2xvciwgdmFsdWUpLFxuICAgIF91c2VDb2xvclN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VDb2xvclN0YXRlLCAyKSxcbiAgICBjb2xvclZhbHVlID0gX3VzZUNvbG9yU3RhdGUyWzBdLFxuICAgIHNldENvbG9yVmFsdWUgPSBfdXNlQ29sb3JTdGF0ZTJbMV07XG4gIHZhciBhbHBoYUNvbG9yID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNvbG9yVmFsdWUuc2V0QSgxKS50b1JnYlN0cmluZygpO1xuICB9LCBbY29sb3JWYWx1ZV0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRXZlbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIGhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShkYXRhLCB0eXBlKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgc2V0Q29sb3JWYWx1ZShkYXRhKTtcbiAgICB9XG4gICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCB8fCBvbkNoYW5nZShkYXRhLCB0eXBlKTtcbiAgfTtcblxuICAvLyBDb252ZXJ0XG4gIHZhciBnZXRIdWVDb2xvciA9IGZ1bmN0aW9uIGdldEh1ZUNvbG9yKGh1ZSkge1xuICAgIHJldHVybiBuZXcgQ29sb3IoY29sb3JWYWx1ZS5zZXRIdWUoaHVlKSk7XG4gIH07XG4gIHZhciBnZXRBbHBoYUNvbG9yID0gZnVuY3Rpb24gZ2V0QWxwaGFDb2xvcihhbHBoYSkge1xuICAgIHJldHVybiBuZXcgQ29sb3IoY29sb3JWYWx1ZS5zZXRBKGFscGhhIC8gMTAwKSk7XG4gIH07XG5cbiAgLy8gU2xpZGVyIGNoYW5nZVxuICB2YXIgb25IdWVDaGFuZ2UgPSBmdW5jdGlvbiBvbkh1ZUNoYW5nZShodWUpIHtcbiAgICBoYW5kbGVDaGFuZ2UoZ2V0SHVlQ29sb3IoaHVlKSwge1xuICAgICAgdHlwZTogJ2h1ZScsXG4gICAgICB2YWx1ZTogaHVlXG4gICAgfSk7XG4gIH07XG4gIHZhciBvbkFscGhhQ2hhbmdlID0gZnVuY3Rpb24gb25BbHBoYUNoYW5nZShhbHBoYSkge1xuICAgIGhhbmRsZUNoYW5nZShnZXRBbHBoYUNvbG9yKGFscGhhKSwge1xuICAgICAgdHlwZTogJ2FscGhhJyxcbiAgICAgIHZhbHVlOiBhbHBoYVxuICAgIH0pO1xuICB9O1xuXG4gIC8vIENvbXBsZXRlXG4gIHZhciBvbkh1ZUNoYW5nZUNvbXBsZXRlID0gZnVuY3Rpb24gb25IdWVDaGFuZ2VDb21wbGV0ZShodWUpIHtcbiAgICBpZiAob25DaGFuZ2VDb21wbGV0ZSkge1xuICAgICAgb25DaGFuZ2VDb21wbGV0ZShnZXRIdWVDb2xvcihodWUpKTtcbiAgICB9XG4gIH07XG4gIHZhciBvbkFscGhhQ2hhbmdlQ29tcGxldGUgPSBmdW5jdGlvbiBvbkFscGhhQ2hhbmdlQ29tcGxldGUoYWxwaGEpIHtcbiAgICBpZiAob25DaGFuZ2VDb21wbGV0ZSkge1xuICAgICAgb25DaGFuZ2VDb21wbGV0ZShnZXRBbHBoYUNvbG9yKGFscGhhKSk7XG4gICAgfVxuICB9O1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVuZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIG1lcmdlQ2xzID0gY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXBhbmVsXCIpLCBjbGFzc05hbWUsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wYW5lbC1kaXNhYmxlZFwiKSwgZGlzYWJsZWQpKTtcbiAgdmFyIHNoYXJlZFNsaWRlclByb3BzID0ge1xuICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBjb2xvcjogY29sb3JWYWx1ZVxuICB9O1xuICB2YXIgZGVmYXVsdFBhbmVsID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFBpY2tlciwgX2V4dGVuZHMoe1xuICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2VcbiAgfSwgc2hhcmVkU2xpZGVyUHJvcHMsIHtcbiAgICBvbkNoYW5nZUNvbXBsZXRlOiBvbkNoYW5nZUNvbXBsZXRlXG4gIH0pKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbGlkZXItY29udGFpbmVyXCIpXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbGlkZXItZ3JvdXBcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbGlkZXItZ3JvdXAtZGlzYWJsZWQtYWxwaGFcIiksIGRpc2FibGVkQWxwaGEpKVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTbGlkZXIsIF9leHRlbmRzKHt9LCBzaGFyZWRTbGlkZXJQcm9wcywge1xuICAgIHR5cGU6IFwiaHVlXCIsXG4gICAgY29sb3JzOiBIVUVfQ09MT1JTLFxuICAgIG1pbjogMCxcbiAgICBtYXg6IDM1OSxcbiAgICB2YWx1ZTogY29sb3JWYWx1ZS5nZXRIdWUoKSxcbiAgICBvbkNoYW5nZTogb25IdWVDaGFuZ2UsXG4gICAgb25DaGFuZ2VDb21wbGV0ZTogb25IdWVDaGFuZ2VDb21wbGV0ZVxuICB9KSksICFkaXNhYmxlZEFscGhhICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFNsaWRlciwgX2V4dGVuZHMoe30sIHNoYXJlZFNsaWRlclByb3BzLCB7XG4gICAgdHlwZTogXCJhbHBoYVwiLFxuICAgIGNvbG9yczogW3tcbiAgICAgIHBlcmNlbnQ6IDAsXG4gICAgICBjb2xvcjogJ3JnYmEoMjU1LCAwLCA0LCAwKSdcbiAgICB9LCB7XG4gICAgICBwZXJjZW50OiAxMDAsXG4gICAgICBjb2xvcjogYWxwaGFDb2xvclxuICAgIH1dLFxuICAgIG1pbjogMCxcbiAgICBtYXg6IDEwMCxcbiAgICB2YWx1ZTogY29sb3JWYWx1ZS5hICogMTAwLFxuICAgIG9uQ2hhbmdlOiBvbkFscGhhQ2hhbmdlLFxuICAgIG9uQ2hhbmdlQ29tcGxldGU6IG9uQWxwaGFDaGFuZ2VDb21wbGV0ZVxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb2xvckJsb2NrLCB7XG4gICAgY29sb3I6IGNvbG9yVmFsdWUudG9SZ2JTdHJpbmcoKSxcbiAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICB9KSkpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogbWVyZ2VDbHMsXG4gICAgc3R5bGU6IHN0eWxlLFxuICAgIHJlZjogcmVmXG4gIH0sIHR5cGVvZiBwYW5lbFJlbmRlciA9PT0gJ2Z1bmN0aW9uJyA/IHBhbmVsUmVuZGVyKGRlZmF1bHRQYW5lbCkgOiBkZWZhdWx0UGFuZWwpO1xufSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBDb2xvclBpY2tlci5kaXNwbGF5TmFtZSA9ICdDb2xvclBpY2tlcic7XG59XG5leHBvcnQgZGVmYXVsdCBDb2xvclBpY2tlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/ColorPicker.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/color.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/color.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 */ Color: () => (/* binding */ Color),\n/* harmony export */ getRoundNumber: () => (/* binding */ getRoundNumber)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"./node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _ant_design_fast_color__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/fast-color */ \"./node_modules/@ant-design/fast-color/es/index.js\");\n\n\n\n\n\n\n\nvar _excluded = [\"b\"],\n _excluded2 = [\"v\"];\n\nvar getRoundNumber = function getRoundNumber(value) {\n return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n if (color instanceof _ant_design_fast_color__WEBPACK_IMPORTED_MODULE_7__.FastColor) {\n return color;\n }\n if (color && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color) === 'object' && 'h' in color && 'b' in color) {\n var _ref = color,\n b = _ref.b,\n resets = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_ref, _excluded);\n return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({}, resets), {}, {\n v: b\n });\n }\n if (typeof color === 'string' && /hsb/.test(color)) {\n return color.replace(/hsb/, 'hsv');\n }\n return color;\n};\nvar Color = /*#__PURE__*/function (_FastColor) {\n (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Color, _FastColor);\n var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Color);\n function Color(color) {\n (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Color);\n return _super.call(this, convertHsb2Hsv(color));\n }\n (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Color, [{\n key: \"toHsbString\",\n value: function toHsbString() {\n var hsb = this.toHsb();\n var saturation = getRoundNumber(hsb.s * 100);\n var lightness = getRoundNumber(hsb.b * 100);\n var hue = getRoundNumber(hsb.h);\n var alpha = hsb.a;\n var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n return alpha === 1 ? hsbString : hsbaString;\n }\n }, {\n key: \"toHsb\",\n value: function toHsb() {\n var _this$toHsv = this.toHsv(),\n v = _this$toHsv.v,\n resets = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_this$toHsv, _excluded2);\n return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({}, resets), {}, {\n b: v,\n a: this.a\n });\n }\n }]);\n return Color;\n}(_ant_design_fast_color__WEBPACK_IMPORTED_MODULE_7__.FastColor);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29sb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUF3RTtBQUNOO0FBQ047QUFDTTtBQUNHO0FBQ3FCO0FBQ2xDO0FBQ3hEO0FBQ0E7QUFDbUQ7QUFDNUM7QUFDUDtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsNkRBQVM7QUFDaEM7QUFDQTtBQUNBLGVBQWUsNkVBQU87QUFDdEI7QUFDQTtBQUNBLGVBQWUsOEZBQXdCO0FBQ3ZDLFdBQVcsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHLGFBQWE7QUFDdEQ7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxFQUFFLCtFQUFTO0FBQ1gsZUFBZSxrRkFBWTtBQUMzQjtBQUNBLElBQUkscUZBQWU7QUFDbkI7QUFDQTtBQUNBLEVBQUUsa0ZBQVk7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDhGQUF3QjtBQUN6QyxhQUFhLG9GQUFhLENBQUMsb0ZBQWEsR0FBRyxhQUFhO0FBQ3hEO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDLENBQUMsNkRBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvY29sb3ItcGlja2VyL2VzL2NvbG9yLmpzPzM0MDIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xudmFyIF9leGNsdWRlZCA9IFtcImJcIl0sXG4gIF9leGNsdWRlZDIgPSBbXCJ2XCJdO1xuaW1wb3J0IHsgRmFzdENvbG9yIH0gZnJvbSAnQGFudC1kZXNpZ24vZmFzdC1jb2xvcic7XG5leHBvcnQgdmFyIGdldFJvdW5kTnVtYmVyID0gZnVuY3Rpb24gZ2V0Um91bmROdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIE1hdGgucm91bmQoTnVtYmVyKHZhbHVlIHx8IDApKTtcbn07XG52YXIgY29udmVydEhzYjJIc3YgPSBmdW5jdGlvbiBjb252ZXJ0SHNiMkhzdihjb2xvcikge1xuICBpZiAoY29sb3IgaW5zdGFuY2VvZiBGYXN0Q29sb3IpIHtcbiAgICByZXR1cm4gY29sb3I7XG4gIH1cbiAgaWYgKGNvbG9yICYmIF90eXBlb2YoY29sb3IpID09PSAnb2JqZWN0JyAmJiAnaCcgaW4gY29sb3IgJiYgJ2InIGluIGNvbG9yKSB7XG4gICAgdmFyIF9yZWYgPSBjb2xvcixcbiAgICAgIGIgPSBfcmVmLmIsXG4gICAgICByZXNldHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXNldHMpLCB7fSwge1xuICAgICAgdjogYlxuICAgIH0pO1xuICB9XG4gIGlmICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnICYmIC9oc2IvLnRlc3QoY29sb3IpKSB7XG4gICAgcmV0dXJuIGNvbG9yLnJlcGxhY2UoL2hzYi8sICdoc3YnKTtcbiAgfVxuICByZXR1cm4gY29sb3I7XG59O1xuZXhwb3J0IHZhciBDb2xvciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0Zhc3RDb2xvcikge1xuICBfaW5oZXJpdHMoQ29sb3IsIF9GYXN0Q29sb3IpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENvbG9yKTtcbiAgZnVuY3Rpb24gQ29sb3IoY29sb3IpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29sb3IpO1xuICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzLCBjb252ZXJ0SHNiMkhzdihjb2xvcikpO1xuICB9XG4gIF9jcmVhdGVDbGFzcyhDb2xvciwgW3tcbiAgICBrZXk6IFwidG9Ic2JTdHJpbmdcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ic2JTdHJpbmcoKSB7XG4gICAgICB2YXIgaHNiID0gdGhpcy50b0hzYigpO1xuICAgICAgdmFyIHNhdHVyYXRpb24gPSBnZXRSb3VuZE51bWJlcihoc2IucyAqIDEwMCk7XG4gICAgICB2YXIgbGlnaHRuZXNzID0gZ2V0Um91bmROdW1iZXIoaHNiLmIgKiAxMDApO1xuICAgICAgdmFyIGh1ZSA9IGdldFJvdW5kTnVtYmVyKGhzYi5oKTtcbiAgICAgIHZhciBhbHBoYSA9IGhzYi5hO1xuICAgICAgdmFyIGhzYlN0cmluZyA9IFwiaHNiKFwiLmNvbmNhdChodWUsIFwiLCBcIikuY29uY2F0KHNhdHVyYXRpb24sIFwiJSwgXCIpLmNvbmNhdChsaWdodG5lc3MsIFwiJSlcIik7XG4gICAgICB2YXIgaHNiYVN0cmluZyA9IFwiaHNiYShcIi5jb25jYXQoaHVlLCBcIiwgXCIpLmNvbmNhdChzYXR1cmF0aW9uLCBcIiUsIFwiKS5jb25jYXQobGlnaHRuZXNzLCBcIiUsIFwiKS5jb25jYXQoYWxwaGEudG9GaXhlZChhbHBoYSA9PT0gMCA/IDAgOiAyKSwgXCIpXCIpO1xuICAgICAgcmV0dXJuIGFscGhhID09PSAxID8gaHNiU3RyaW5nIDogaHNiYVN0cmluZztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidG9Ic2JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ic2IoKSB7XG4gICAgICB2YXIgX3RoaXMkdG9Ic3YgPSB0aGlzLnRvSHN2KCksXG4gICAgICAgIHYgPSBfdGhpcyR0b0hzdi52LFxuICAgICAgICByZXNldHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkdG9Ic3YsIF9leGNsdWRlZDIpO1xuICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzZXRzKSwge30sIHtcbiAgICAgICAgYjogdixcbiAgICAgICAgYTogdGhpcy5hXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIENvbG9yO1xufShGYXN0Q29sb3IpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/color.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/ColorBlock.js":
+/*!*****************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/ColorBlock.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 classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nvar ColorBlock = function ColorBlock(_ref) {\n var color = _ref.color,\n prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n onClick = _ref.onClick;\n var colorBlockCls = \"\".concat(prefixCls, \"-color-block\");\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(colorBlockCls, className),\n style: style,\n onClick: onClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n className: \"\".concat(colorBlockCls, \"-inner\"),\n style: {\n background: color\n }\n }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorBlock);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9Db2xvckJsb2NrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0M7QUFDVjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnREFBbUI7QUFDekMsZUFBZSxpREFBVTtBQUN6QjtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvY29sb3ItcGlja2VyL2VzL2NvbXBvbmVudHMvQ29sb3JCbG9jay5qcz9lMzVhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbnZhciBDb2xvckJsb2NrID0gZnVuY3Rpb24gQ29sb3JCbG9jayhfcmVmKSB7XG4gIHZhciBjb2xvciA9IF9yZWYuY29sb3IsXG4gICAgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgY2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgIG9uQ2xpY2sgPSBfcmVmLm9uQ2xpY2s7XG4gIHZhciBjb2xvckJsb2NrQ2xzID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb2xvci1ibG9ja1wiKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY29sb3JCbG9ja0NscywgY2xhc3NOYW1lKSxcbiAgICBzdHlsZTogc3R5bGUsXG4gICAgb25DbGljazogb25DbGlja1xuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjb2xvckJsb2NrQ2xzLCBcIi1pbm5lclwiKSxcbiAgICBzdHlsZToge1xuICAgICAgYmFja2dyb3VuZDogY29sb3JcbiAgICB9XG4gIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBDb2xvckJsb2NrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/ColorBlock.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Gradient.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Gradient.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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color */ \"./node_modules/@rc-component/color-picker/es/color.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/color-picker/es/util.js\");\n\n\n\nvar Gradient = function Gradient(_ref) {\n var colors = _ref.colors,\n children = _ref.children,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'to right' : _ref$direction,\n type = _ref.type,\n prefixCls = _ref.prefixCls;\n var gradientColors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return colors.map(function (color, idx) {\n var result = (0,_util__WEBPACK_IMPORTED_MODULE_2__.generateColor)(color);\n if (type === 'alpha' && idx === colors.length - 1) {\n result = new _color__WEBPACK_IMPORTED_MODULE_1__.Color(result.setA(1));\n }\n return result.toRgbString();\n }).join(',');\n }, [colors, type]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-gradient\"),\n style: {\n position: 'absolute',\n inset: 0,\n background: \"linear-gradient(\".concat(direction, \", \").concat(gradientColors, \")\")\n }\n }, children);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Gradient);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9HcmFkaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVDO0FBQ047QUFDTztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1Qiw4Q0FBTztBQUM5QjtBQUNBLG1CQUFtQixvREFBYTtBQUNoQztBQUNBLHFCQUFxQix5Q0FBSztBQUMxQjtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFFBQVEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvY29sb3ItcGlja2VyL2VzL2NvbXBvbmVudHMvR3JhZGllbnQuanM/YTRkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uL2NvbG9yXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvbG9yIH0gZnJvbSBcIi4uL3V0aWxcIjtcbnZhciBHcmFkaWVudCA9IGZ1bmN0aW9uIEdyYWRpZW50KF9yZWYpIHtcbiAgdmFyIGNvbG9ycyA9IF9yZWYuY29sb3JzLFxuICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICBfcmVmJGRpcmVjdGlvbiA9IF9yZWYuZGlyZWN0aW9uLFxuICAgIGRpcmVjdGlvbiA9IF9yZWYkZGlyZWN0aW9uID09PSB2b2lkIDAgPyAndG8gcmlnaHQnIDogX3JlZiRkaXJlY3Rpb24sXG4gICAgdHlwZSA9IF9yZWYudHlwZSxcbiAgICBwcmVmaXhDbHMgPSBfcmVmLnByZWZpeENscztcbiAgdmFyIGdyYWRpZW50Q29sb3JzID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNvbG9ycy5tYXAoZnVuY3Rpb24gKGNvbG9yLCBpZHgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBnZW5lcmF0ZUNvbG9yKGNvbG9yKTtcbiAgICAgIGlmICh0eXBlID09PSAnYWxwaGEnICYmIGlkeCA9PT0gY29sb3JzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcmVzdWx0ID0gbmV3IENvbG9yKHJlc3VsdC5zZXRBKDEpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQudG9SZ2JTdHJpbmcoKTtcbiAgICB9KS5qb2luKCcsJyk7XG4gIH0sIFtjb2xvcnMsIHR5cGVdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JhZGllbnRcIiksXG4gICAgc3R5bGU6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgaW5zZXQ6IDAsXG4gICAgICBiYWNrZ3JvdW5kOiBcImxpbmVhci1ncmFkaWVudChcIi5jb25jYXQoZGlyZWN0aW9uLCBcIiwgXCIpLmNvbmNhdChncmFkaWVudENvbG9ycywgXCIpXCIpXG4gICAgfVxuICB9LCBjaGlsZHJlbik7XG59O1xuZXhwb3J0IGRlZmF1bHQgR3JhZGllbnQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Gradient.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Handler.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Handler.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_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\n\nvar Handler = function Handler(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'default' : _ref$size,\n color = _ref.color,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefixCls, \"-handler\"), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, \"\".concat(prefixCls, \"-handler-sm\"), size === 'small')),\n style: {\n backgroundColor: color\n }\n });\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Handler);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9IYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXdFO0FBQ3BDO0FBQ1Y7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnREFBbUI7QUFDekMsZUFBZSxpREFBVSxtQ0FBbUMscUZBQWUsR0FBRztBQUM5RTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9jb21wb25lbnRzL0hhbmRsZXIuanM/NjRjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIEhhbmRsZXIgPSBmdW5jdGlvbiBIYW5kbGVyKF9yZWYpIHtcbiAgdmFyIF9yZWYkc2l6ZSA9IF9yZWYuc2l6ZSxcbiAgICBzaXplID0gX3JlZiRzaXplID09PSB2b2lkIDAgPyAnZGVmYXVsdCcgOiBfcmVmJHNpemUsXG4gICAgY29sb3IgPSBfcmVmLmNvbG9yLFxuICAgIHByZWZpeENscyA9IF9yZWYucHJlZml4Q2xzO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhhbmRsZXJcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1oYW5kbGVyLXNtXCIpLCBzaXplID09PSAnc21hbGwnKSksXG4gICAgc3R5bGU6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JcbiAgICB9XG4gIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IEhhbmRsZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Handler.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Palette.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Palette.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_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nvar Palette = function Palette(_ref) {\n var children = _ref.children,\n style = _ref.style,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-palette\"),\n style: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n position: 'relative'\n }, style)\n }, children);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Palette);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9QYWxldHRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRTtBQUMzQztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQSxXQUFXLG9GQUFhO0FBQ3hCO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvY29sb3ItcGlja2VyL2VzL2NvbXBvbmVudHMvUGFsZXR0ZS5qcz83NDhlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFBhbGV0dGUgPSBmdW5jdGlvbiBQYWxldHRlKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICBzdHlsZSA9IF9yZWYuc3R5bGUsXG4gICAgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHM7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXBhbGV0dGVcIiksXG4gICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoe1xuICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgICB9LCBzdHlsZSlcbiAgfSwgY2hpbGRyZW4pO1xufTtcbmV4cG9ydCBkZWZhdWx0IFBhbGV0dGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Palette.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Picker.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Picker.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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _hooks_useColorDrag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/useColorDrag */ \"./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/color-picker/es/util.js\");\n/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util */ \"./node_modules/rc-util/es/index.js\");\n/* harmony import */ var _Handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Handler */ \"./node_modules/@rc-component/color-picker/es/components/Handler.js\");\n/* harmony import */ var _Palette__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Palette */ \"./node_modules/@rc-component/color-picker/es/components/Palette.js\");\n/* harmony import */ var _Transform__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Transform */ \"./node_modules/@rc-component/color-picker/es/components/Transform.js\");\n\n\n\n\n\n\n\n\nvar Picker = function Picker(_ref) {\n var color = _ref.color,\n onChange = _ref.onChange,\n prefixCls = _ref.prefixCls,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled;\n var pickerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();\n var transformRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();\n var colorRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(color);\n var onDragChange = (0,rc_util__WEBPACK_IMPORTED_MODULE_4__.useEvent)(function (offsetValue) {\n var calcColor = (0,_util__WEBPACK_IMPORTED_MODULE_3__.calculateColor)({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: pickerRef,\n color: color\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n });\n var _useColorDrag = (0,_hooks_useColorDrag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n color: color,\n containerRef: pickerRef,\n targetRef: transformRef,\n calculate: function calculate() {\n return (0,_util__WEBPACK_IMPORTED_MODULE_3__.calcOffset)(color);\n },\n onDragChange: onDragChange,\n onDragChangeComplete: function onDragChangeComplete() {\n return onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current);\n },\n disabledDrag: disabled\n }),\n _useColorDrag2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n ref: pickerRef,\n className: \"\".concat(prefixCls, \"-select\"),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Palette__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n prefixCls: prefixCls\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Transform__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n x: offset.x,\n y: offset.y,\n ref: transformRef\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Handler__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n color: color.toRgbString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-saturation\"),\n style: {\n backgroundColor: \"hsl(\".concat(color.toHsb().h, \",100%, 50%)\"),\n backgroundImage: 'linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))'\n }\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Picker);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9QaWNrZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXNFO0FBQ2hDO0FBQ1c7QUFDSTtBQUNsQjtBQUNIO0FBQ0E7QUFDSTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNkNBQU07QUFDeEIscUJBQXFCLDZDQUFNO0FBQzNCLGlCQUFpQiw2Q0FBTTtBQUN2QixxQkFBcUIsaURBQVE7QUFDN0Isb0JBQW9CLHFEQUFjO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLCtEQUFZO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpREFBVTtBQUN6QixPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSztBQUNMLHFCQUFxQixvRkFBYztBQUNuQztBQUNBO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUIsQ0FBQyxnREFBTztBQUM3QztBQUNBLEdBQUcsZUFBZSxnREFBbUIsQ0FBQyxrREFBUztBQUMvQztBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLENBQUMsZ0RBQU87QUFDN0M7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsTUFBTSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9QaWNrZXIuanM/NGU0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29sb3JEcmFnIGZyb20gXCIuLi9ob29rcy91c2VDb2xvckRyYWdcIjtcbmltcG9ydCB7IGNhbGNPZmZzZXQsIGNhbGN1bGF0ZUNvbG9yIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IHVzZUV2ZW50IH0gZnJvbSAncmMtdXRpbCc7XG5pbXBvcnQgSGFuZGxlciBmcm9tIFwiLi9IYW5kbGVyXCI7XG5pbXBvcnQgUGFsZXR0ZSBmcm9tIFwiLi9QYWxldHRlXCI7XG5pbXBvcnQgVHJhbnNmb3JtIGZyb20gXCIuL1RyYW5zZm9ybVwiO1xudmFyIFBpY2tlciA9IGZ1bmN0aW9uIFBpY2tlcihfcmVmKSB7XG4gIHZhciBjb2xvciA9IF9yZWYuY29sb3IsXG4gICAgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgIHByZWZpeENscyA9IF9yZWYucHJlZml4Q2xzLFxuICAgIG9uQ2hhbmdlQ29tcGxldGUgPSBfcmVmLm9uQ2hhbmdlQ29tcGxldGUsXG4gICAgZGlzYWJsZWQgPSBfcmVmLmRpc2FibGVkO1xuICB2YXIgcGlja2VyUmVmID0gdXNlUmVmKCk7XG4gIHZhciB0cmFuc2Zvcm1SZWYgPSB1c2VSZWYoKTtcbiAgdmFyIGNvbG9yUmVmID0gdXNlUmVmKGNvbG9yKTtcbiAgdmFyIG9uRHJhZ0NoYW5nZSA9IHVzZUV2ZW50KGZ1bmN0aW9uIChvZmZzZXRWYWx1ZSkge1xuICAgIHZhciBjYWxjQ29sb3IgPSBjYWxjdWxhdGVDb2xvcih7XG4gICAgICBvZmZzZXQ6IG9mZnNldFZhbHVlLFxuICAgICAgdGFyZ2V0UmVmOiB0cmFuc2Zvcm1SZWYsXG4gICAgICBjb250YWluZXJSZWY6IHBpY2tlclJlZixcbiAgICAgIGNvbG9yOiBjb2xvclxuICAgIH0pO1xuICAgIGNvbG9yUmVmLmN1cnJlbnQgPSBjYWxjQ29sb3I7XG4gICAgb25DaGFuZ2UoY2FsY0NvbG9yKTtcbiAgfSk7XG4gIHZhciBfdXNlQ29sb3JEcmFnID0gdXNlQ29sb3JEcmFnKHtcbiAgICAgIGNvbG9yOiBjb2xvcixcbiAgICAgIGNvbnRhaW5lclJlZjogcGlja2VyUmVmLFxuICAgICAgdGFyZ2V0UmVmOiB0cmFuc2Zvcm1SZWYsXG4gICAgICBjYWxjdWxhdGU6IGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIGNhbGNPZmZzZXQoY29sb3IpO1xuICAgICAgfSxcbiAgICAgIG9uRHJhZ0NoYW5nZTogb25EcmFnQ2hhbmdlLFxuICAgICAgb25EcmFnQ2hhbmdlQ29tcGxldGU6IGZ1bmN0aW9uIG9uRHJhZ0NoYW5nZUNvbXBsZXRlKCkge1xuICAgICAgICByZXR1cm4gb25DaGFuZ2VDb21wbGV0ZSA9PT0gbnVsbCB8fCBvbkNoYW5nZUNvbXBsZXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZUNvbXBsZXRlKGNvbG9yUmVmLmN1cnJlbnQpO1xuICAgICAgfSxcbiAgICAgIGRpc2FibGVkRHJhZzogZGlzYWJsZWRcbiAgICB9KSxcbiAgICBfdXNlQ29sb3JEcmFnMiA9IF9zbGljZWRUb0FycmF5KF91c2VDb2xvckRyYWcsIDIpLFxuICAgIG9mZnNldCA9IF91c2VDb2xvckRyYWcyWzBdLFxuICAgIGRyYWdTdGFydEhhbmRsZSA9IF91c2VDb2xvckRyYWcyWzFdO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIHJlZjogcGlja2VyUmVmLFxuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zZWxlY3RcIiksXG4gICAgb25Nb3VzZURvd246IGRyYWdTdGFydEhhbmRsZSxcbiAgICBvblRvdWNoU3RhcnQ6IGRyYWdTdGFydEhhbmRsZVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQYWxldHRlLCB7XG4gICAgcHJlZml4Q2xzOiBwcmVmaXhDbHNcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJhbnNmb3JtLCB7XG4gICAgeDogb2Zmc2V0LngsXG4gICAgeTogb2Zmc2V0LnksXG4gICAgcmVmOiB0cmFuc2Zvcm1SZWZcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSGFuZGxlciwge1xuICAgIGNvbG9yOiBjb2xvci50b1JnYlN0cmluZygpLFxuICAgIHByZWZpeENsczogcHJlZml4Q2xzXG4gIH0pKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zYXR1cmF0aW9uXCIpLFxuICAgIHN0eWxlOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiaHNsKFwiLmNvbmNhdChjb2xvci50b0hzYigpLmgsIFwiLDEwMCUsIDUwJSlcIiksXG4gICAgICBiYWNrZ3JvdW5kSW1hZ2U6ICdsaW5lYXItZ3JhZGllbnQoMGRlZywgIzAwMCwgdHJhbnNwYXJlbnQpLGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZiwgaHNsYSgwLCAwJSwgMTAwJSwgMCkpJ1xuICAgIH1cbiAgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBQaWNrZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Picker.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Slider.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Slider.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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _hooks_useColorDrag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/useColorDrag */ \"./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js\");\n/* harmony import */ var _Palette__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Palette */ \"./node_modules/@rc-component/color-picker/es/components/Palette.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util */ \"./node_modules/rc-util/es/index.js\");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../color */ \"./node_modules/@rc-component/color-picker/es/color.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/color-picker/es/util.js\");\n/* harmony import */ var _Gradient__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Gradient */ \"./node_modules/@rc-component/color-picker/es/components/Gradient.js\");\n/* harmony import */ var _Handler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Handler */ \"./node_modules/@rc-component/color-picker/es/components/Handler.js\");\n/* harmony import */ var _Transform__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Transform */ \"./node_modules/@rc-component/color-picker/es/components/Transform.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar Slider = function Slider(props) {\n var prefixCls = props.prefixCls,\n colors = props.colors,\n disabled = props.disabled,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n color = props.color,\n type = props.type;\n var sliderRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();\n var transformRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();\n var colorRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(color);\n var getValue = function getValue(c) {\n return type === 'hue' ? c.getHue() : c.a * 100;\n };\n var onDragChange = (0,rc_util__WEBPACK_IMPORTED_MODULE_5__.useEvent)(function (offsetValue) {\n var calcColor = (0,_util__WEBPACK_IMPORTED_MODULE_7__.calculateColor)({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: sliderRef,\n color: color,\n type: type\n });\n colorRef.current = calcColor;\n onChange(getValue(calcColor));\n });\n var _useColorDrag = (0,_hooks_useColorDrag__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n color: color,\n targetRef: transformRef,\n containerRef: sliderRef,\n calculate: function calculate() {\n return (0,_util__WEBPACK_IMPORTED_MODULE_7__.calcOffset)(color, type);\n },\n onDragChange: onDragChange,\n onDragChangeComplete: function onDragChangeComplete() {\n onChangeComplete(getValue(colorRef.current));\n },\n direction: 'x',\n disabledDrag: disabled\n }),\n _useColorDrag2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n var handleColor = react__WEBPACK_IMPORTED_MODULE_1__.useMemo(function () {\n if (type === 'hue') {\n var hsb = color.toHsb();\n hsb.s = 1;\n hsb.b = 1;\n hsb.a = 1;\n var lightColor = new _color__WEBPACK_IMPORTED_MODULE_6__.Color(hsb);\n return lightColor;\n }\n return color;\n }, [color, type]);\n\n // ========================= Gradient =========================\n var gradientList = react__WEBPACK_IMPORTED_MODULE_1__.useMemo(function () {\n return colors.map(function (info) {\n return \"\".concat(info.color, \" \").concat(info.percent, \"%\");\n });\n }, [colors]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", {\n ref: sliderRef,\n className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(\"\".concat(prefixCls, \"-slider\"), \"\".concat(prefixCls, \"-slider-\").concat(type)),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Palette__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n prefixCls: prefixCls\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Transform__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n x: offset.x,\n y: offset.y,\n ref: transformRef\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Handler__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: \"small\",\n color: handleColor.toHexString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Gradient__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n colors: gradientList,\n type: type,\n prefixCls: prefixCls\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Slider);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9TbGlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFzRTtBQUNoQztBQUNXO0FBQ2pCO0FBQ0k7QUFDRDtBQUNGO0FBQ29CO0FBQ25CO0FBQ0Y7QUFDSTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDZDQUFNO0FBQ3hCLHFCQUFxQiw2Q0FBTTtBQUMzQixpQkFBaUIsNkNBQU07QUFDdkI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGlEQUFRO0FBQzdCLG9CQUFvQixxREFBYztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLCtEQUFZO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpREFBVTtBQUN6QixPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0wscUJBQXFCLG9GQUFjO0FBQ25DO0FBQ0E7QUFDQSxvQkFBb0IsMENBQWE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQix5Q0FBSztBQUNoQztBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EscUJBQXFCLDBDQUFhO0FBQ2xDO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQSxlQUFlLGlEQUFVO0FBQ3pCO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLENBQUMsZ0RBQU87QUFDN0M7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLENBQUMsbURBQVM7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQixDQUFDLGdEQUFPO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQixDQUFDLGlEQUFRO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvY29sb3ItcGlja2VyL2VzL2NvbXBvbmVudHMvU2xpZGVyLmpzP2E5YTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbG9yRHJhZyBmcm9tIFwiLi4vaG9va3MvdXNlQ29sb3JEcmFnXCI7XG5pbXBvcnQgUGFsZXR0ZSBmcm9tIFwiLi9QYWxldHRlXCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUV2ZW50IH0gZnJvbSAncmMtdXRpbCc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuLi9jb2xvclwiO1xuaW1wb3J0IHsgY2FsY09mZnNldCwgY2FsY3VsYXRlQ29sb3IgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IEdyYWRpZW50IGZyb20gXCIuL0dyYWRpZW50XCI7XG5pbXBvcnQgSGFuZGxlciBmcm9tIFwiLi9IYW5kbGVyXCI7XG5pbXBvcnQgVHJhbnNmb3JtIGZyb20gXCIuL1RyYW5zZm9ybVwiO1xudmFyIFNsaWRlciA9IGZ1bmN0aW9uIFNsaWRlcihwcm9wcykge1xuICB2YXIgcHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgIGNvbG9ycyA9IHByb3BzLmNvbG9ycyxcbiAgICBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkLFxuICAgIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsXG4gICAgb25DaGFuZ2VDb21wbGV0ZSA9IHByb3BzLm9uQ2hhbmdlQ29tcGxldGUsXG4gICAgY29sb3IgPSBwcm9wcy5jb2xvcixcbiAgICB0eXBlID0gcHJvcHMudHlwZTtcbiAgdmFyIHNsaWRlclJlZiA9IHVzZVJlZigpO1xuICB2YXIgdHJhbnNmb3JtUmVmID0gdXNlUmVmKCk7XG4gIHZhciBjb2xvclJlZiA9IHVzZVJlZihjb2xvcik7XG4gIHZhciBnZXRWYWx1ZSA9IGZ1bmN0aW9uIGdldFZhbHVlKGMpIHtcbiAgICByZXR1cm4gdHlwZSA9PT0gJ2h1ZScgPyBjLmdldEh1ZSgpIDogYy5hICogMTAwO1xuICB9O1xuICB2YXIgb25EcmFnQ2hhbmdlID0gdXNlRXZlbnQoZnVuY3Rpb24gKG9mZnNldFZhbHVlKSB7XG4gICAgdmFyIGNhbGNDb2xvciA9IGNhbGN1bGF0ZUNvbG9yKHtcbiAgICAgIG9mZnNldDogb2Zmc2V0VmFsdWUsXG4gICAgICB0YXJnZXRSZWY6IHRyYW5zZm9ybVJlZixcbiAgICAgIGNvbnRhaW5lclJlZjogc2xpZGVyUmVmLFxuICAgICAgY29sb3I6IGNvbG9yLFxuICAgICAgdHlwZTogdHlwZVxuICAgIH0pO1xuICAgIGNvbG9yUmVmLmN1cnJlbnQgPSBjYWxjQ29sb3I7XG4gICAgb25DaGFuZ2UoZ2V0VmFsdWUoY2FsY0NvbG9yKSk7XG4gIH0pO1xuICB2YXIgX3VzZUNvbG9yRHJhZyA9IHVzZUNvbG9yRHJhZyh7XG4gICAgICBjb2xvcjogY29sb3IsXG4gICAgICB0YXJnZXRSZWY6IHRyYW5zZm9ybVJlZixcbiAgICAgIGNvbnRhaW5lclJlZjogc2xpZGVyUmVmLFxuICAgICAgY2FsY3VsYXRlOiBmdW5jdGlvbiBjYWxjdWxhdGUoKSB7XG4gICAgICAgIHJldHVybiBjYWxjT2Zmc2V0KGNvbG9yLCB0eXBlKTtcbiAgICAgIH0sXG4gICAgICBvbkRyYWdDaGFuZ2U6IG9uRHJhZ0NoYW5nZSxcbiAgICAgIG9uRHJhZ0NoYW5nZUNvbXBsZXRlOiBmdW5jdGlvbiBvbkRyYWdDaGFuZ2VDb21wbGV0ZSgpIHtcbiAgICAgICAgb25DaGFuZ2VDb21wbGV0ZShnZXRWYWx1ZShjb2xvclJlZi5jdXJyZW50KSk7XG4gICAgICB9LFxuICAgICAgZGlyZWN0aW9uOiAneCcsXG4gICAgICBkaXNhYmxlZERyYWc6IGRpc2FibGVkXG4gICAgfSksXG4gICAgX3VzZUNvbG9yRHJhZzIgPSBfc2xpY2VkVG9BcnJheShfdXNlQ29sb3JEcmFnLCAyKSxcbiAgICBvZmZzZXQgPSBfdXNlQ29sb3JEcmFnMlswXSxcbiAgICBkcmFnU3RhcnRIYW5kbGUgPSBfdXNlQ29sb3JEcmFnMlsxXTtcbiAgdmFyIGhhbmRsZUNvbG9yID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGUgPT09ICdodWUnKSB7XG4gICAgICB2YXIgaHNiID0gY29sb3IudG9Ic2IoKTtcbiAgICAgIGhzYi5zID0gMTtcbiAgICAgIGhzYi5iID0gMTtcbiAgICAgIGhzYi5hID0gMTtcbiAgICAgIHZhciBsaWdodENvbG9yID0gbmV3IENvbG9yKGhzYik7XG4gICAgICByZXR1cm4gbGlnaHRDb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9LCBbY29sb3IsIHR5cGVdKTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IEdyYWRpZW50ID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIGdyYWRpZW50TGlzdCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjb2xvcnMubWFwKGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoaW5mby5jb2xvciwgXCIgXCIpLmNvbmNhdChpbmZvLnBlcmNlbnQsIFwiJVwiKTtcbiAgICB9KTtcbiAgfSwgW2NvbG9yc10pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIHJlZjogc2xpZGVyUmVmLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNsaWRlclwiKSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbGlkZXItXCIpLmNvbmNhdCh0eXBlKSksXG4gICAgb25Nb3VzZURvd246IGRyYWdTdGFydEhhbmRsZSxcbiAgICBvblRvdWNoU3RhcnQ6IGRyYWdTdGFydEhhbmRsZVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQYWxldHRlLCB7XG4gICAgcHJlZml4Q2xzOiBwcmVmaXhDbHNcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJhbnNmb3JtLCB7XG4gICAgeDogb2Zmc2V0LngsXG4gICAgeTogb2Zmc2V0LnksXG4gICAgcmVmOiB0cmFuc2Zvcm1SZWZcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSGFuZGxlciwge1xuICAgIHNpemU6IFwic21hbGxcIixcbiAgICBjb2xvcjogaGFuZGxlQ29sb3IudG9IZXhTdHJpbmcoKSxcbiAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEdyYWRpZW50LCB7XG4gICAgY29sb3JzOiBncmFkaWVudExpc3QsXG4gICAgdHlwZTogdHlwZSxcbiAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFNsaWRlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Slider.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/components/Transform.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/components/Transform.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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar Transform = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n var children = props.children,\n x = props.x,\n y = props.y;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: ref,\n style: {\n position: 'absolute',\n left: \"\".concat(x, \"%\"),\n top: \"\".concat(y, \"%\"),\n zIndex: 1,\n transform: 'translate(-50%, -50%)'\n }\n }, children);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Transform);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9UcmFuc2Zvcm0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7QUFDMUMsNkJBQTZCLGlEQUFVO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0QsaUVBQWUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvY29tcG9uZW50cy9UcmFuc2Zvcm0uanM/NTYzMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbnZhciBUcmFuc2Zvcm0gPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICB4ID0gcHJvcHMueCxcbiAgICB5ID0gcHJvcHMueTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICByZWY6IHJlZixcbiAgICBzdHlsZToge1xuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBsZWZ0OiBcIlwiLmNvbmNhdCh4LCBcIiVcIiksXG4gICAgICB0b3A6IFwiXCIuY29uY2F0KHksIFwiJVwiKSxcbiAgICAgIHpJbmRleDogMSxcbiAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKSdcbiAgICB9XG4gIH0sIGNoaWxkcmVuKTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgVHJhbnNmb3JtOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/components/Transform.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n var scrollXOffset = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;\n var scrollYOffset = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;\n return {\n pageX: obj.pageX - scrollXOffset,\n pageY: obj.pageY - scrollYOffset\n };\n}\nfunction useColorDrag(props) {\n var targetRef = props.targetRef,\n containerRef = props.containerRef,\n direction = props.direction,\n onDragChange = props.onDragChange,\n onDragChangeComplete = props.onDragChangeComplete,\n calculate = props.calculate,\n color = props.color,\n disabledDrag = props.disabledDrag;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n x: 0,\n y: 0\n }),\n _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n offsetValue = _useState2[0],\n setOffsetValue = _useState2[1];\n var mouseMoveRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n var mouseUpRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n\n // Always get position from `color`\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setOffsetValue(calculate());\n }, [color]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n };\n }, []);\n var updateOffset = function updateOffset(e) {\n var _getPosition = getPosition(e),\n pageX = _getPosition.pageX,\n pageY = _getPosition.pageY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n rectX = _containerRef$current.x,\n rectY = _containerRef$current.y,\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var offsetX = Math.max(0, Math.min(pageX - rectX, width)) - centerOffsetX;\n var offsetY = Math.max(0, Math.min(pageY - rectY, height)) - centerOffsetY;\n var calcOffset = {\n x: offsetX,\n y: direction === 'x' ? offsetValue.y : offsetY\n };\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return false;\n }\n onDragChange === null || onDragChange === void 0 || onDragChange(calcOffset);\n };\n var onDragMove = function onDragMove(e) {\n e.preventDefault();\n updateOffset(e);\n };\n var onDragStop = function onDragStop(e) {\n e.preventDefault();\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n onDragChangeComplete === null || onDragChangeComplete === void 0 || onDragChangeComplete();\n };\n var onDragStart = function onDragStart(e) {\n // https://github.com/ant-design/ant-design/issues/43529\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n if (disabledDrag) {\n return;\n }\n updateOffset(e);\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragStop);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragStop);\n mouseMoveRef.current = onDragMove;\n mouseUpRef.current = onDragStop;\n };\n return [offsetValue, onDragStart];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useColorDrag);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvaG9va3MvdXNlQ29sb3JEcmFnLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFzRTtBQUNsQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsK0NBQVE7QUFDMUI7QUFDQTtBQUNBLEtBQUs7QUFDTCxpQkFBaUIsb0ZBQWM7QUFDL0I7QUFDQTtBQUNBLHFCQUFxQiw2Q0FBTTtBQUMzQixtQkFBbUIsNkNBQU07O0FBRXpCO0FBQ0EsRUFBRSxnREFBUztBQUNYO0FBQ0EsR0FBRztBQUNILEVBQUUsZ0RBQVM7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9ob29rcy91c2VDb2xvckRyYWcuanM/MDhlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmZ1bmN0aW9uIGdldFBvc2l0aW9uKGUpIHtcbiAgdmFyIG9iaiA9ICd0b3VjaGVzJyBpbiBlID8gZS50b3VjaGVzWzBdIDogZTtcbiAgdmFyIHNjcm9sbFhPZmZzZXQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgfHwgd2luZG93LnBhZ2VYT2Zmc2V0O1xuICB2YXIgc2Nyb2xsWU9mZnNldCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgd2luZG93LnBhZ2VZT2Zmc2V0O1xuICByZXR1cm4ge1xuICAgIHBhZ2VYOiBvYmoucGFnZVggLSBzY3JvbGxYT2Zmc2V0LFxuICAgIHBhZ2VZOiBvYmoucGFnZVkgLSBzY3JvbGxZT2Zmc2V0XG4gIH07XG59XG5mdW5jdGlvbiB1c2VDb2xvckRyYWcocHJvcHMpIHtcbiAgdmFyIHRhcmdldFJlZiA9IHByb3BzLnRhcmdldFJlZixcbiAgICBjb250YWluZXJSZWYgPSBwcm9wcy5jb250YWluZXJSZWYsXG4gICAgZGlyZWN0aW9uID0gcHJvcHMuZGlyZWN0aW9uLFxuICAgIG9uRHJhZ0NoYW5nZSA9IHByb3BzLm9uRHJhZ0NoYW5nZSxcbiAgICBvbkRyYWdDaGFuZ2VDb21wbGV0ZSA9IHByb3BzLm9uRHJhZ0NoYW5nZUNvbXBsZXRlLFxuICAgIGNhbGN1bGF0ZSA9IHByb3BzLmNhbGN1bGF0ZSxcbiAgICBjb2xvciA9IHByb3BzLmNvbG9yLFxuICAgIGRpc2FibGVkRHJhZyA9IHByb3BzLmRpc2FibGVkRHJhZztcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwXG4gICAgfSksXG4gICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgb2Zmc2V0VmFsdWUgPSBfdXNlU3RhdGUyWzBdLFxuICAgIHNldE9mZnNldFZhbHVlID0gX3VzZVN0YXRlMlsxXTtcbiAgdmFyIG1vdXNlTW92ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIG1vdXNlVXBSZWYgPSB1c2VSZWYobnVsbCk7XG5cbiAgLy8gQWx3YXlzIGdldCBwb3NpdGlvbiBmcm9tIGBjb2xvcmBcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRPZmZzZXRWYWx1ZShjYWxjdWxhdGUoKSk7XG4gIH0sIFtjb2xvcl0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZU1vdmVSZWYuY3VycmVudCk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcFJlZi5jdXJyZW50KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG1vdXNlTW92ZVJlZi5jdXJyZW50KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgbW91c2VVcFJlZi5jdXJyZW50KTtcbiAgICAgIG1vdXNlTW92ZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIG1vdXNlVXBSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfTtcbiAgfSwgW10pO1xuICB2YXIgdXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gdXBkYXRlT2Zmc2V0KGUpIHtcbiAgICB2YXIgX2dldFBvc2l0aW9uID0gZ2V0UG9zaXRpb24oZSksXG4gICAgICBwYWdlWCA9IF9nZXRQb3NpdGlvbi5wYWdlWCxcbiAgICAgIHBhZ2VZID0gX2dldFBvc2l0aW9uLnBhZ2VZO1xuICAgIHZhciBfY29udGFpbmVyUmVmJGN1cnJlbnQgPSBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIHJlY3RYID0gX2NvbnRhaW5lclJlZiRjdXJyZW50LngsXG4gICAgICByZWN0WSA9IF9jb250YWluZXJSZWYkY3VycmVudC55LFxuICAgICAgd2lkdGggPSBfY29udGFpbmVyUmVmJGN1cnJlbnQud2lkdGgsXG4gICAgICBoZWlnaHQgPSBfY29udGFpbmVyUmVmJGN1cnJlbnQuaGVpZ2h0O1xuICAgIHZhciBfdGFyZ2V0UmVmJGN1cnJlbnQkZ2UgPSB0YXJnZXRSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIHRhcmdldFdpZHRoID0gX3RhcmdldFJlZiRjdXJyZW50JGdlLndpZHRoLFxuICAgICAgdGFyZ2V0SGVpZ2h0ID0gX3RhcmdldFJlZiRjdXJyZW50JGdlLmhlaWdodDtcbiAgICB2YXIgY2VudGVyT2Zmc2V0WCA9IHRhcmdldFdpZHRoIC8gMjtcbiAgICB2YXIgY2VudGVyT2Zmc2V0WSA9IHRhcmdldEhlaWdodCAvIDI7XG4gICAgdmFyIG9mZnNldFggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihwYWdlWCAtIHJlY3RYLCB3aWR0aCkpIC0gY2VudGVyT2Zmc2V0WDtcbiAgICB2YXIgb2Zmc2V0WSA9IE1hdGgubWF4KDAsIE1hdGgubWluKHBhZ2VZIC0gcmVjdFksIGhlaWdodCkpIC0gY2VudGVyT2Zmc2V0WTtcbiAgICB2YXIgY2FsY09mZnNldCA9IHtcbiAgICAgIHg6IG9mZnNldFgsXG4gICAgICB5OiBkaXJlY3Rpb24gPT09ICd4JyA/IG9mZnNldFZhbHVlLnkgOiBvZmZzZXRZXG4gICAgfTtcblxuICAgIC8vIEV4Y2x1c2lvbiBvZiBib3VuZGFyeSBjYXNlc1xuICAgIGlmICh0YXJnZXRXaWR0aCA9PT0gMCAmJiB0YXJnZXRIZWlnaHQgPT09IDAgfHwgdGFyZ2V0V2lkdGggIT09IHRhcmdldEhlaWdodCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBvbkRyYWdDaGFuZ2UgPT09IG51bGwgfHwgb25EcmFnQ2hhbmdlID09PSB2b2lkIDAgfHwgb25EcmFnQ2hhbmdlKGNhbGNPZmZzZXQpO1xuICB9O1xuICB2YXIgb25EcmFnTW92ZSA9IGZ1bmN0aW9uIG9uRHJhZ01vdmUoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB1cGRhdGVPZmZzZXQoZSk7XG4gIH07XG4gIHZhciBvbkRyYWdTdG9wID0gZnVuY3Rpb24gb25EcmFnU3RvcChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZVJlZi5jdXJyZW50KTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcFJlZi5jdXJyZW50KTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBtb3VzZU1vdmVSZWYuY3VycmVudCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBtb3VzZVVwUmVmLmN1cnJlbnQpO1xuICAgIG1vdXNlTW92ZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICBtb3VzZVVwUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIG9uRHJhZ0NoYW5nZUNvbXBsZXRlID09PSBudWxsIHx8IG9uRHJhZ0NoYW5nZUNvbXBsZXRlID09PSB2b2lkIDAgfHwgb25EcmFnQ2hhbmdlQ29tcGxldGUoKTtcbiAgfTtcbiAgdmFyIG9uRHJhZ1N0YXJ0ID0gZnVuY3Rpb24gb25EcmFnU3RhcnQoZSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzQzNTI5XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2VNb3ZlUmVmLmN1cnJlbnQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZVVwUmVmLmN1cnJlbnQpO1xuICAgIGlmIChkaXNhYmxlZERyYWcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdXBkYXRlT2Zmc2V0KGUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRHJhZ01vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBvbkRyYWdTdG9wKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvbkRyYWdNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIG9uRHJhZ1N0b3ApO1xuICAgIG1vdXNlTW92ZVJlZi5jdXJyZW50ID0gb25EcmFnTW92ZTtcbiAgICBtb3VzZVVwUmVmLmN1cnJlbnQgPSBvbkRyYWdTdG9wO1xuICB9O1xuICByZXR1cm4gW29mZnNldFZhbHVlLCBvbkRyYWdTdGFydF07XG59XG5leHBvcnQgZGVmYXVsdCB1c2VDb2xvckRyYWc7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/hooks/useColorState.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/hooks/useColorState.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_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rc-util */ \"./node_modules/rc-util/es/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/color-picker/es/util.js\");\n\n\n\n\nvar useColorState = function useColorState(defaultValue, value) {\n var _useMergedState = (0,rc_util__WEBPACK_IMPORTED_MODULE_1__.useMergedState)(defaultValue, {\n value: value\n }),\n _useMergedState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var color = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n return (0,_util__WEBPACK_IMPORTED_MODULE_3__.generateColor)(mergedValue);\n }, [mergedValue]);\n return [color, setValue];\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useColorState);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvaG9va3MvdXNlQ29sb3JTdGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzRTtBQUM3QjtBQUNUO0FBQ1E7QUFDeEM7QUFDQSx3QkFBd0IsdURBQWM7QUFDdEM7QUFDQSxLQUFLO0FBQ0wsdUJBQXVCLG9GQUFjO0FBQ3JDO0FBQ0E7QUFDQSxjQUFjLDhDQUFPO0FBQ3JCLFdBQVcsb0RBQWE7QUFDeEIsR0FBRztBQUNIO0FBQ0E7QUFDQSxpRUFBZSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9ob29rcy91c2VDb2xvclN0YXRlLmpzPzU0NWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgeyB1c2VNZXJnZWRTdGF0ZSB9IGZyb20gJ3JjLXV0aWwnO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdlbmVyYXRlQ29sb3IgfSBmcm9tIFwiLi4vdXRpbFwiO1xudmFyIHVzZUNvbG9yU3RhdGUgPSBmdW5jdGlvbiB1c2VDb2xvclN0YXRlKGRlZmF1bHRWYWx1ZSwgdmFsdWUpIHtcbiAgdmFyIF91c2VNZXJnZWRTdGF0ZSA9IHVzZU1lcmdlZFN0YXRlKGRlZmF1bHRWYWx1ZSwge1xuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSksXG4gICAgX3VzZU1lcmdlZFN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VNZXJnZWRTdGF0ZSwgMiksXG4gICAgbWVyZ2VkVmFsdWUgPSBfdXNlTWVyZ2VkU3RhdGUyWzBdLFxuICAgIHNldFZhbHVlID0gX3VzZU1lcmdlZFN0YXRlMlsxXTtcbiAgdmFyIGNvbG9yID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdlbmVyYXRlQ29sb3IobWVyZ2VkVmFsdWUpO1xuICB9LCBbbWVyZ2VkVmFsdWVdKTtcbiAgcmV0dXJuIFtjb2xvciwgc2V0VmFsdWVdO1xufTtcbmV4cG9ydCBkZWZhdWx0IHVzZUNvbG9yU3RhdGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/hooks/useColorState.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@rc-component/color-picker/es/hooks/useComponent.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/hooks/useComponent.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 */ useComponent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _components_Slider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Slider */ \"./node_modules/@rc-component/color-picker/es/components/Slider.js\");\n\n\nfunction useComponent(components) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {\n var _ref = components || {},\n slider = _ref.slider;\n return [slider || _components_Slider__WEBPACK_IMPORTED_MODULE_1__[\"default\"]];\n }, [components]);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvaG9va3MvdXNlQ29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUErQjtBQUNXO0FBQzNCO0FBQ2YsU0FBUywwQ0FBYTtBQUN0QiwrQkFBK0I7QUFDL0I7QUFDQSxzQkFBc0IsMERBQU07QUFDNUIsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9ob29rcy91c2VDb21wb25lbnQuanM/NWRjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgU2xpZGVyIGZyb20gXCIuLi9jb21wb25lbnRzL1NsaWRlclwiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlQ29tcG9uZW50KGNvbXBvbmVudHMpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcmVmID0gY29tcG9uZW50cyB8fCB7fSxcbiAgICAgIHNsaWRlciA9IF9yZWYuc2xpZGVyO1xuICAgIHJldHVybiBbc2xpZGVyIHx8IFNsaWRlcl07XG4gIH0sIFtjb21wb25lbnRzXSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/hooks/useComponent.js\n");
/***/ }),
-/***/ "./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js":
-/*!*********************************************************************!*\
- !*** ./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js ***!
- \*********************************************************************/
+/***/ "./node_modules/@rc-component/color-picker/es/index.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/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 */ ErrorCode: () => (/* binding */ ErrorCode),\n/* harmony export */ EventType: () => (/* binding */ EventType),\n/* harmony export */ WebChannel: () => (/* binding */ WebChannel),\n/* harmony export */ XhrIo: () => (/* binding */ XhrIo),\n/* harmony export */ createWebChannelTransport: () => (/* binding */ createWebChannelTransport),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\n\nvar g, goog = goog || {}, k = commonjsGlobal || self;\r\nfunction aa() { }\r\nfunction ba(a) { var b = typeof a; return \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\"; }\r\nfunction ca(a) { var b = ba(a); return \"array\" == b || \"object\" == b && \"number\" == typeof a.length; }\r\nfunction n(a) { var b = typeof a; return \"object\" == b && null != a || \"function\" == b; }\r\nfunction da(a) { return Object.prototype.hasOwnProperty.call(a, ea) && a[ea] || (a[ea] = ++fa); }\r\nvar ea = \"closure_uid_\" + (1E9 * Math.random() >>> 0), fa = 0;\r\nfunction ha(a, b, c) { return a.call.apply(a.bind, arguments); }\r\nfunction ja(a, b, c) { if (!a)\r\n throw Error(); if (2 < arguments.length) {\r\n var d = Array.prototype.slice.call(arguments, 2);\r\n return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return a.apply(b, e); };\r\n} return function () { return a.apply(b, arguments); }; }\r\nfunction p(a, b, c) { Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? p = ha : p = ja; return p.apply(null, arguments); }\r\nfunction ka(a, b) { var c = Array.prototype.slice.call(arguments, 1); return function () { var d = c.slice(); d.push.apply(d, arguments); return a.apply(this, d); }; }\r\nvar q = Date.now;\r\nfunction r(a, b) { function c() { } c.prototype = b.prototype; a.S = b.prototype; a.prototype = new c; a.prototype.constructor = a; }\r\nfunction u() { this.j = this.j; this.i = this.i; }\r\nvar la = 0;\r\nu.prototype.j = !1;\r\nu.prototype.ja = function () { if (!this.j && (this.j = !0, this.G(), 0 != la)) {\r\n var a = da(this);\r\n} };\r\nu.prototype.G = function () { if (this.i)\r\n for (; this.i.length;)\r\n this.i.shift()(); };\r\nvar na = Array.prototype.indexOf ? function (a, b) { return Array.prototype.indexOf.call(a, b, void 0); } : function (a, b) { if (\"string\" === typeof a)\r\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0); for (var c = 0; c < a.length; c++)\r\n if (c in a && a[c] === b)\r\n return c; return -1; }, oa = Array.prototype.forEach ? function (a, b, c) { Array.prototype.forEach.call(a, b, c); } : function (a, b, c) { for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++)\r\n f in e && b.call(c, e[f], f, a); };\r\nfunction pa(a) { a: {\r\n var b = qa;\r\n for (var c = a.length, d = \"string\" === typeof a ? a.split(\"\") : a, e = 0; e < c; e++)\r\n if (e in d && b.call(void 0, d[e], e, a)) {\r\n b = e;\r\n break a;\r\n }\r\n b = -1;\r\n} return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b]; }\r\nfunction ra(a) { return Array.prototype.concat.apply([], arguments); }\r\nfunction sa(a) { var b = a.length; if (0 < b) {\r\n for (var c = Array(b), d = 0; d < b; d++)\r\n c[d] = a[d];\r\n return c;\r\n} return []; }\r\nfunction ta(a) { return /^[\\s\\xa0]*$/.test(a); }\r\nvar ua = String.prototype.trim ? function (a) { return a.trim(); } : function (a) { return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]; };\r\nfunction v(a, b) { return -1 != a.indexOf(b); }\r\nfunction xa(a, b) { return a < b ? -1 : a > b ? 1 : 0; }\r\nvar w;\r\na: {\r\n var ya = k.navigator;\r\n if (ya) {\r\n var za = ya.userAgent;\r\n if (za) {\r\n w = za;\r\n break a;\r\n }\r\n }\r\n w = \"\";\r\n}\r\nfunction Aa(a, b, c) { for (var d in a)\r\n b.call(c, a[d], d, a); }\r\nfunction Ba(a) { var b = {}; for (var c in a)\r\n b[c] = a[c]; return b; }\r\nvar Ca = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\r\nfunction Da(a, b) { var c, d; for (var e = 1; e < arguments.length; e++) {\r\n d = arguments[e];\r\n for (c in d)\r\n a[c] = d[c];\r\n for (var f = 0; f < Ca.length; f++)\r\n c = Ca[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\r\n} }\r\nfunction Ea(a) { Ea[\" \"](a); return a; }\r\nEa[\" \"] = aa;\r\nfunction Fa(a, b) { var c = Ga; return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a); }\r\nvar Ha = v(w, \"Opera\"), x = v(w, \"Trident\") || v(w, \"MSIE\"), Ia = v(w, \"Edge\"), Ja = Ia || x, Ka = v(w, \"Gecko\") && !(v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\")) && !(v(w, \"Trident\") || v(w, \"MSIE\")) && !v(w, \"Edge\"), La = v(w.toLowerCase(), \"webkit\") && !v(w, \"Edge\");\r\nfunction Ma() { var a = k.document; return a ? a.documentMode : void 0; }\r\nvar Na;\r\na: {\r\n var Oa = \"\", Pa = function () { var a = w; if (Ka)\r\n return /rv:([^\\);]+)(\\)|;)/.exec(a); if (Ia)\r\n return /Edge\\/([\\d\\.]+)/.exec(a); if (x)\r\n return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a); if (La)\r\n return /WebKit\\/(\\S+)/.exec(a); if (Ha)\r\n return /(?:Version)[ \\/]?(\\S+)/.exec(a); }();\r\n Pa && (Oa = Pa ? Pa[1] : \"\");\r\n if (x) {\r\n var Qa = Ma();\r\n if (null != Qa && Qa > parseFloat(Oa)) {\r\n Na = String(Qa);\r\n break a;\r\n }\r\n }\r\n Na = Oa;\r\n}\r\nvar Ga = {};\r\nfunction Ra(a) { return Fa(a, function () { {\r\n var b = 0;\r\n var e = ua(String(Na)).split(\".\"), f = ua(String(a)).split(\".\"), h = Math.max(e.length, f.length);\r\n for (var m = 0; 0 == b && m < h; m++) {\r\n var c = e[m] || \"\", d = f[m] || \"\";\r\n do {\r\n c = /(\\d*)(\\D*)(.*)/.exec(c) || [\"\", \"\", \"\", \"\"];\r\n d = /(\\d*)(\\D*)(.*)/.exec(d) || [\"\", \"\", \"\", \"\"];\r\n if (0 == c[0].length && 0 == d[0].length)\r\n break;\r\n b = xa(0 == c[1].length ? 0 : parseInt(c[1], 10), 0 == d[1].length ? 0 : parseInt(d[1], 10)) || xa(0 == c[2].length, 0 == d[2].length) || xa(c[2], d[2]);\r\n c = c[3];\r\n d = d[3];\r\n } while (0 == b);\r\n }\r\n} return 0 <= b; }); }\r\nvar Sa;\r\nif (k.document && x) {\r\n var Ta = Ma();\r\n Sa = Ta ? Ta : parseInt(Na, 10) || void 0;\r\n}\r\nelse\r\n Sa = void 0;\r\nvar Ua = Sa;\r\nvar Va = !x || 9 <= Number(Ua), Wa = x && !Ra(\"9\"), Xa = function () { if (!k.addEventListener || !Object.defineProperty)\r\n return !1; var a = !1, b = Object.defineProperty({}, \"passive\", { get: function () { a = !0; } }); try {\r\n k.addEventListener(\"test\", aa, b), k.removeEventListener(\"test\", aa, b);\r\n}\r\ncatch (c) { } return a; }();\r\nfunction y(a, b) { this.type = a; this.a = this.target = b; this.defaultPrevented = !1; }\r\ny.prototype.b = function () { this.defaultPrevented = !0; };\r\nfunction A(a, b) {\r\n y.call(this, a ? a.type : \"\");\r\n this.relatedTarget = this.a = this.target = null;\r\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\r\n this.key = \"\";\r\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\r\n this.pointerId = 0;\r\n this.pointerType = \"\";\r\n this.c = null;\r\n if (a) {\r\n var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\r\n this.target = a.target || a.srcElement;\r\n this.a = b;\r\n if (b = a.relatedTarget) {\r\n if (Ka) {\r\n a: {\r\n try {\r\n Ea(b.nodeName);\r\n var e = !0;\r\n break a;\r\n }\r\n catch (f) { }\r\n e = !1;\r\n }\r\n e || (b = null);\r\n }\r\n }\r\n else\r\n \"mouseover\" ==\r\n c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\r\n this.relatedTarget = b;\r\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\r\n this.button = a.button;\r\n this.key = a.key || \"\";\r\n this.ctrlKey = a.ctrlKey;\r\n this.altKey = a.altKey;\r\n this.shiftKey = a.shiftKey;\r\n this.metaKey =\r\n a.metaKey;\r\n this.pointerId = a.pointerId || 0;\r\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Ya[a.pointerType] || \"\";\r\n this.c = a;\r\n a.defaultPrevented && this.b();\r\n }\r\n}\r\nr(A, y);\r\nvar Ya = { 2: \"touch\", 3: \"pen\", 4: \"mouse\" };\r\nA.prototype.b = function () { A.S.b.call(this); var a = this.c; if (a.preventDefault)\r\n a.preventDefault();\r\nelse if (a.returnValue = !1, Wa)\r\n try {\r\n if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode)\r\n a.keyCode = -1;\r\n }\r\n catch (b) { } };\r\nvar C = \"closure_listenable_\" + (1E6 * Math.random() | 0), Za = 0;\r\nfunction $a(a, b, c, d, e) { this.listener = a; this.proxy = null; this.src = b; this.type = c; this.capture = !!d; this.ca = e; this.key = ++Za; this.Y = this.Z = !1; }\r\nfunction ab(a) { a.Y = !0; a.listener = null; a.proxy = null; a.src = null; a.ca = null; }\r\nfunction bb(a) { this.src = a; this.a = {}; this.b = 0; }\r\nbb.prototype.add = function (a, b, c, d, e) { var f = a.toString(); a = this.a[f]; a || (a = this.a[f] = [], this.b++); var h = cb(a, b, d, e); -1 < h ? (b = a[h], c || (b.Z = !1)) : (b = new $a(b, this.src, f, !!d, e), b.Z = c, a.push(b)); return b; };\r\nfunction db(a, b) { var c = b.type; if (c in a.a) {\r\n var d = a.a[c], e = na(d, b), f;\r\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\r\n f && (ab(b), 0 == a.a[c].length && (delete a.a[c], a.b--));\r\n} }\r\nfunction cb(a, b, c, d) { for (var e = 0; e < a.length; ++e) {\r\n var f = a[e];\r\n if (!f.Y && f.listener == b && f.capture == !!c && f.ca == d)\r\n return e;\r\n} return -1; }\r\nvar eb = \"closure_lm_\" + (1E6 * Math.random() | 0), fb = {};\r\nfunction hb(a, b, c, d, e) { if (d && d.once)\r\n return ib(a, b, c, d, e); if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n hb(a, b[f], c, d, e);\r\n return null;\r\n} c = jb(c); return a && a[C] ? a.va(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !1, d, e); }\r\nfunction kb(a, b, c, d, e, f) {\r\n if (!b)\r\n throw Error(\"Invalid event type\");\r\n var h = n(e) ? !!e.capture : !!e;\r\n if (h && !Va)\r\n return null;\r\n var m = lb(a);\r\n m || (a[eb] = m = new bb(a));\r\n c = m.add(b, c, d, h, f);\r\n if (c.proxy)\r\n return c;\r\n d = mb();\r\n c.proxy = d;\r\n d.src = a;\r\n d.listener = c;\r\n if (a.addEventListener)\r\n Xa || (e = h), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);\r\n else if (a.attachEvent)\r\n a.attachEvent(nb(b.toString()), d);\r\n else if (a.addListener && a.removeListener)\r\n a.addListener(d);\r\n else\r\n throw Error(\"addEventListener and attachEvent are unavailable.\");\r\n return c;\r\n}\r\nfunction mb() { var a = ob, b = Va ? function (c) { return a.call(b.src, b.listener, c); } : function (c) { c = a.call(b.src, b.listener, c); if (!c)\r\n return c; }; return b; }\r\nfunction ib(a, b, c, d, e) { if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n ib(a, b[f], c, d, e);\r\n return null;\r\n} c = jb(c); return a && a[C] ? a.wa(b, c, n(d) ? !!d.capture : !!d, e) : kb(a, b, c, !0, d, e); }\r\nfunction pb(a, b, c, d, e) { if (Array.isArray(b))\r\n for (var f = 0; f < b.length; f++)\r\n pb(a, b[f], c, d, e);\r\nelse\r\n (d = n(d) ? !!d.capture : !!d, c = jb(c), a && a[C]) ? (a = a.c, b = String(b).toString(), b in a.a && (f = a.a[b], c = cb(f, c, d, e), -1 < c && (ab(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.a[b], a.b--)))) : a && (a = lb(a)) && (b = a.a[b.toString()], a = -1, b && (a = cb(b, c, d, e)), (c = -1 < a ? b[a] : null) && rb(c)); }\r\nfunction rb(a) { if (\"number\" !== typeof a && a && !a.Y) {\r\n var b = a.src;\r\n if (b && b[C])\r\n db(b.c, a);\r\n else {\r\n var c = a.type, d = a.proxy;\r\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(nb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\r\n (c = lb(b)) ? (db(c, a), 0 == c.b && (c.src = null, b[eb] = null)) : ab(a);\r\n }\r\n} }\r\nfunction nb(a) { return a in fb ? fb[a] : fb[a] = \"on\" + a; }\r\nfunction sb(a, b) { var c = a.listener, d = a.ca || a.src; a.Z && rb(a); return c.call(d, b); }\r\nfunction ob(a, b) { if (a.Y)\r\n return !0; if (!Va) {\r\n if (!b)\r\n a: {\r\n b = [\"window\", \"event\"];\r\n for (var c = k, d = 0; d < b.length; d++)\r\n if (c = c[b[d]], null == c) {\r\n b = null;\r\n break a;\r\n }\r\n b = c;\r\n }\r\n b = new A(b, this);\r\n return sb(a, b);\r\n} return sb(a, new A(b, this)); }\r\nfunction lb(a) { a = a[eb]; return a instanceof bb ? a : null; }\r\nvar tb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\r\nfunction jb(a) { if (\"function\" == ba(a))\r\n return a; a[tb] || (a[tb] = function (b) { return a.handleEvent(b); }); return a[tb]; }\r\nfunction D() { u.call(this); this.c = new bb(this); this.J = this; this.C = null; }\r\nr(D, u);\r\nD.prototype[C] = !0;\r\ng = D.prototype;\r\ng.addEventListener = function (a, b, c, d) { hb(this, a, b, c, d); };\r\ng.removeEventListener = function (a, b, c, d) { pb(this, a, b, c, d); };\r\ng.dispatchEvent = function (a) { var b, c = this.C; if (c)\r\n for (b = []; c; c = c.C)\r\n b.push(c); c = this.J; var d = a.type || a; if (\"string\" === typeof a)\r\n a = new y(a, c);\r\nelse if (a instanceof y)\r\n a.target = a.target || c;\r\nelse {\r\n var e = a;\r\n a = new y(d, c);\r\n Da(a, e);\r\n} e = !0; if (b)\r\n for (var f = b.length - 1; 0 <= f; f--) {\r\n var h = a.a = b[f];\r\n e = ub(h, d, !0, a) && e;\r\n } h = a.a = c; e = ub(h, d, !0, a) && e; e = ub(h, d, !1, a) && e; if (b)\r\n for (f = 0; f < b.length; f++)\r\n h = a.a = b[f], e = ub(h, d, !1, a) && e; return e; };\r\ng.G = function () { D.S.G.call(this); if (this.c) {\r\n var a = this.c, c;\r\n for (c in a.a) {\r\n for (var d = a.a[c], e = 0; e < d.length; e++)\r\n ab(d[e]);\r\n delete a.a[c];\r\n a.b--;\r\n }\r\n} this.C = null; };\r\ng.va = function (a, b, c, d) { return this.c.add(String(a), b, !1, c, d); };\r\ng.wa = function (a, b, c, d) { return this.c.add(String(a), b, !0, c, d); };\r\nfunction ub(a, b, c, d) { b = a.c.a[String(b)]; if (!b)\r\n return !0; b = b.concat(); for (var e = !0, f = 0; f < b.length; ++f) {\r\n var h = b[f];\r\n if (h && !h.Y && h.capture == c) {\r\n var m = h.listener, l = h.ca || h.src;\r\n h.Z && db(a.c, h);\r\n e = !1 !== m.call(l, d) && e;\r\n }\r\n} return e && !d.defaultPrevented; }\r\nvar vb = k.JSON.stringify;\r\nfunction wb() { this.b = this.a = null; }\r\nvar yb = new /** @class */ (function () {\r\n function class_1(a, b, c) {\r\n this.f = c;\r\n this.c = a;\r\n this.g = b;\r\n this.b = 0;\r\n this.a = null;\r\n }\r\n class_1.prototype.get = function () { var a; 0 < this.b ? (this.b--, a = this.a, this.a = a.next, a.next = null) : a = this.c(); return a; };\r\n return class_1;\r\n}())(function () { return new xb; }, function (a) { a.reset(); }, 100);\r\nwb.prototype.add = function (a, b) { var c = yb.get(); c.set(a, b); this.b ? this.b.next = c : this.a = c; this.b = c; };\r\nfunction zb() { var a = Ab, b = null; a.a && (b = a.a, a.a = a.a.next, a.a || (a.b = null), b.next = null); return b; }\r\nfunction xb() { this.next = this.b = this.a = null; }\r\nxb.prototype.set = function (a, b) { this.a = a; this.b = b; this.next = null; };\r\nxb.prototype.reset = function () { this.next = this.b = this.a = null; };\r\nfunction Bb(a) { k.setTimeout(function () { throw a; }, 0); }\r\nfunction Cb(a, b) { Db || Eb(); Fb || (Db(), Fb = !0); Ab.add(a, b); }\r\nvar Db;\r\nfunction Eb() { var a = k.Promise.resolve(void 0); Db = function () { a.then(Gb); }; }\r\nvar Fb = !1, Ab = new wb;\r\nfunction Gb() { for (var a; a = zb();) {\r\n try {\r\n a.a.call(a.b);\r\n }\r\n catch (c) {\r\n Bb(c);\r\n }\r\n var b = yb;\r\n b.g(a);\r\n b.b < b.f && (b.b++, a.next = b.a, b.a = a);\r\n} Fb = !1; }\r\nfunction Hb(a, b) { D.call(this); this.b = a || 1; this.a = b || k; this.f = p(this.Ya, this); this.g = q(); }\r\nr(Hb, D);\r\ng = Hb.prototype;\r\ng.aa = !1;\r\ng.M = null;\r\ng.Ya = function () { if (this.aa) {\r\n var a = q() - this.g;\r\n 0 < a && a < .8 * this.b ? this.M = this.a.setTimeout(this.f, this.b - a) : (this.M && (this.a.clearTimeout(this.M), this.M = null), this.dispatchEvent(\"tick\"), this.aa && (Ib(this), this.start()));\r\n} };\r\ng.start = function () { this.aa = !0; this.M || (this.M = this.a.setTimeout(this.f, this.b), this.g = q()); };\r\nfunction Ib(a) { a.aa = !1; a.M && (a.a.clearTimeout(a.M), a.M = null); }\r\ng.G = function () { Hb.S.G.call(this); Ib(this); delete this.a; };\r\nfunction Jb(a, b, c) { if (\"function\" == ba(a))\r\n c && (a = p(a, c));\r\nelse if (a && \"function\" == typeof a.handleEvent)\r\n a = p(a.handleEvent, a);\r\nelse\r\n throw Error(\"Invalid listener argument\"); return 2147483647 < Number(b) ? -1 : k.setTimeout(a, b || 0); }\r\nfunction Kb(a) { a.a = Jb(function () { a.a = null; a.c && (a.c = !1, Kb(a)); }, a.h); var b = a.b; a.b = null; a.g.apply(null, b); }\r\nvar Lb = /** @class */ (function (_super) {\r\n __extends(Lb, _super);\r\n function Lb(a, b, c) {\r\n var _this = _super.call(this) || this;\r\n _this.g = null != c ? a.bind(c) : a;\r\n _this.h = b;\r\n _this.b = null;\r\n _this.c = !1;\r\n _this.a = null;\r\n return _this;\r\n }\r\n Lb.prototype.f = function (a) { this.b = arguments; this.a ? this.c = !0 : Kb(this); };\r\n Lb.prototype.G = function () { _super.prototype.G.call(this); this.a && (k.clearTimeout(this.a), this.a = null, this.c = !1, this.b = null); };\r\n return Lb;\r\n}(u));\r\nfunction E(a) { u.call(this); this.b = a; this.a = {}; }\r\nr(E, u);\r\nvar Mb = [];\r\nfunction Nb(a, b, c, d) { Array.isArray(c) || (c && (Mb[0] = c.toString()), c = Mb); for (var e = 0; e < c.length; e++) {\r\n var f = hb(b, c[e], d || a.handleEvent, !1, a.b || a);\r\n if (!f)\r\n break;\r\n a.a[f.key] = f;\r\n} }\r\nfunction Ob(a) { Aa(a.a, function (b, c) { this.a.hasOwnProperty(c) && rb(b); }, a); a.a = {}; }\r\nE.prototype.G = function () { E.S.G.call(this); Ob(this); };\r\nE.prototype.handleEvent = function () { throw Error(\"EventHandler.handleEvent not implemented\"); };\r\nfunction Pb() { this.a = !0; }\r\nfunction Qb(a, b, c, d, e, f) { a.info(function () { if (a.a)\r\n if (f) {\r\n var h = \"\";\r\n for (var m = f.split(\"&\"), l = 0; l < m.length; l++) {\r\n var t = m[l].split(\"=\");\r\n if (1 < t.length) {\r\n var B = t[0];\r\n t = t[1];\r\n var z = B.split(\"_\");\r\n h = 2 <= z.length && \"type\" == z[1] ? h + (B + \"=\" + t + \"&\") : h + (B + \"=redacted&\");\r\n }\r\n }\r\n }\r\n else\r\n h = null;\r\nelse\r\n h = f; return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + h; }); }\r\nfunction Rb(a, b, c, d, e, f, h) { a.info(function () { return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + h; }); }\r\nfunction F(a, b, c, d) { a.info(function () { return \"XMLHTTP TEXT (\" + b + \"): \" + Sb(a, c) + (d ? \" \" + d : \"\"); }); }\r\nfunction Tb(a, b) { a.info(function () { return \"TIMEOUT: \" + b; }); }\r\nPb.prototype.info = function () { };\r\nfunction Sb(a, b) { if (!a.a)\r\n return b; if (!b)\r\n return null; try {\r\n var c = JSON.parse(b);\r\n if (c)\r\n for (a = 0; a < c.length; a++)\r\n if (Array.isArray(c[a])) {\r\n var d = c[a];\r\n if (!(2 > d.length)) {\r\n var e = d[1];\r\n if (Array.isArray(e) && !(1 > e.length)) {\r\n var f = e[0];\r\n if (\"noop\" != f && \"stop\" != f && \"close\" != f)\r\n for (var h = 1; h < e.length; h++)\r\n e[h] = \"\";\r\n }\r\n }\r\n }\r\n return vb(c);\r\n}\r\ncatch (m) {\r\n return b;\r\n} }\r\nvar Ub = null;\r\nfunction Vb() { return Ub = Ub || new D; }\r\nfunction Wb(a) { y.call(this, \"serverreachability\", a); }\r\nr(Wb, y);\r\nfunction G(a) { var b = Vb(); b.dispatchEvent(new Wb(b, a)); }\r\nfunction Xb(a) { y.call(this, \"statevent\", a); }\r\nr(Xb, y);\r\nfunction H(a) { var b = Vb(); b.dispatchEvent(new Xb(b, a)); }\r\nfunction Yb(a) { y.call(this, \"timingevent\", a); }\r\nr(Yb, y);\r\nfunction I(a, b) { if (\"function\" != ba(a))\r\n throw Error(\"Fn must not be null and must be a function\"); return k.setTimeout(function () { a(); }, b); }\r\nvar Zb = { NO_ERROR: 0, Za: 1, gb: 2, fb: 3, bb: 4, eb: 5, hb: 6, Da: 7, TIMEOUT: 8, kb: 9 };\r\nvar $b = { ab: \"complete\", ob: \"success\", Ea: \"error\", Da: \"abort\", mb: \"ready\", nb: \"readystatechange\", TIMEOUT: \"timeout\", ib: \"incrementaldata\", lb: \"progress\", cb: \"downloadprogress\", pb: \"uploadprogress\" };\r\nfunction ac() { }\r\nac.prototype.a = null;\r\nfunction bc(a) { var b; (b = a.a) || (b = a.a = {}); return b; }\r\nfunction cc() { }\r\nvar J = { OPEN: \"a\", $a: \"b\", Ea: \"c\", jb: \"d\" };\r\nfunction dc() { y.call(this, \"d\"); }\r\nr(dc, y);\r\nfunction ec() { y.call(this, \"c\"); }\r\nr(ec, y);\r\nvar fc;\r\nfunction gc() { }\r\nr(gc, ac);\r\nfc = new gc;\r\nfunction K(a, b, c, d) { this.g = a; this.c = b; this.f = c; this.T = d || 1; this.J = new E(this); this.P = hc; a = Ja ? 125 : void 0; this.R = new Hb(a); this.B = null; this.b = !1; this.j = this.l = this.i = this.H = this.u = this.U = this.o = null; this.s = []; this.a = null; this.D = 0; this.h = this.m = null; this.N = -1; this.A = !1; this.O = 0; this.F = null; this.W = this.C = this.V = this.I = !1; }\r\nvar hc = 45E3, ic = {}, jc = {};\r\ng = K.prototype;\r\ng.setTimeout = function (a) { this.P = a; };\r\nfunction kc(a, b, c) { a.H = 1; a.i = lc(L(b)); a.j = c; a.I = !0; mc(a, null); }\r\nfunction mc(a, b) { a.u = q(); M(a); a.l = L(a.i); var c = a.l, d = a.T; Array.isArray(d) || (d = [String(d)]); nc(c.b, \"t\", d); a.D = 0; a.a = oc(a.g, a.g.C ? b : null); 0 < a.O && (a.F = new Lb(p(a.Ca, a, a.a), a.O)); Nb(a.J, a.a, \"readystatechange\", a.Wa); b = a.B ? Ba(a.B) : {}; a.j ? (a.m || (a.m = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.a.ba(a.l, a.m, a.j, b)) : (a.m = \"GET\", a.a.ba(a.l, a.m, null, b)); G(1); Qb(a.c, a.m, a.l, a.f, a.T, a.j); }\r\ng.Wa = function (a) { a = a.target; var b = this.F; b && 3 == N(a) ? b.f() : this.Ca(a); };\r\ng.Ca = function (a) {\r\n try {\r\n if (a == this.a)\r\n a: {\r\n var b = N(this.a), c = this.a.ua(), d = this.a.X();\r\n if (!(3 > b || 3 == b && !Ja && !this.a.$())) {\r\n this.A || 4 != b || 7 == c || (8 == c || 0 >= d ? G(3) : G(2));\r\n pc(this);\r\n var e = this.a.X();\r\n this.N = e;\r\n var f = this.a.$();\r\n this.b = 200 == e;\r\n Rb(this.c, this.m, this.l, this.f, this.T, b, e);\r\n if (this.b) {\r\n if (this.V && !this.C) {\r\n b: {\r\n if (this.a) {\r\n var h, m = this.a;\r\n if ((h = m.a ? m.a.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !ta(h)) {\r\n var l = h;\r\n break b;\r\n }\r\n }\r\n l = null;\r\n }\r\n if (l)\r\n F(this.c, this.f, l, \"Initial handshake response via X-HTTP-Initial-Response\"),\r\n this.C = !0, qc(this, l);\r\n else {\r\n this.b = !1;\r\n this.h = 3;\r\n H(12);\r\n O(this);\r\n rc(this);\r\n break a;\r\n }\r\n }\r\n this.I ? (tc(this, b, f), Ja && this.b && 3 == b && (Nb(this.J, this.R, \"tick\", this.Va), this.R.start())) : (F(this.c, this.f, f, null), qc(this, f));\r\n 4 == b && O(this);\r\n this.b && !this.A && (4 == b ? uc(this.g, this) : (this.b = !1, M(this)));\r\n }\r\n else\r\n 400 == e && 0 < f.indexOf(\"Unknown SID\") ? (this.h = 3, H(12)) : (this.h = 0, H(13)), O(this), rc(this);\r\n }\r\n }\r\n }\r\n catch (t) { }\r\n finally { }\r\n};\r\nfunction tc(a, b, c) { for (var d = !0; !a.A && a.D < c.length;) {\r\n var e = vc(a, c);\r\n if (e == jc) {\r\n 4 == b && (a.h = 4, H(14), d = !1);\r\n F(a.c, a.f, null, \"[Incomplete Response]\");\r\n break;\r\n }\r\n else if (e == ic) {\r\n a.h = 4;\r\n H(15);\r\n F(a.c, a.f, c, \"[Invalid Chunk]\");\r\n d = !1;\r\n break;\r\n }\r\n else\r\n F(a.c, a.f, e, null), qc(a, e);\r\n} 4 == b && 0 == c.length && (a.h = 1, H(16), d = !1); a.b = a.b && d; d ? 0 < c.length && !a.W && (a.W = !0, b = a.g, b.a == a && b.V && !b.F && (b.c.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), xc(b), b.F = !0)) : (F(a.c, a.f, c, \"[Invalid Chunked Response]\"), O(a), rc(a)); }\r\ng.Va = function () { if (this.a) {\r\n var a = N(this.a), b = this.a.$();\r\n this.D < b.length && (pc(this), tc(this, a, b), this.b && 4 != a && M(this));\r\n} };\r\nfunction vc(a, b) { var c = a.D, d = b.indexOf(\"\\n\", c); if (-1 == d)\r\n return jc; c = Number(b.substring(c, d)); if (isNaN(c))\r\n return ic; d += 1; if (d + c > b.length)\r\n return jc; b = b.substr(d, c); a.D = d + c; return b; }\r\ng.cancel = function () { this.A = !0; O(this); };\r\nfunction M(a) { a.U = q() + a.P; yc(a, a.P); }\r\nfunction yc(a, b) { if (null != a.o)\r\n throw Error(\"WatchDog timer not null\"); a.o = I(p(a.Ua, a), b); }\r\nfunction pc(a) { a.o && (k.clearTimeout(a.o), a.o = null); }\r\ng.Ua = function () { this.o = null; var a = q(); 0 <= a - this.U ? (Tb(this.c, this.l), 2 != this.H && (G(3), H(17)), O(this), this.h = 2, rc(this)) : yc(this, this.U - a); };\r\nfunction rc(a) { 0 == a.g.v || a.A || uc(a.g, a); }\r\nfunction O(a) { pc(a); var b = a.F; b && \"function\" == typeof b.ja && b.ja(); a.F = null; Ib(a.R); Ob(a.J); a.a && (b = a.a, a.a = null, b.abort(), b.ja()); }\r\nfunction qc(a, b) {\r\n try {\r\n var c = a.g;\r\n if (0 != c.v && (c.a == a || zc(c.b, a)))\r\n if (c.I = a.N, !a.C && zc(c.b, a) && 3 == c.v) {\r\n try {\r\n var d = c.ka.a.parse(b);\r\n }\r\n catch (sc) {\r\n d = null;\r\n }\r\n if (Array.isArray(d) && 3 == d.length) {\r\n var e = d;\r\n if (0 == e[0])\r\n a: {\r\n if (!c.j) {\r\n if (c.a)\r\n if (c.a.u + 3E3 < a.u)\r\n Ac(c), Bc(c);\r\n else\r\n break a;\r\n Cc(c);\r\n H(18);\r\n }\r\n }\r\n else\r\n c.oa = e[1], 0 < c.oa - c.P && 37500 > e[2] && c.H && 0 == c.o && !c.m && (c.m = I(p(c.Ra, c), 6E3));\r\n if (1 >= Dc(c.b) && c.ea) {\r\n try {\r\n c.ea();\r\n }\r\n catch (sc) { }\r\n c.ea = void 0;\r\n }\r\n }\r\n else\r\n P(c, 11);\r\n }\r\n else if ((a.C || c.a == a) && Ac(c), !ta(b))\r\n for (b = d = c.ka.a.parse(b), d = 0; d < b.length; d++)\r\n if (e =\r\n b[d], c.P = e[0], e = e[1], 2 == c.v)\r\n if (\"c\" == e[0]) {\r\n c.J = e[1];\r\n c.ga = e[2];\r\n var f = e[3];\r\n null != f && (c.ha = f, c.c.info(\"VER=\" + c.ha));\r\n var h = e[4];\r\n null != h && (c.pa = h, c.c.info(\"SVER=\" + c.pa));\r\n var m = e[5];\r\n if (null != m && \"number\" === typeof m && 0 < m) {\r\n var l = 1.5 * m;\r\n c.D = l;\r\n c.c.info(\"backChannelRequestTimeoutMs_=\" + l);\r\n }\r\n l = c;\r\n var t = a.a;\r\n if (t) {\r\n var B = t.a ? t.a.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\r\n if (B) {\r\n var z = l.b;\r\n !z.a && (v(B, \"spdy\") || v(B, \"quic\") || v(B, \"h2\")) && (z.f = z.g, z.a = new Set, z.b && (Ec(z, z.b), z.b = null));\r\n }\r\n if (l.A) {\r\n var qb = t.a ? t.a.getResponseHeader(\"X-HTTP-Session-Id\") :\r\n null;\r\n qb && (l.na = qb, Q(l.B, l.A, qb));\r\n }\r\n }\r\n c.v = 3;\r\n c.f && c.f.ta();\r\n c.V && (c.N = q() - a.u, c.c.info(\"Handshake RTT: \" + c.N + \"ms\"));\r\n l = c;\r\n var va = a;\r\n l.la = Fc(l, l.C ? l.ga : null, l.fa);\r\n if (va.C) {\r\n Gc(l.b, va);\r\n var wa = va, wc = l.D;\r\n wc && wa.setTimeout(wc);\r\n wa.o && (pc(wa), M(wa));\r\n l.a = va;\r\n }\r\n else\r\n Hc(l);\r\n 0 < c.g.length && Ic(c);\r\n }\r\n else\r\n \"stop\" != e[0] && \"close\" != e[0] || P(c, 7);\r\n else\r\n 3 == c.v && (\"stop\" == e[0] || \"close\" == e[0] ? \"stop\" == e[0] ? P(c, 7) : Jc(c) : \"noop\" != e[0] && c.f && c.f.sa(e), c.o = 0);\r\n G(4);\r\n }\r\n catch (sc) { }\r\n}\r\nfunction Kc(a) { if (a.K && \"function\" == typeof a.K)\r\n return a.K(); if (\"string\" === typeof a)\r\n return a.split(\"\"); if (ca(a)) {\r\n for (var b = [], c = a.length, d = 0; d < c; d++)\r\n b.push(a[d]);\r\n return b;\r\n} b = []; c = 0; for (d in a)\r\n b[c++] = a[d]; return a = b; }\r\nfunction Lc(a, b) { if (a.forEach && \"function\" == typeof a.forEach)\r\n a.forEach(b, void 0);\r\nelse if (ca(a) || \"string\" === typeof a)\r\n oa(a, b, void 0);\r\nelse {\r\n if (a.L && \"function\" == typeof a.L)\r\n var c = a.L();\r\n else if (a.K && \"function\" == typeof a.K)\r\n c = void 0;\r\n else if (ca(a) || \"string\" === typeof a) {\r\n c = [];\r\n for (var d = a.length, e = 0; e < d; e++)\r\n c.push(e);\r\n }\r\n else\r\n for (e in c = [], d = 0, a)\r\n c[d++] = e;\r\n d = Kc(a);\r\n e = d.length;\r\n for (var f = 0; f < e; f++)\r\n b.call(void 0, d[f], c && c[f], a);\r\n} }\r\nfunction R(a, b) { this.b = {}; this.a = []; this.c = 0; var c = arguments.length; if (1 < c) {\r\n if (c % 2)\r\n throw Error(\"Uneven number of arguments\");\r\n for (var d = 0; d < c; d += 2)\r\n this.set(arguments[d], arguments[d + 1]);\r\n}\r\nelse if (a)\r\n if (a instanceof R)\r\n for (c = a.L(), d = 0; d < c.length; d++)\r\n this.set(c[d], a.get(c[d]));\r\n else\r\n for (d in a)\r\n this.set(d, a[d]); }\r\ng = R.prototype;\r\ng.K = function () { Mc(this); for (var a = [], b = 0; b < this.a.length; b++)\r\n a.push(this.b[this.a[b]]); return a; };\r\ng.L = function () { Mc(this); return this.a.concat(); };\r\nfunction Mc(a) { if (a.c != a.a.length) {\r\n for (var b = 0, c = 0; b < a.a.length;) {\r\n var d = a.a[b];\r\n S(a.b, d) && (a.a[c++] = d);\r\n b++;\r\n }\r\n a.a.length = c;\r\n} if (a.c != a.a.length) {\r\n var e = {};\r\n for (c = b = 0; b < a.a.length;)\r\n d = a.a[b], S(e, d) || (a.a[c++] = d, e[d] = 1), b++;\r\n a.a.length = c;\r\n} }\r\ng.get = function (a, b) { return S(this.b, a) ? this.b[a] : b; };\r\ng.set = function (a, b) { S(this.b, a) || (this.c++, this.a.push(a)); this.b[a] = b; };\r\ng.forEach = function (a, b) { for (var c = this.L(), d = 0; d < c.length; d++) {\r\n var e = c[d], f = this.get(e);\r\n a.call(b, f, e, this);\r\n} };\r\nfunction S(a, b) { return Object.prototype.hasOwnProperty.call(a, b); }\r\nvar Nc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\r\nfunction Oc(a, b) { if (a) {\r\n a = a.split(\"&\");\r\n for (var c = 0; c < a.length; c++) {\r\n var d = a[c].indexOf(\"=\"), e = null;\r\n if (0 <= d) {\r\n var f = a[c].substring(0, d);\r\n e = a[c].substring(d + 1);\r\n }\r\n else\r\n f = a[c];\r\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\r\n }\r\n} }\r\nfunction T(a, b) { this.c = this.j = this.f = \"\"; this.h = null; this.i = this.g = \"\"; this.a = !1; if (a instanceof T) {\r\n this.a = void 0 !== b ? b : a.a;\r\n Pc(this, a.f);\r\n this.j = a.j;\r\n Qc(this, a.c);\r\n Rc(this, a.h);\r\n this.g = a.g;\r\n b = a.b;\r\n var c = new U;\r\n c.c = b.c;\r\n b.a && (c.a = new R(b.a), c.b = b.b);\r\n Sc(this, c);\r\n this.i = a.i;\r\n}\r\nelse\r\n a && (c = String(a).match(Nc)) ? (this.a = !!b, Pc(this, c[1] || \"\", !0), this.j = Tc(c[2] || \"\"), Qc(this, c[3] || \"\", !0), Rc(this, c[4]), this.g = Tc(c[5] || \"\", !0), Sc(this, c[6] || \"\", !0), this.i = Tc(c[7] || \"\")) : (this.a = !!b, this.b = new U(null, this.a)); }\r\nT.prototype.toString = function () { var a = [], b = this.f; b && a.push(Uc(b, Vc, !0), \":\"); var c = this.c; if (c || \"file\" == b)\r\n a.push(\"//\"), (b = this.j) && a.push(Uc(b, Vc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.h, null != c && a.push(\":\", String(c)); if (c = this.g)\r\n this.c && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Uc(c, \"/\" == c.charAt(0) ? Wc : Xc, !0)); (c = this.b.toString()) && a.push(\"?\", c); (c = this.i) && a.push(\"#\", Uc(c, Yc)); return a.join(\"\"); };\r\nfunction L(a) { return new T(a); }\r\nfunction Pc(a, b, c) { a.f = c ? Tc(b, !0) : b; a.f && (a.f = a.f.replace(/:$/, \"\")); }\r\nfunction Qc(a, b, c) { a.c = c ? Tc(b, !0) : b; }\r\nfunction Rc(a, b) { if (b) {\r\n b = Number(b);\r\n if (isNaN(b) || 0 > b)\r\n throw Error(\"Bad port number \" + b);\r\n a.h = b;\r\n}\r\nelse\r\n a.h = null; }\r\nfunction Sc(a, b, c) { b instanceof U ? (a.b = b, Zc(a.b, a.a)) : (c || (b = Uc(b, $c)), a.b = new U(b, a.a)); }\r\nfunction Q(a, b, c) { a.b.set(b, c); }\r\nfunction lc(a) { Q(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ q()).toString(36)); return a; }\r\nfunction ad(a) { return a instanceof T ? L(a) : new T(a, void 0); }\r\nfunction bd(a, b, c, d) { var e = new T(null, void 0); a && Pc(e, a); b && Qc(e, b); c && Rc(e, c); d && (e.g = d); return e; }\r\nfunction Tc(a, b) { return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\"; }\r\nfunction Uc(a, b, c) { return \"string\" === typeof a ? (a = encodeURI(a).replace(b, cd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null; }\r\nfunction cd(a) { a = a.charCodeAt(0); return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); }\r\nvar Vc = /[#\\/\\?@]/g, Xc = /[#\\?:]/g, Wc = /[#\\?]/g, $c = /[#\\?@]/g, Yc = /#/g;\r\nfunction U(a, b) { this.b = this.a = null; this.c = a || null; this.f = !!b; }\r\nfunction V(a) { a.a || (a.a = new R, a.b = 0, a.c && Oc(a.c, function (b, c) { a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c); })); }\r\ng = U.prototype;\r\ng.add = function (a, b) { V(this); this.c = null; a = W(this, a); var c = this.a.get(a); c || this.a.set(a, c = []); c.push(b); this.b += 1; return this; };\r\nfunction dd(a, b) { V(a); b = W(a, b); S(a.a.b, b) && (a.c = null, a.b -= a.a.get(b).length, a = a.a, S(a.b, b) && (delete a.b[b], a.c--, a.a.length > 2 * a.c && Mc(a))); }\r\nfunction ed(a, b) { V(a); b = W(a, b); return S(a.a.b, b); }\r\ng.forEach = function (a, b) { V(this); this.a.forEach(function (c, d) { oa(c, function (e) { a.call(b, e, d, this); }, this); }, this); };\r\ng.L = function () { V(this); for (var a = this.a.K(), b = this.a.L(), c = [], d = 0; d < b.length; d++)\r\n for (var e = a[d], f = 0; f < e.length; f++)\r\n c.push(b[d]); return c; };\r\ng.K = function (a) { V(this); var b = []; if (\"string\" === typeof a)\r\n ed(this, a) && (b = ra(b, this.a.get(W(this, a))));\r\nelse {\r\n a = this.a.K();\r\n for (var c = 0; c < a.length; c++)\r\n b = ra(b, a[c]);\r\n} return b; };\r\ng.set = function (a, b) { V(this); this.c = null; a = W(this, a); ed(this, a) && (this.b -= this.a.get(a).length); this.a.set(a, [b]); this.b += 1; return this; };\r\ng.get = function (a, b) { if (!a)\r\n return b; a = this.K(a); return 0 < a.length ? String(a[0]) : b; };\r\nfunction nc(a, b, c) { dd(a, b); 0 < c.length && (a.c = null, a.a.set(W(a, b), sa(c)), a.b += c.length); }\r\ng.toString = function () { if (this.c)\r\n return this.c; if (!this.a)\r\n return \"\"; for (var a = [], b = this.a.L(), c = 0; c < b.length; c++) {\r\n var d = b[c], e = encodeURIComponent(String(d));\r\n d = this.K(d);\r\n for (var f = 0; f < d.length; f++) {\r\n var h = e;\r\n \"\" !== d[f] && (h += \"=\" + encodeURIComponent(String(d[f])));\r\n a.push(h);\r\n }\r\n} return this.c = a.join(\"&\"); };\r\nfunction W(a, b) { b = String(b); a.f && (b = b.toLowerCase()); return b; }\r\nfunction Zc(a, b) { b && !a.f && (V(a), a.c = null, a.a.forEach(function (c, d) { var e = d.toLowerCase(); d != e && (dd(this, d), nc(this, e, c)); }, a)); a.f = b; }\r\nfunction fd(a, b) { this.b = a; this.a = b; }\r\nfunction gd(a) { this.g = a || hd; k.PerformanceNavigationTiming ? (a = k.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(k.ia && k.ia.ya && k.ia.ya() && k.ia.ya().qb); this.f = a ? this.g : 1; this.a = null; 1 < this.f && (this.a = new Set); this.b = null; this.c = []; }\r\nvar hd = 10;\r\nfunction id(a) { return a.b ? !0 : a.a ? a.a.size >= a.f : !1; }\r\nfunction Dc(a) { return a.b ? 1 : a.a ? a.a.size : 0; }\r\nfunction zc(a, b) { return a.b ? a.b == b : a.a ? a.a.has(b) : !1; }\r\nfunction Ec(a, b) { a.a ? a.a.add(b) : a.b = b; }\r\nfunction Gc(a, b) { a.b && a.b == b ? a.b = null : a.a && a.a.has(b) && a.a.delete(b); }\r\ngd.prototype.cancel = function () {\r\n var e_1, _a;\r\n this.c = jd(this);\r\n if (this.b)\r\n this.b.cancel(), this.b = null;\r\n else if (this.a && 0 !== this.a.size) {\r\n try {\r\n for (var _b = __values(this.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var a = _c.value;\r\n a.cancel();\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n this.a.clear();\r\n }\r\n};\r\nfunction jd(a) {\r\n var e_2, _a;\r\n if (null != a.b)\r\n return a.c.concat(a.b.s);\r\n if (null != a.a && 0 !== a.a.size) {\r\n var b = a.c;\r\n try {\r\n for (var _b = __values(a.a.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var c = _c.value;\r\n b = b.concat(c.s);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return b;\r\n }\r\n return sa(a.c);\r\n}\r\nfunction kd() { }\r\nkd.prototype.stringify = function (a) { return k.JSON.stringify(a, void 0); };\r\nkd.prototype.parse = function (a) { return k.JSON.parse(a, void 0); };\r\nfunction ld() { this.a = new kd; }\r\nfunction md(a, b, c) { var d = c || \"\"; try {\r\n Lc(a, function (e, f) { var h = e; n(e) && (h = vb(e)); b.push(d + f + \"=\" + encodeURIComponent(h)); });\r\n}\r\ncatch (e) {\r\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\r\n} }\r\nfunction nd(a, b) { var c = new Pb; if (k.Image) {\r\n var d = new Image;\r\n d.onload = ka(od, c, d, \"TestLoadImage: loaded\", !0, b);\r\n d.onerror = ka(od, c, d, \"TestLoadImage: error\", !1, b);\r\n d.onabort = ka(od, c, d, \"TestLoadImage: abort\", !1, b);\r\n d.ontimeout = ka(od, c, d, \"TestLoadImage: timeout\", !1, b);\r\n k.setTimeout(function () { if (d.ontimeout)\r\n d.ontimeout(); }, 1E4);\r\n d.src = a;\r\n}\r\nelse\r\n b(!1); }\r\nfunction od(a, b, c, d, e) { try {\r\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\r\n}\r\ncatch (f) { } }\r\nvar pd = k.JSON.parse;\r\nfunction X(a) { D.call(this); this.headers = new R; this.H = a || null; this.b = !1; this.s = this.a = null; this.B = \"\"; this.h = 0; this.f = \"\"; this.g = this.A = this.l = this.u = !1; this.o = 0; this.m = null; this.I = qd; this.D = this.F = !1; }\r\nr(X, D);\r\nvar qd = \"\", rd = /^https?$/i, sd = [\"POST\", \"PUT\"];\r\ng = X.prototype;\r\ng.ba = function (a, b, c, d) {\r\n if (this.a)\r\n throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.B + \"; newUri=\" + a);\r\n b = b ? b.toUpperCase() : \"GET\";\r\n this.B = a;\r\n this.f = \"\";\r\n this.h = 0;\r\n this.u = !1;\r\n this.b = !0;\r\n this.a = new XMLHttpRequest;\r\n this.s = this.H ? bc(this.H) : bc(fc);\r\n this.a.onreadystatechange = p(this.za, this);\r\n try {\r\n this.A = !0, this.a.open(b, String(a), !0), this.A = !1;\r\n }\r\n catch (f) {\r\n td(this, f);\r\n return;\r\n }\r\n a = c || \"\";\r\n var e = new R(this.headers);\r\n d && Lc(d, function (f, h) { e.set(h, f); });\r\n d = pa(e.L());\r\n c = k.FormData && a instanceof k.FormData;\r\n !(0 <=\r\n na(sd, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\r\n e.forEach(function (f, h) { this.a.setRequestHeader(h, f); }, this);\r\n this.I && (this.a.responseType = this.I);\r\n \"withCredentials\" in this.a && this.a.withCredentials !== this.F && (this.a.withCredentials = this.F);\r\n try {\r\n ud(this), 0 < this.o && ((this.D = vd(this.a)) ? (this.a.timeout = this.o, this.a.ontimeout = p(this.xa, this)) : this.m = Jb(this.xa, this.o, this)), this.l = !0, this.a.send(a), this.l = !1;\r\n }\r\n catch (f) {\r\n td(this, f);\r\n }\r\n};\r\nfunction vd(a) { return x && Ra(9) && \"number\" === typeof a.timeout && void 0 !== a.ontimeout; }\r\nfunction qa(a) { return \"content-type\" == a.toLowerCase(); }\r\ng.xa = function () { \"undefined\" != typeof goog && this.a && (this.f = \"Timed out after \" + this.o + \"ms, aborting\", this.h = 8, this.dispatchEvent(\"timeout\"), this.abort(8)); };\r\nfunction td(a, b) { a.b = !1; a.a && (a.g = !0, a.a.abort(), a.g = !1); a.f = b; a.h = 5; wd(a); xd(a); }\r\nfunction wd(a) { a.u || (a.u = !0, a.dispatchEvent(\"complete\"), a.dispatchEvent(\"error\")); }\r\ng.abort = function (a) { this.a && this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1, this.h = a || 7, this.dispatchEvent(\"complete\"), this.dispatchEvent(\"abort\"), xd(this)); };\r\ng.G = function () { this.a && (this.b && (this.b = !1, this.g = !0, this.a.abort(), this.g = !1), xd(this, !0)); X.S.G.call(this); };\r\ng.za = function () { this.j || (this.A || this.l || this.g ? yd(this) : this.Ta()); };\r\ng.Ta = function () { yd(this); };\r\nfunction yd(a) {\r\n if (a.b && \"undefined\" != typeof goog && (!a.s[1] || 4 != N(a) || 2 != a.X()))\r\n if (a.l && 4 == N(a))\r\n Jb(a.za, 0, a);\r\n else if (a.dispatchEvent(\"readystatechange\"), 4 == N(a)) {\r\n a.b = !1;\r\n try {\r\n var b = a.X();\r\n a: switch (b) {\r\n case 200:\r\n case 201:\r\n case 202:\r\n case 204:\r\n case 206:\r\n case 304:\r\n case 1223:\r\n var c = !0;\r\n break a;\r\n default: c = !1;\r\n }\r\n var d;\r\n if (!(d = c)) {\r\n var e;\r\n if (e = 0 === b) {\r\n var f = String(a.B).match(Nc)[1] || null;\r\n if (!f && k.self && k.self.location) {\r\n var h = k.self.location.protocol;\r\n f = h.substr(0, h.length - 1);\r\n }\r\n e = !rd.test(f ? f.toLowerCase() : \"\");\r\n }\r\n d = e;\r\n }\r\n if (d)\r\n a.dispatchEvent(\"complete\"),\r\n a.dispatchEvent(\"success\");\r\n else {\r\n a.h = 6;\r\n try {\r\n var m = 2 < N(a) ? a.a.statusText : \"\";\r\n }\r\n catch (l) {\r\n m = \"\";\r\n }\r\n a.f = m + \" [\" + a.X() + \"]\";\r\n wd(a);\r\n }\r\n }\r\n finally {\r\n xd(a);\r\n }\r\n }\r\n}\r\nfunction xd(a, b) { if (a.a) {\r\n ud(a);\r\n var c = a.a, d = a.s[0] ? aa : null;\r\n a.a = null;\r\n a.s = null;\r\n b || a.dispatchEvent(\"ready\");\r\n try {\r\n c.onreadystatechange = d;\r\n }\r\n catch (e) { }\r\n} }\r\nfunction ud(a) { a.a && a.D && (a.a.ontimeout = null); a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction N(a) { return a.a ? a.a.readyState : 0; }\r\ng.X = function () { try {\r\n return 2 < N(this) ? this.a.status : -1;\r\n}\r\ncatch (a) {\r\n return -1;\r\n} };\r\ng.$ = function () { try {\r\n return this.a ? this.a.responseText : \"\";\r\n}\r\ncatch (a) {\r\n return \"\";\r\n} };\r\ng.Na = function (a) { if (this.a) {\r\n var b = this.a.responseText;\r\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\r\n return pd(b);\r\n} };\r\ng.ua = function () { return this.h; };\r\ng.Qa = function () { return \"string\" === typeof this.f ? this.f : String(this.f); };\r\nfunction zd(a) { var b = \"\"; Aa(a, function (c, d) { b += d; b += \":\"; b += c; b += \"\\r\\n\"; }); return b; }\r\nfunction Ad(a, b, c) { a: {\r\n for (d in c) {\r\n var d = !1;\r\n break a;\r\n }\r\n d = !0;\r\n} d || (c = zd(c), \"string\" === typeof a ? (null != c && encodeURIComponent(String(c))) : Q(a, b, c)); }\r\nfunction Bd(a, b, c) { return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b; }\r\nfunction Cd(a) {\r\n this.pa = 0;\r\n this.g = [];\r\n this.c = new Pb;\r\n this.ga = this.la = this.B = this.fa = this.a = this.na = this.A = this.W = this.i = this.O = this.l = null;\r\n this.La = this.R = 0;\r\n this.Ia = Bd(\"failFast\", !1, a);\r\n this.H = this.m = this.j = this.h = this.f = null;\r\n this.T = !0;\r\n this.I = this.oa = this.P = -1;\r\n this.U = this.o = this.u = 0;\r\n this.Fa = Bd(\"baseRetryDelayMs\", 5E3, a);\r\n this.Ma = Bd(\"retryDelaySeedMs\", 1E4, a);\r\n this.Ja = Bd(\"forwardChannelMaxRetries\", 2, a);\r\n this.ma = Bd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\r\n this.Ka = a && a.g || void 0;\r\n this.D = void 0;\r\n this.C = a && a.supportsCrossDomainXhr ||\r\n !1;\r\n this.J = \"\";\r\n this.b = new gd(a && a.concurrentRequestLimit);\r\n this.ka = new ld;\r\n this.da = a && a.fastHandshake || !1;\r\n this.Ga = a && a.b || !1;\r\n a && a.f && (this.c.a = !1);\r\n a && a.forceLongPolling && (this.T = !1);\r\n this.V = !this.da && this.T && a && a.c || !1;\r\n this.ea = void 0;\r\n this.N = 0;\r\n this.F = !1;\r\n this.s = null;\r\n}\r\ng = Cd.prototype;\r\ng.ha = 8;\r\ng.v = 1;\r\nfunction Jc(a) { Dd(a); if (3 == a.v) {\r\n var b = a.R++, c = L(a.B);\r\n Q(c, \"SID\", a.J);\r\n Q(c, \"RID\", b);\r\n Q(c, \"TYPE\", \"terminate\");\r\n Ed(a, c);\r\n b = new K(a, a.c, b, void 0);\r\n b.H = 2;\r\n b.i = lc(L(c));\r\n c = !1;\r\n k.navigator && k.navigator.sendBeacon && (c = k.navigator.sendBeacon(b.i.toString(), \"\"));\r\n !c && k.Image && ((new Image).src = b.i, c = !0);\r\n c || (b.a = oc(b.g, null), b.a.ba(b.i));\r\n b.u = q();\r\n M(b);\r\n} Fd(a); }\r\nfunction Bc(a) { a.a && (xc(a), a.a.cancel(), a.a = null); }\r\nfunction Dd(a) { Bc(a); a.j && (k.clearTimeout(a.j), a.j = null); Ac(a); a.b.cancel(); a.h && (\"number\" === typeof a.h && k.clearTimeout(a.h), a.h = null); }\r\nfunction Gd(a, b) { a.g.push(new fd(a.La++, b)); 3 == a.v && Ic(a); }\r\nfunction Ic(a) { id(a.b) || a.h || (a.h = !0, Cb(a.Ba, a), a.u = 0); }\r\nfunction Hd(a, b) { if (Dc(a.b) >= a.b.f - (a.h ? 1 : 0))\r\n return !1; if (a.h)\r\n return a.g = b.s.concat(a.g), !0; if (1 == a.v || 2 == a.v || a.u >= (a.Ia ? 0 : a.Ja))\r\n return !1; a.h = I(p(a.Ba, a, b), Id(a, a.u)); a.u++; return !0; }\r\ng.Ba = function (a) {\r\n if (this.h)\r\n if (this.h = null, 1 == this.v) {\r\n if (!a) {\r\n this.R = Math.floor(1E5 * Math.random());\r\n a = this.R++;\r\n var b = new K(this, this.c, a, void 0), c = this.l;\r\n this.O && (c ? (c = Ba(c), Da(c, this.O)) : c = this.O);\r\n null === this.i && (b.B = c);\r\n var d;\r\n if (this.da)\r\n a: {\r\n for (var e = d = 0; e < this.g.length; e++) {\r\n b: {\r\n var f = this.g[e];\r\n if (\"__data__\" in f.a && (f = f.a.__data__, \"string\" === typeof f)) {\r\n f = f.length;\r\n break b;\r\n }\r\n f = void 0;\r\n }\r\n if (void 0 === f)\r\n break;\r\n d += f;\r\n if (4096 < d) {\r\n d = e;\r\n break a;\r\n }\r\n if (4096 === d || e === this.g.length - 1) {\r\n d = e + 1;\r\n break a;\r\n }\r\n }\r\n d = 1E3;\r\n }\r\n else\r\n d = 1E3;\r\n d = Jd(this, b, d);\r\n e = L(this.B);\r\n Q(e, \"RID\", a);\r\n Q(e, \"CVER\", 22);\r\n this.A && Q(e, \"X-HTTP-Session-Id\", this.A);\r\n Ed(this, e);\r\n this.i && c && Ad(e, this.i, c);\r\n Ec(this.b, b);\r\n this.Ga && Q(e, \"TYPE\", \"init\");\r\n this.da ? (Q(e, \"$req\", d), Q(e, \"SID\", \"null\"), b.V = !0, kc(b, e, null)) : kc(b, e, d);\r\n this.v = 2;\r\n }\r\n }\r\n else\r\n 3 == this.v && (a ? Kd(this, a) : 0 == this.g.length || id(this.b) || Kd(this));\r\n};\r\nfunction Kd(a, b) { var c; b ? c = b.f : c = a.R++; var d = L(a.B); Q(d, \"SID\", a.J); Q(d, \"RID\", c); Q(d, \"AID\", a.P); Ed(a, d); a.i && a.l && Ad(d, a.i, a.l); c = new K(a, a.c, c, a.u + 1); null === a.i && (c.B = a.l); b && (a.g = b.s.concat(a.g)); b = Jd(a, c, 1E3); c.setTimeout(Math.round(.5 * a.ma) + Math.round(.5 * a.ma * Math.random())); Ec(a.b, c); kc(c, d, b); }\r\nfunction Ed(a, b) { a.f && Lc({}, function (c, d) { Q(b, d, c); }); }\r\nfunction Jd(a, b, c) { c = Math.min(a.g.length, c); var d = a.f ? p(a.f.Ha, a.f, a) : null; a: for (var e = a.g, f = -1;;) {\r\n var h = [\"count=\" + c];\r\n -1 == f ? 0 < c ? (f = e[0].b, h.push(\"ofs=\" + f)) : f = 0 : h.push(\"ofs=\" + f);\r\n for (var m = !0, l = 0; l < c; l++) {\r\n var t = e[l].b, B = e[l].a;\r\n t -= f;\r\n if (0 > t)\r\n f = Math.max(0, e[l].b - 100), m = !1;\r\n else\r\n try {\r\n md(B, h, \"req\" + t + \"_\");\r\n }\r\n catch (z) {\r\n d && d(B);\r\n }\r\n }\r\n if (m) {\r\n d = h.join(\"&\");\r\n break a;\r\n }\r\n} a = a.g.splice(0, c); b.s = a; return d; }\r\nfunction Hc(a) { a.a || a.j || (a.U = 1, Cb(a.Aa, a), a.o = 0); }\r\nfunction Cc(a) { if (a.a || a.j || 3 <= a.o)\r\n return !1; a.U++; a.j = I(p(a.Aa, a), Id(a, a.o)); a.o++; return !0; }\r\ng.Aa = function () { this.j = null; Ld(this); if (this.V && !(this.F || null == this.a || 0 >= this.N)) {\r\n var a = 2 * this.N;\r\n this.c.info(\"BP detection timer enabled: \" + a);\r\n this.s = I(p(this.Sa, this), a);\r\n} };\r\ng.Sa = function () { this.s && (this.s = null, this.c.info(\"BP detection timeout reached.\"), this.c.info(\"Buffering proxy detected and switch to long-polling!\"), this.H = !1, this.F = !0, Bc(this), Ld(this)); };\r\nfunction xc(a) { null != a.s && (k.clearTimeout(a.s), a.s = null); }\r\nfunction Ld(a) { a.a = new K(a, a.c, \"rpc\", a.U); null === a.i && (a.a.B = a.l); a.a.O = 0; var b = L(a.la); Q(b, \"RID\", \"rpc\"); Q(b, \"SID\", a.J); Q(b, \"CI\", a.H ? \"0\" : \"1\"); Q(b, \"AID\", a.P); Ed(a, b); Q(b, \"TYPE\", \"xmlhttp\"); a.i && a.l && Ad(b, a.i, a.l); a.D && a.a.setTimeout(a.D); var c = a.a; a = a.ga; c.H = 1; c.i = lc(L(b)); c.j = null; c.I = !0; mc(c, a); }\r\ng.Ra = function () { null != this.m && (this.m = null, Bc(this), Cc(this), H(19)); };\r\nfunction Ac(a) { null != a.m && (k.clearTimeout(a.m), a.m = null); }\r\nfunction uc(a, b) { var c = null; if (a.a == b) {\r\n Ac(a);\r\n xc(a);\r\n a.a = null;\r\n var d = 2;\r\n}\r\nelse if (zc(a.b, b))\r\n c = b.s, Gc(a.b, b), d = 1;\r\nelse\r\n return; a.I = b.N; if (0 != a.v)\r\n if (b.b)\r\n if (1 == d) {\r\n c = b.j ? b.j.length : 0;\r\n b = q() - b.u;\r\n var e = a.u;\r\n d = Vb();\r\n d.dispatchEvent(new Yb(d, c, b, e));\r\n Ic(a);\r\n }\r\n else\r\n Hc(a);\r\n else if (e = b.h, 3 == e || 0 == e && 0 < a.I || !(1 == d && Hd(a, b) || 2 == d && Cc(a)))\r\n switch (c && 0 < c.length && (b = a.b, b.c = b.c.concat(c)), e) {\r\n case 1:\r\n P(a, 5);\r\n break;\r\n case 4:\r\n P(a, 10);\r\n break;\r\n case 3:\r\n P(a, 6);\r\n break;\r\n default: P(a, 2);\r\n } }\r\nfunction Id(a, b) { var c = a.Fa + Math.floor(Math.random() * a.Ma); a.f || (c *= 2); return c * b; }\r\nfunction P(a, b) { a.c.info(\"Error code \" + b); if (2 == b) {\r\n var c = null;\r\n a.f && (c = null);\r\n var d = p(a.Xa, a);\r\n c || (c = new T(\"//www.google.com/images/cleardot.gif\"), k.location && \"http\" == k.location.protocol || Pc(c, \"https\"), lc(c));\r\n nd(c.toString(), d);\r\n}\r\nelse\r\n H(2); a.v = 0; a.f && a.f.ra(b); Fd(a); Dd(a); }\r\ng.Xa = function (a) { a ? (this.c.info(\"Successfully pinged google.com\"), H(2)) : (this.c.info(\"Failed to ping google.com\"), H(1)); };\r\nfunction Fd(a) { a.v = 0; a.I = -1; if (a.f) {\r\n if (0 != jd(a.b).length || 0 != a.g.length)\r\n a.b.c.length = 0, sa(a.g), a.g.length = 0;\r\n a.f.qa();\r\n} }\r\nfunction Fc(a, b, c) { var d = ad(c); if (\"\" != d.c)\r\n b && Qc(d, b + \".\" + d.c), Rc(d, d.h);\r\nelse {\r\n var e = k.location;\r\n d = bd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\r\n} a.W && Aa(a.W, function (f, h) { Q(d, h, f); }); b = a.A; c = a.na; b && c && Q(d, b, c); Q(d, \"VER\", a.ha); Ed(a, d); return d; }\r\nfunction oc(a, b) { if (b && !a.C)\r\n throw Error(\"Can't create secondary domain capable XhrIo object.\"); b = new X(a.Ka); b.F = a.C; return b; }\r\nfunction Md() { }\r\ng = Md.prototype;\r\ng.ta = function () { };\r\ng.sa = function () { };\r\ng.ra = function () { };\r\ng.qa = function () { };\r\ng.Ha = function () { };\r\nfunction Nd() { if (x && !(10 <= Number(Ua)))\r\n throw Error(\"Environmental error: no available transport.\"); }\r\nNd.prototype.a = function (a, b) { return new Y(a, b); };\r\nfunction Y(a, b) {\r\n D.call(this);\r\n this.a = new Cd(b);\r\n this.l = a;\r\n this.b = b && b.messageUrlParams || null;\r\n a = b && b.messageHeaders || null;\r\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = { \"X-Client-Protocol\": \"webchannel\" });\r\n this.a.l = a;\r\n a = b && b.initMessageHeaders || null;\r\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = { \"X-WebChannel-Content-Type\": b.messageContentType });\r\n b && b.a && (a ? a[\"X-WebChannel-Client-Profile\"] = b.a : a = { \"X-WebChannel-Client-Profile\": b.a });\r\n this.a.O =\r\n a;\r\n (a = b && b.httpHeadersOverwriteParam) && !ta(a) && (this.a.i = a);\r\n this.h = b && b.supportsCrossDomainXhr || !1;\r\n this.g = b && b.sendRawJson || !1;\r\n (b = b && b.httpSessionIdParam) && !ta(b) && (this.a.A = b, a = this.b, null !== a && b in a && (a = this.b, b in a && delete a[b]));\r\n this.f = new Z(this);\r\n}\r\nr(Y, D);\r\ng = Y.prototype;\r\ng.addEventListener = function (a, b, c, d) { Y.S.addEventListener.call(this, a, b, c, d); };\r\ng.removeEventListener = function (a, b, c, d) { Y.S.removeEventListener.call(this, a, b, c, d); };\r\ng.Oa = function () { this.a.f = this.f; this.h && (this.a.C = !0); var a = this.a, b = this.l, c = this.b || void 0; H(0); a.fa = b; a.W = c || {}; a.H = a.T; a.B = Fc(a, null, a.fa); Ic(a); };\r\ng.close = function () { Jc(this.a); };\r\ng.Pa = function (a) { if (\"string\" === typeof a) {\r\n var b = {};\r\n b.__data__ = a;\r\n Gd(this.a, b);\r\n}\r\nelse\r\n this.g ? (b = {}, b.__data__ = vb(a), Gd(this.a, b)) : Gd(this.a, a); };\r\ng.G = function () { this.a.f = null; delete this.f; Jc(this.a); delete this.a; Y.S.G.call(this); };\r\nfunction Od(a) { dc.call(this); var b = a.__sm__; if (b) {\r\n a: {\r\n for (var c in b) {\r\n a = c;\r\n break a;\r\n }\r\n a = void 0;\r\n }\r\n (this.c = a) ? (a = this.c, this.data = null !== b && a in b ? b[a] : void 0) : this.data = b;\r\n}\r\nelse\r\n this.data = a; }\r\nr(Od, dc);\r\nfunction Pd() { ec.call(this); this.status = 1; }\r\nr(Pd, ec);\r\nfunction Z(a) { this.a = a; }\r\nr(Z, Md);\r\nZ.prototype.ta = function () { this.a.dispatchEvent(\"a\"); };\r\nZ.prototype.sa = function (a) { this.a.dispatchEvent(new Od(a)); };\r\nZ.prototype.ra = function (a) { this.a.dispatchEvent(new Pd(a)); };\r\nZ.prototype.qa = function () { this.a.dispatchEvent(\"b\"); }; /*\r\n\n Copyright 2017 Google LLC\r\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\n http://www.apache.org/licenses/LICENSE-2.0\r\n\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\nNd.prototype.createWebChannel = Nd.prototype.a;\r\nY.prototype.send = Y.prototype.Pa;\r\nY.prototype.open = Y.prototype.Oa;\r\nY.prototype.close = Y.prototype.close;\r\nZb.NO_ERROR = 0;\r\nZb.TIMEOUT = 8;\r\nZb.HTTP_ERROR = 6;\r\n$b.COMPLETE = \"complete\";\r\ncc.EventType = J;\r\nJ.OPEN = \"a\";\r\nJ.CLOSE = \"b\";\r\nJ.ERROR = \"c\";\r\nJ.MESSAGE = \"d\";\r\nD.prototype.listen = D.prototype.va;\r\nX.prototype.listenOnce = X.prototype.wa;\r\nX.prototype.getLastError = X.prototype.Qa;\r\nX.prototype.getLastErrorCode = X.prototype.ua;\r\nX.prototype.getStatus = X.prototype.X;\r\nX.prototype.getResponseJson = X.prototype.Na;\r\nX.prototype.getResponseText = X.prototype.$;\r\nX.prototype.send = X.prototype.ba;\r\nvar createWebChannelTransport = function () { return new Nd; };\r\nvar ErrorCode = Zb;\r\nvar EventType = $b;\r\nvar WebChannel = cc;\r\nvar XhrIo = X;\r\n\r\nvar esm = {\r\n createWebChannelTransport: createWebChannelTransport,\r\n ErrorCode: ErrorCode,\r\n EventType: EventType,\r\n WebChannel: WebChannel,\r\n XhrIo: XhrIo\r\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (esm);\n\n//# sourceMappingURL=index.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3dlYmNoYW5uZWwtd3JhcHBlci9kaXN0L2luZGV4LmVzbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGdCQUFnQixzQ0FBc0Msa0JBQWtCO0FBQ25GLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzSEFBc0gscUJBQU0sbUJBQW1CLHFCQUFNOztBQUVySix3QkFBd0I7QUFDeEI7QUFDQSxpQkFBaUIsa0JBQWtCO0FBQ25DLGlCQUFpQixlQUFlO0FBQ2hDLGdCQUFnQixrQkFBa0I7QUFDbEMsaUJBQWlCO0FBQ2pCO0FBQ0EsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixtQkFBbUI7QUFDbkI7QUFDQSx5QkFBeUIsK0NBQStDLHFDQUFxQztBQUM3RyxFQUFFLHFCQUFxQjtBQUN2QixzQkFBc0IsOEdBQThHO0FBQ3BJLG9CQUFvQixrREFBa0QscUJBQXFCLG1CQUFtQiw0QkFBNEI7QUFDMUk7QUFDQSxtQkFBbUIsaUJBQWlCLDJCQUEyQixtQkFBbUIscUJBQXFCO0FBQ3ZHLGVBQWUsaUJBQWlCO0FBQ2hDO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QixXQUFXLGNBQWM7QUFDekI7QUFDQSxxREFBcUQscURBQXFELG9CQUFvQjtBQUM5SCwwRUFBMEUsZ0JBQWdCLGNBQWM7QUFDeEc7QUFDQSxrQkFBa0IsWUFBWSxzREFBc0QseUNBQXlDLHVCQUF1QiwyRUFBMkUsT0FBTztBQUN0TztBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLCtFQUErRSxPQUFPO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLGlCQUFpQixrQkFBa0I7QUFDbkMsa0NBQWtDLE9BQU87QUFDekM7QUFDQTtBQUNBLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsZ0RBQWdELG1CQUFtQixpQkFBaUI7QUFDcEYsbUJBQW1CO0FBQ25CLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QixpQkFBaUI7QUFDakI7QUFDQSxvQkFBb0IsVUFBVSxnQkFBZ0Isc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QjtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0EsZ0JBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0Esb0NBQW9DLFdBQVc7QUFDL0MseUJBQXlCLFFBQVEsWUFBWTtBQUM3QywwQ0FBMEM7QUFDMUMsdUNBQXVDLFFBQVEsWUFBWTtBQUMzRCx3Q0FBd0M7QUFDeEMsa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RSxlQUFlLHdDQUF3QyxlQUFlLG1CQUFtQixXQUFXLEdBQUc7QUFDdkc7QUFDQTtBQUNBLGNBQWMsV0FBVztBQUN6QixtQkFBbUIsZUFBZSwwQkFBMEI7QUFDNUQsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLDhCQUE4QixrQkFBa0IsZ0JBQWdCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsbUJBQW1CLG1CQUFtQixjQUFjLGVBQWUsb0JBQW9CLGFBQWEsaUJBQWlCO0FBQ2xKLGlCQUFpQixVQUFVLG1CQUFtQixnQkFBZ0IsY0FBYztBQUM1RSxpQkFBaUIsY0FBYyxhQUFhO0FBQzVDLDhDQUE4QyxzQkFBc0IsZUFBZSxxQ0FBcUMsd0JBQXdCLGlHQUFpRztBQUNqUCxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdCQUFnQixjQUFjO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBLDZCQUE2QjtBQUM3Qiw4QkFBOEI7QUFDOUIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBLEVBQUUsV0FBVztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9DQUFvQyx1Q0FBdUMsaUJBQWlCLGtDQUFrQztBQUM5SSxpQkFBaUI7QUFDakIsNkJBQTZCO0FBQzdCLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0E7QUFDQSxFQUFFLFdBQVc7QUFDYiw2QkFBNkI7QUFDN0Isb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixvQkFBb0IsdUNBQXVDLGNBQWM7QUFDekUsb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsY0FBYztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGLGlCQUFpQixXQUFXO0FBQzVCO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWMsaUNBQWlDLDBCQUEwQixHQUFHO0FBQzVFLGVBQWUsY0FBYyx1QkFBdUIsZUFBZTtBQUNuRTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0MsZ0RBQWdEO0FBQ2hELGlDQUFpQyxtQkFBbUI7QUFDcEQsaUJBQWlCLEdBQUc7QUFDcEIsbUJBQW1CLFlBQVkscUJBQXFCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxRQUFRO0FBQ1YsK0JBQStCLFFBQVE7QUFDdkM7QUFDQTtBQUNBLE1BQU0sYUFBYSwwQkFBMEIsMEJBQTBCO0FBQ3ZFLGdCQUFnQixjQUFjO0FBQzlCLGtEQUFrRDtBQUNsRCxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQSxvQ0FBb0MsY0FBYztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRiwrQkFBK0I7QUFDL0IsK0JBQStCO0FBQy9CLDBCQUEwQixzQkFBc0I7QUFDaEQsZUFBZSxnQkFBZ0Isd0JBQXdCLGNBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsT0FBTyxvRkFBb0Y7QUFDckk7QUFDQSxDQUFDLGtCQUFrQixnQkFBZ0IsaUJBQWlCLFlBQVk7QUFDaEUscUNBQXFDLGtCQUFrQixhQUFhLHVDQUF1QztBQUMzRyxnQkFBZ0Isc0JBQXNCLHNFQUFzRTtBQUM1RyxnQkFBZ0I7QUFDaEIscUNBQXFDLFlBQVksWUFBWTtBQUM3RCxtQ0FBbUM7QUFDbkMsaUJBQWlCLDJCQUEyQixVQUFVO0FBQ3RELG9CQUFvQixZQUFZLHVCQUF1QjtBQUN2RDtBQUNBLGdCQUFnQixtQ0FBbUMsbUJBQW1CO0FBQ3RFO0FBQ0EsZ0JBQWdCLFlBQVksU0FBUztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Ysb0JBQW9CLGNBQWMsaUJBQWlCLGlCQUFpQiwyQkFBMkI7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEMsaUJBQWlCLFdBQVc7QUFDNUIsb0JBQW9CLG1CQUFtQixVQUFVO0FBQ2pELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QyxpQkFBaUIsdUJBQXVCLFlBQVksMkJBQTJCLFFBQVEsYUFBYSxZQUFZO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msb0JBQW9CO0FBQ3hELG1DQUFtQywrQkFBK0I7QUFDbEU7QUFDQSxDQUFDO0FBQ0QsZ0JBQWdCLGNBQWMsWUFBWTtBQUMxQztBQUNBO0FBQ0EsMEJBQTBCLDJEQUEyRCxnQkFBZ0IsY0FBYztBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDBCQUEwQixvQ0FBb0MsTUFBTTtBQUNyRiw4QkFBOEIsa0JBQWtCO0FBQ2hELHdDQUF3QztBQUN4QyxnQkFBZ0I7QUFDaEIsZ0NBQWdDLHFCQUFxQjtBQUNyRDtBQUNBO0FBQ0EsMENBQTBDLGNBQWM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxtRkFBbUY7QUFDOUYsbUNBQW1DLHFCQUFxQiwrRkFBK0Y7QUFDdkoseUJBQXlCLHFCQUFxQixzRUFBc0U7QUFDcEgsb0JBQW9CLHFCQUFxQix5QkFBeUI7QUFDbEU7QUFDQSxvQkFBb0I7QUFDcEIsY0FBYztBQUNkLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsY0FBYztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixpQkFBaUI7QUFDakI7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QixpQkFBaUI7QUFDakI7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QixpQkFBaUI7QUFDakI7QUFDQSxtQkFBbUI7QUFDbkIsK0RBQStELGtDQUFrQyxNQUFNO0FBQ3ZHLFdBQVc7QUFDWCxXQUFXO0FBQ1g7QUFDQTtBQUNBLGlCQUFpQixPQUFPLDBCQUEwQixHQUFHO0FBQ3JEO0FBQ0EsVUFBVTtBQUNWLGdCQUFnQjtBQUNoQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLFlBQVksWUFBWSxZQUFZLGlCQUFpQixzQkFBc0IsYUFBYSx1QkFBdUIsb0JBQW9CLGVBQWUsYUFBYSxxRUFBcUUsYUFBYSxlQUFlLFlBQVksd0JBQXdCLGFBQWEsYUFBYSxZQUFZLGVBQWU7QUFDbFgsc0JBQXNCO0FBQ3RCO0FBQ0EsOEJBQThCO0FBQzlCLHVCQUF1QixTQUFTLGdCQUFnQixTQUFTLFVBQVU7QUFDbkUsb0JBQW9CLFdBQVcsTUFBTSxjQUFjLHNCQUFzQix1Q0FBdUMsaUJBQWlCLFNBQVMsaUNBQWlDLGlEQUFpRCx3Q0FBd0Msd0JBQXdCLDZKQUE2SixNQUFNO0FBQy9iLHNCQUFzQixjQUFjLGdCQUFnQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixpQkFBaUIsdUJBQXVCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscURBQXFELGdCQUFnQjtBQUN2RSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFDQUFxQztBQUN6RCxlQUFlLCtCQUErQjtBQUM5QyxlQUFlLFFBQVE7QUFDdkIsZUFBZSxvQkFBb0IsYUFBYTtBQUNoRCx5QkFBeUIsYUFBYTtBQUN0QyxnQkFBZ0IsaUJBQWlCO0FBQ2pDLG9CQUFvQjtBQUNwQiw0Q0FBNEM7QUFDNUMsaUJBQWlCO0FBQ2pCLHFCQUFxQixlQUFlLGFBQWE7QUFDakQsaUJBQWlCO0FBQ2pCLGdCQUFnQixPQUFPLGFBQWEsMENBQTBDLFlBQVksU0FBUyxTQUFTO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxjQUFjO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixrQkFBa0I7QUFDbEIsd0JBQXdCO0FBQ3hCLDBDQUEwQyxPQUFPO0FBQ2pEO0FBQ0E7QUFDQSxFQUFFLFFBQVEsT0FBTztBQUNqQixtQkFBbUI7QUFDbkIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLE9BQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0EsbUJBQW1CLGFBQWEsYUFBYSxZQUFZLDBCQUEwQjtBQUNuRjtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsY0FBYztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFVBQVUsd0JBQXdCLG1CQUFtQjtBQUN6RSwrQkFBK0I7QUFDL0Isb0JBQW9CLFVBQVU7QUFDOUIsaUJBQWlCO0FBQ2pCLDJCQUEyQixlQUFlO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUIsMEJBQTBCLDRDQUE0QztBQUN0RSw4QkFBOEIsOEJBQThCLGNBQWM7QUFDMUU7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsK0JBQStCLGVBQWUsc0JBQXNCLGFBQWE7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLHdCQUF3QixpQ0FBaUMsZ0JBQWdCO0FBQzlHLDRIQUE0SCxFQUFFLCtEQUErRDtBQUM3TCxrR0FBa0csMkNBQTJDLHdDQUF3QztBQUNyTCxnQkFBZ0I7QUFDaEIsdUJBQXVCLHlCQUF5QjtBQUNoRCx1QkFBdUI7QUFDdkIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLHNCQUFzQjtBQUN0QixpQkFBaUIsdUlBQXVJO0FBQ3hKLGlCQUFpQjtBQUNqQiwwQkFBMEIsNkJBQTZCLGVBQWUsZUFBZSxlQUFlLGdCQUFnQjtBQUNwSCxvQkFBb0I7QUFDcEIsdUJBQXVCLHNHQUFzRyxFQUFFO0FBQy9ILGlCQUFpQixxQkFBcUI7QUFDdEM7QUFDQSxtQkFBbUIsd0JBQXdCLG9CQUFvQjtBQUMvRCxnQkFBZ0IsK0RBQStELHNEQUFzRDtBQUNySTtBQUNBLDBCQUEwQixTQUFTLGVBQWUsZ0JBQWdCLHVCQUF1Qiw0QkFBNEIsV0FBVyxhQUFhO0FBQzdJLG9CQUFvQixNQUFNLGFBQWE7QUFDdkMsb0JBQW9CLE1BQU0sYUFBYTtBQUN2Qyw4QkFBOEIsU0FBUyxpQ0FBaUMscUJBQXFCLHdCQUF3QixVQUFVO0FBQy9ILG9CQUFvQixTQUFTLHdEQUF3RCxjQUFjO0FBQ25HLDhCQUE4QixjQUFjO0FBQzVDLHNCQUFzQjtBQUN0QixxQkFBcUIsU0FBUyxZQUFZO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixjQUFjO0FBQ2xDO0FBQ0EsRUFBRTtBQUNGLDBCQUEwQixTQUFTLGVBQWUsZ0JBQWdCLGlEQUFpRCxvQkFBb0IsYUFBYTtBQUNwSiwwQkFBMEI7QUFDMUIsY0FBYyxlQUFlO0FBQzdCLHVCQUF1QixVQUFVO0FBQ2pDLDJCQUEyQjtBQUMzQixtQkFBbUI7QUFDbkIsZUFBZSx3Q0FBd0MsY0FBYztBQUNyRTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsbUJBQW1CLGVBQWUsOEJBQThCO0FBQ2hFLG9CQUFvQiw4REFBOEQseUJBQXlCLDBDQUEwQyxPQUFPO0FBQzVKLG9CQUFvQixZQUFZO0FBQ2hDLGlCQUFpQixrQkFBa0IsK05BQStOLHlCQUF5QixlQUFlLGtDQUFrQyxlQUFlO0FBQzNWO0FBQ0EsaUJBQWlCO0FBQ2pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRSxVQUFVO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRSxVQUFVO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFFBQVE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDLG9DQUFvQztBQUNwQyxnQkFBZ0I7QUFDaEIsdUJBQXVCLGlCQUFpQjtBQUN4Qyw0QkFBNEIsV0FBVyxxQkFBcUIsOENBQThDO0FBQzFHO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjLHNCQUFzQixvQkFBb0IsYUFBYSx3QkFBd0IsYUFBYSxZQUFZLGFBQWEsd0NBQXdDLFlBQVksZUFBZSxhQUFhO0FBQ25PO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLGNBQWM7QUFDL0M7QUFDQTtBQUNBO0FBQ0EseUZBQXlGO0FBQ3pGLGdDQUFnQyxnQ0FBZ0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsb0JBQW9CLFVBQVUsMENBQTBDLFNBQVMsU0FBUyxPQUFPO0FBQ2pHLGlCQUFpQjtBQUNqQix5QkFBeUI7QUFDekIsb0JBQW9CLDZGQUE2RjtBQUNqSCxxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsc0NBQXNDO0FBQ3ZELGdCQUFnQjtBQUNoQixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUIsWUFBWSx3QkFBd0IsUUFBUSxVQUFVLFFBQVEsY0FBYyxHQUFHO0FBQ2hHLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE9BQU87QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsaUJBQWlCLE9BQU8sMENBQTBDLE9BQU8sY0FBYztBQUN2RixvQkFBb0IsNkJBQTZCO0FBQ2pELGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsZUFBZTtBQUNmLHNDQUFzQztBQUN0QyxlQUFlLG9DQUFvQyxPQUFPO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxtQkFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTyx5QkFBeUIsZ0JBQWdCLGtCQUFrQixnQkFBZ0Isa0JBQWtCLFVBQVUsK0JBQStCLCtCQUErQiw2QkFBNkIsOEJBQThCLG1CQUFtQiw2RUFBNkUsWUFBWTtBQUN2VyxvQkFBb0IsWUFBWSxvQkFBb0IsYUFBYTtBQUNqRSx1QkFBdUIsNkJBQTZCLHdDQUF3Qyw2QkFBNkI7QUFDekg7QUFDQTtBQUNBLDRCQUE0QixPQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxzQkFBc0IsU0FBUztBQUNqQyxpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCLGVBQWUsT0FBTyxpQ0FBaUMsT0FBTztBQUM5RCxxQkFBcUIsZUFBZSxVQUFVO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQixpQkFBaUIsaUNBQWlDLCtCQUErQixXQUFXLGlCQUFpQixvQkFBb0Isa0JBQWtCLDZCQUE2QixrQkFBa0IsVUFBVSx5QkFBeUIsK0JBQStCLDRCQUE0QixhQUFhLFVBQVUsU0FBUyxnQkFBZ0IsWUFBWSxVQUFVO0FBQ3RXLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaURBQWlELGlCQUFpQjtBQUN0RixtQkFBbUIsNkJBQTZCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxTQUFTLGtCQUFrQixPQUFPO0FBQzVDLHNCQUFzQjtBQUN0QixpQkFBaUIsU0FBUyxVQUFVO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGVBQWU7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLGlDQUFpQyxhQUFhLEdBQUcsU0FBUyxVQUFVLHNCQUFzQixtQkFBbUIsVUFBVTtBQUN6SCxvQkFBb0I7QUFDcEIsd0VBQXdFLGlCQUFpQixXQUFXO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhGQUE4RixtQ0FBbUM7QUFDakk7QUFDQTtBQUNBLG9HQUFvRyxtREFBbUQ7QUFDdkosb0VBQW9FLG9DQUFvQztBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QyxnREFBZ0Q7QUFDaEQscUJBQXFCLG1CQUFtQiwyQkFBMkIsa0RBQWtELE1BQU0sVUFBVSxlQUFlLFdBQVcseUJBQXlCO0FBQ3hMLHdCQUF3QjtBQUN4QixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixvQkFBb0IsaUJBQWlCLGVBQWUsWUFBWSxlQUFlO0FBQy9FLGlCQUFpQixlQUFlLGtCQUFrQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZUFBZTtBQUMvQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBLCtCQUErQjtBQUMvQixnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLCtCQUErQiw4QkFBOEI7O0FBRTdEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlFQUFlLEdBQUcsRUFBQztBQUMyRDtBQUM5RSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGZpcmViYXNlL3dlYmNoYW5uZWwtd3JhcHBlci9kaXN0L2luZGV4LmVzbS5qcz9jN2IyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cblxudmFyIGNvbW1vbmpzR2xvYmFsID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsVGhpcyA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDoge307XG5cbnZhciBnLCBnb29nID0gZ29vZyB8fCB7fSwgayA9IGNvbW1vbmpzR2xvYmFsIHx8IHNlbGY7XHJcbmZ1bmN0aW9uIGFhKCkgeyB9XHJcbmZ1bmN0aW9uIGJhKGEpIHsgdmFyIGIgPSB0eXBlb2YgYTsgcmV0dXJuIFwib2JqZWN0XCIgIT0gYiA/IGIgOiBhID8gQXJyYXkuaXNBcnJheShhKSA/IFwiYXJyYXlcIiA6IGIgOiBcIm51bGxcIjsgfVxyXG5mdW5jdGlvbiBjYShhKSB7IHZhciBiID0gYmEoYSk7IHJldHVybiBcImFycmF5XCIgPT0gYiB8fCBcIm9iamVjdFwiID09IGIgJiYgXCJudW1iZXJcIiA9PSB0eXBlb2YgYS5sZW5ndGg7IH1cclxuZnVuY3Rpb24gbihhKSB7IHZhciBiID0gdHlwZW9mIGE7IHJldHVybiBcIm9iamVjdFwiID09IGIgJiYgbnVsbCAhPSBhIHx8IFwiZnVuY3Rpb25cIiA9PSBiOyB9XHJcbmZ1bmN0aW9uIGRhKGEpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCBlYSkgJiYgYVtlYV0gfHwgKGFbZWFdID0gKytmYSk7IH1cclxudmFyIGVhID0gXCJjbG9zdXJlX3VpZF9cIiArICgxRTkgKiBNYXRoLnJhbmRvbSgpID4+PiAwKSwgZmEgPSAwO1xyXG5mdW5jdGlvbiBoYShhLCBiLCBjKSB7IHJldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLCBhcmd1bWVudHMpOyB9XHJcbmZ1bmN0aW9uIGphKGEsIGIsIGMpIHsgaWYgKCFhKVxyXG4gICAgdGhyb3cgRXJyb3IoKTsgaWYgKDIgPCBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICB2YXIgZCA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyB2YXIgZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7IEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsIGQpOyByZXR1cm4gYS5hcHBseShiLCBlKTsgfTtcclxufSByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gYS5hcHBseShiLCBhcmd1bWVudHMpOyB9OyB9XHJcbmZ1bmN0aW9uIHAoYSwgYiwgYykgeyBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCAmJiAtMSAhPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoXCJuYXRpdmUgY29kZVwiKSA/IHAgPSBoYSA6IHAgPSBqYTsgcmV0dXJuIHAuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsgfVxyXG5mdW5jdGlvbiBrYShhLCBiKSB7IHZhciBjID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsgcmV0dXJuIGZ1bmN0aW9uICgpIHsgdmFyIGQgPSBjLnNsaWNlKCk7IGQucHVzaC5hcHBseShkLCBhcmd1bWVudHMpOyByZXR1cm4gYS5hcHBseSh0aGlzLCBkKTsgfTsgfVxyXG52YXIgcSA9IERhdGUubm93O1xyXG5mdW5jdGlvbiByKGEsIGIpIHsgZnVuY3Rpb24gYygpIHsgfSBjLnByb3RvdHlwZSA9IGIucHJvdG90eXBlOyBhLlMgPSBiLnByb3RvdHlwZTsgYS5wcm90b3R5cGUgPSBuZXcgYzsgYS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBhOyB9XHJcbmZ1bmN0aW9uIHUoKSB7IHRoaXMuaiA9IHRoaXMuajsgdGhpcy5pID0gdGhpcy5pOyB9XHJcbnZhciBsYSA9IDA7XHJcbnUucHJvdG90eXBlLmogPSAhMTtcclxudS5wcm90b3R5cGUuamEgPSBmdW5jdGlvbiAoKSB7IGlmICghdGhpcy5qICYmICh0aGlzLmogPSAhMCwgdGhpcy5HKCksIDAgIT0gbGEpKSB7XHJcbiAgICB2YXIgYSA9IGRhKHRoaXMpO1xyXG59IH07XHJcbnUucHJvdG90eXBlLkcgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmkpXHJcbiAgICBmb3IgKDsgdGhpcy5pLmxlbmd0aDspXHJcbiAgICAgICAgdGhpcy5pLnNoaWZ0KCkoKTsgfTtcclxudmFyIG5hID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPyBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLCBiLCB2b2lkIDApOyB9IDogZnVuY3Rpb24gKGEsIGIpIHsgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBhKVxyXG4gICAgcmV0dXJuIFwic3RyaW5nXCIgIT09IHR5cGVvZiBiIHx8IDEgIT0gYi5sZW5ndGggPyAtMSA6IGEuaW5kZXhPZihiLCAwKTsgZm9yICh2YXIgYyA9IDA7IGMgPCBhLmxlbmd0aDsgYysrKVxyXG4gICAgaWYgKGMgaW4gYSAmJiBhW2NdID09PSBiKVxyXG4gICAgICAgIHJldHVybiBjOyByZXR1cm4gLTE7IH0sIG9hID0gQXJyYXkucHJvdG90eXBlLmZvckVhY2ggPyBmdW5jdGlvbiAoYSwgYiwgYykgeyBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsIGIsIGMpOyB9IDogZnVuY3Rpb24gKGEsIGIsIGMpIHsgZm9yICh2YXIgZCA9IGEubGVuZ3RoLCBlID0gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEgPyBhLnNwbGl0KFwiXCIpIDogYSwgZiA9IDA7IGYgPCBkOyBmKyspXHJcbiAgICBmIGluIGUgJiYgYi5jYWxsKGMsIGVbZl0sIGYsIGEpOyB9O1xyXG5mdW5jdGlvbiBwYShhKSB7IGE6IHtcclxuICAgIHZhciBiID0gcWE7XHJcbiAgICBmb3IgKHZhciBjID0gYS5sZW5ndGgsIGQgPSBcInN0cmluZ1wiID09PSB0eXBlb2YgYSA/IGEuc3BsaXQoXCJcIikgOiBhLCBlID0gMDsgZSA8IGM7IGUrKylcclxuICAgICAgICBpZiAoZSBpbiBkICYmIGIuY2FsbCh2b2lkIDAsIGRbZV0sIGUsIGEpKSB7XHJcbiAgICAgICAgICAgIGIgPSBlO1xyXG4gICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgIH1cclxuICAgIGIgPSAtMTtcclxufSByZXR1cm4gMCA+IGIgPyBudWxsIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEgPyBhLmNoYXJBdChiKSA6IGFbYl07IH1cclxuZnVuY3Rpb24gcmEoYSkgeyByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgYXJndW1lbnRzKTsgfVxyXG5mdW5jdGlvbiBzYShhKSB7IHZhciBiID0gYS5sZW5ndGg7IGlmICgwIDwgYikge1xyXG4gICAgZm9yICh2YXIgYyA9IEFycmF5KGIpLCBkID0gMDsgZCA8IGI7IGQrKylcclxuICAgICAgICBjW2RdID0gYVtkXTtcclxuICAgIHJldHVybiBjO1xyXG59IHJldHVybiBbXTsgfVxyXG5mdW5jdGlvbiB0YShhKSB7IHJldHVybiAvXltcXHNcXHhhMF0qJC8udGVzdChhKTsgfVxyXG52YXIgdWEgPSBTdHJpbmcucHJvdG90eXBlLnRyaW0gPyBmdW5jdGlvbiAoYSkgeyByZXR1cm4gYS50cmltKCk7IH0gOiBmdW5jdGlvbiAoYSkgeyByZXR1cm4gL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhhKVsxXTsgfTtcclxuZnVuY3Rpb24gdihhLCBiKSB7IHJldHVybiAtMSAhPSBhLmluZGV4T2YoYik7IH1cclxuZnVuY3Rpb24geGEoYSwgYikgeyByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDA7IH1cclxudmFyIHc7XHJcbmE6IHtcclxuICAgIHZhciB5YSA9IGsubmF2aWdhdG9yO1xyXG4gICAgaWYgKHlhKSB7XHJcbiAgICAgICAgdmFyIHphID0geWEudXNlckFnZW50O1xyXG4gICAgICAgIGlmICh6YSkge1xyXG4gICAgICAgICAgICB3ID0gemE7XHJcbiAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdyA9IFwiXCI7XHJcbn1cclxuZnVuY3Rpb24gQWEoYSwgYiwgYykgeyBmb3IgKHZhciBkIGluIGEpXHJcbiAgICBiLmNhbGwoYywgYVtkXSwgZCwgYSk7IH1cclxuZnVuY3Rpb24gQmEoYSkgeyB2YXIgYiA9IHt9OyBmb3IgKHZhciBjIGluIGEpXHJcbiAgICBiW2NdID0gYVtjXTsgcmV0dXJuIGI7IH1cclxudmFyIENhID0gXCJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2ZcIi5zcGxpdChcIiBcIik7XHJcbmZ1bmN0aW9uIERhKGEsIGIpIHsgdmFyIGMsIGQ7IGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XHJcbiAgICBkID0gYXJndW1lbnRzW2VdO1xyXG4gICAgZm9yIChjIGluIGQpXHJcbiAgICAgICAgYVtjXSA9IGRbY107XHJcbiAgICBmb3IgKHZhciBmID0gMDsgZiA8IENhLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIGMgPSBDYVtmXSwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsIGMpICYmIChhW2NdID0gZFtjXSk7XHJcbn0gfVxyXG5mdW5jdGlvbiBFYShhKSB7IEVhW1wiIFwiXShhKTsgcmV0dXJuIGE7IH1cclxuRWFbXCIgXCJdID0gYWE7XHJcbmZ1bmN0aW9uIEZhKGEsIGIpIHsgdmFyIGMgPSBHYTsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLCBhKSA/IGNbYV0gOiBjW2FdID0gYihhKTsgfVxyXG52YXIgSGEgPSB2KHcsIFwiT3BlcmFcIiksIHggPSB2KHcsIFwiVHJpZGVudFwiKSB8fCB2KHcsIFwiTVNJRVwiKSwgSWEgPSB2KHcsIFwiRWRnZVwiKSwgSmEgPSBJYSB8fCB4LCBLYSA9IHYodywgXCJHZWNrb1wiKSAmJiAhKHYody50b0xvd2VyQ2FzZSgpLCBcIndlYmtpdFwiKSAmJiAhdih3LCBcIkVkZ2VcIikpICYmICEodih3LCBcIlRyaWRlbnRcIikgfHwgdih3LCBcIk1TSUVcIikpICYmICF2KHcsIFwiRWRnZVwiKSwgTGEgPSB2KHcudG9Mb3dlckNhc2UoKSwgXCJ3ZWJraXRcIikgJiYgIXYodywgXCJFZGdlXCIpO1xyXG5mdW5jdGlvbiBNYSgpIHsgdmFyIGEgPSBrLmRvY3VtZW50OyByZXR1cm4gYSA/IGEuZG9jdW1lbnRNb2RlIDogdm9pZCAwOyB9XHJcbnZhciBOYTtcclxuYToge1xyXG4gICAgdmFyIE9hID0gXCJcIiwgUGEgPSBmdW5jdGlvbiAoKSB7IHZhciBhID0gdzsgaWYgKEthKVxyXG4gICAgICAgIHJldHVybiAvcnY6KFteXFwpO10rKShcXCl8OykvLmV4ZWMoYSk7IGlmIChJYSlcclxuICAgICAgICByZXR1cm4gL0VkZ2VcXC8oW1xcZFxcLl0rKS8uZXhlYyhhKTsgaWYgKHgpXHJcbiAgICAgICAgcmV0dXJuIC9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTsgaWYgKExhKVxyXG4gICAgICAgIHJldHVybiAvV2ViS2l0XFwvKFxcUyspLy5leGVjKGEpOyBpZiAoSGEpXHJcbiAgICAgICAgcmV0dXJuIC8oPzpWZXJzaW9uKVsgXFwvXT8oXFxTKykvLmV4ZWMoYSk7IH0oKTtcclxuICAgIFBhICYmIChPYSA9IFBhID8gUGFbMV0gOiBcIlwiKTtcclxuICAgIGlmICh4KSB7XHJcbiAgICAgICAgdmFyIFFhID0gTWEoKTtcclxuICAgICAgICBpZiAobnVsbCAhPSBRYSAmJiBRYSA+IHBhcnNlRmxvYXQoT2EpKSB7XHJcbiAgICAgICAgICAgIE5hID0gU3RyaW5nKFFhKTtcclxuICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBOYSA9IE9hO1xyXG59XHJcbnZhciBHYSA9IHt9O1xyXG5mdW5jdGlvbiBSYShhKSB7IHJldHVybiBGYShhLCBmdW5jdGlvbiAoKSB7IHtcclxuICAgIHZhciBiID0gMDtcclxuICAgIHZhciBlID0gdWEoU3RyaW5nKE5hKSkuc3BsaXQoXCIuXCIpLCBmID0gdWEoU3RyaW5nKGEpKS5zcGxpdChcIi5cIiksIGggPSBNYXRoLm1heChlLmxlbmd0aCwgZi5sZW5ndGgpO1xyXG4gICAgZm9yICh2YXIgbSA9IDA7IDAgPT0gYiAmJiBtIDwgaDsgbSsrKSB7XHJcbiAgICAgICAgdmFyIGMgPSBlW21dIHx8IFwiXCIsIGQgPSBmW21dIHx8IFwiXCI7XHJcbiAgICAgICAgZG8ge1xyXG4gICAgICAgICAgICBjID0gLyhcXGQqKShcXEQqKSguKikvLmV4ZWMoYykgfHwgW1wiXCIsIFwiXCIsIFwiXCIsIFwiXCJdO1xyXG4gICAgICAgICAgICBkID0gLyhcXGQqKShcXEQqKSguKikvLmV4ZWMoZCkgfHwgW1wiXCIsIFwiXCIsIFwiXCIsIFwiXCJdO1xyXG4gICAgICAgICAgICBpZiAoMCA9PSBjWzBdLmxlbmd0aCAmJiAwID09IGRbMF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGIgPSB4YSgwID09IGNbMV0ubGVuZ3RoID8gMCA6IHBhcnNlSW50KGNbMV0sIDEwKSwgMCA9PSBkWzFdLmxlbmd0aCA/IDAgOiBwYXJzZUludChkWzFdLCAxMCkpIHx8IHhhKDAgPT0gY1syXS5sZW5ndGgsIDAgPT0gZFsyXS5sZW5ndGgpIHx8IHhhKGNbMl0sIGRbMl0pO1xyXG4gICAgICAgICAgICBjID0gY1szXTtcclxuICAgICAgICAgICAgZCA9IGRbM107XHJcbiAgICAgICAgfSB3aGlsZSAoMCA9PSBiKTtcclxuICAgIH1cclxufSByZXR1cm4gMCA8PSBiOyB9KTsgfVxyXG52YXIgU2E7XHJcbmlmIChrLmRvY3VtZW50ICYmIHgpIHtcclxuICAgIHZhciBUYSA9IE1hKCk7XHJcbiAgICBTYSA9IFRhID8gVGEgOiBwYXJzZUludChOYSwgMTApIHx8IHZvaWQgMDtcclxufVxyXG5lbHNlXHJcbiAgICBTYSA9IHZvaWQgMDtcclxudmFyIFVhID0gU2E7XHJcbnZhciBWYSA9ICF4IHx8IDkgPD0gTnVtYmVyKFVhKSwgV2EgPSB4ICYmICFSYShcIjlcIiksIFhhID0gZnVuY3Rpb24gKCkgeyBpZiAoIWsuYWRkRXZlbnRMaXN0ZW5lciB8fCAhT2JqZWN0LmRlZmluZVByb3BlcnR5KVxyXG4gICAgcmV0dXJuICExOyB2YXIgYSA9ICExLCBiID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCBcInBhc3NpdmVcIiwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgYSA9ICEwOyB9IH0pOyB0cnkge1xyXG4gICAgay5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLCBhYSwgYiksIGsucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIiwgYWEsIGIpO1xyXG59XHJcbmNhdGNoIChjKSB7IH0gcmV0dXJuIGE7IH0oKTtcclxuZnVuY3Rpb24geShhLCBiKSB7IHRoaXMudHlwZSA9IGE7IHRoaXMuYSA9IHRoaXMudGFyZ2V0ID0gYjsgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITE7IH1cclxueS5wcm90b3R5cGUuYiA9IGZ1bmN0aW9uICgpIHsgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITA7IH07XHJcbmZ1bmN0aW9uIEEoYSwgYikge1xyXG4gICAgeS5jYWxsKHRoaXMsIGEgPyBhLnR5cGUgOiBcIlwiKTtcclxuICAgIHRoaXMucmVsYXRlZFRhcmdldCA9IHRoaXMuYSA9IHRoaXMudGFyZ2V0ID0gbnVsbDtcclxuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5zY3JlZW5ZID0gdGhpcy5zY3JlZW5YID0gdGhpcy5jbGllbnRZID0gdGhpcy5jbGllbnRYID0gMDtcclxuICAgIHRoaXMua2V5ID0gXCJcIjtcclxuICAgIHRoaXMubWV0YUtleSA9IHRoaXMuc2hpZnRLZXkgPSB0aGlzLmFsdEtleSA9IHRoaXMuY3RybEtleSA9ICExO1xyXG4gICAgdGhpcy5wb2ludGVySWQgPSAwO1xyXG4gICAgdGhpcy5wb2ludGVyVHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLmMgPSBudWxsO1xyXG4gICAgaWYgKGEpIHtcclxuICAgICAgICB2YXIgYyA9IHRoaXMudHlwZSA9IGEudHlwZSwgZCA9IGEuY2hhbmdlZFRvdWNoZXMgJiYgYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPyBhLmNoYW5nZWRUb3VjaGVzWzBdIDogbnVsbDtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IGEudGFyZ2V0IHx8IGEuc3JjRWxlbWVudDtcclxuICAgICAgICB0aGlzLmEgPSBiO1xyXG4gICAgICAgIGlmIChiID0gYS5yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGlmIChLYSkge1xyXG4gICAgICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVhKGIubm9kZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9ICEwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZikgeyB9XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9ICExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZSB8fCAoYiA9IG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgXCJtb3VzZW92ZXJcIiA9PVxyXG4gICAgICAgICAgICAgICAgYyA/IGIgPSBhLmZyb21FbGVtZW50IDogXCJtb3VzZW91dFwiID09IGMgJiYgKGIgPSBhLnRvRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5yZWxhdGVkVGFyZ2V0ID0gYjtcclxuICAgICAgICBkID8gKHRoaXMuY2xpZW50WCA9IHZvaWQgMCAhPT0gZC5jbGllbnRYID8gZC5jbGllbnRYIDogZC5wYWdlWCwgdGhpcy5jbGllbnRZID0gdm9pZCAwICE9PSBkLmNsaWVudFkgPyBkLmNsaWVudFkgOiBkLnBhZ2VZLCB0aGlzLnNjcmVlblggPSBkLnNjcmVlblggfHwgMCwgdGhpcy5zY3JlZW5ZID0gZC5zY3JlZW5ZIHx8IDApIDogKHRoaXMuY2xpZW50WCA9IHZvaWQgMCAhPT0gYS5jbGllbnRYID8gYS5jbGllbnRYIDogYS5wYWdlWCwgdGhpcy5jbGllbnRZID0gdm9pZCAwICE9PSBhLmNsaWVudFkgPyBhLmNsaWVudFkgOiBhLnBhZ2VZLCB0aGlzLnNjcmVlblggPSBhLnNjcmVlblggfHwgMCwgdGhpcy5zY3JlZW5ZID0gYS5zY3JlZW5ZIHx8IDApO1xyXG4gICAgICAgIHRoaXMuYnV0dG9uID0gYS5idXR0b247XHJcbiAgICAgICAgdGhpcy5rZXkgPSBhLmtleSB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3RybEtleSA9IGEuY3RybEtleTtcclxuICAgICAgICB0aGlzLmFsdEtleSA9IGEuYWx0S2V5O1xyXG4gICAgICAgIHRoaXMuc2hpZnRLZXkgPSBhLnNoaWZ0S2V5O1xyXG4gICAgICAgIHRoaXMubWV0YUtleSA9XHJcbiAgICAgICAgICAgIGEubWV0YUtleTtcclxuICAgICAgICB0aGlzLnBvaW50ZXJJZCA9IGEucG9pbnRlcklkIHx8IDA7XHJcbiAgICAgICAgdGhpcy5wb2ludGVyVHlwZSA9IFwic3RyaW5nXCIgPT09IHR5cGVvZiBhLnBvaW50ZXJUeXBlID8gYS5wb2ludGVyVHlwZSA6IFlhW2EucG9pbnRlclR5cGVdIHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5jID0gYTtcclxuICAgICAgICBhLmRlZmF1bHRQcmV2ZW50ZWQgJiYgdGhpcy5iKCk7XHJcbiAgICB9XHJcbn1cclxucihBLCB5KTtcclxudmFyIFlhID0geyAyOiBcInRvdWNoXCIsIDM6IFwicGVuXCIsIDQ6IFwibW91c2VcIiB9O1xyXG5BLnByb3RvdHlwZS5iID0gZnVuY3Rpb24gKCkgeyBBLlMuYi5jYWxsKHRoaXMpOyB2YXIgYSA9IHRoaXMuYzsgaWYgKGEucHJldmVudERlZmF1bHQpXHJcbiAgICBhLnByZXZlbnREZWZhdWx0KCk7XHJcbmVsc2UgaWYgKGEucmV0dXJuVmFsdWUgPSAhMSwgV2EpXHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChhLmN0cmxLZXkgfHwgMTEyIDw9IGEua2V5Q29kZSAmJiAxMjMgPj0gYS5rZXlDb2RlKVxyXG4gICAgICAgICAgICBhLmtleUNvZGUgPSAtMTtcclxuICAgIH1cclxuICAgIGNhdGNoIChiKSB7IH0gfTtcclxudmFyIEMgPSBcImNsb3N1cmVfbGlzdGVuYWJsZV9cIiArICgxRTYgKiBNYXRoLnJhbmRvbSgpIHwgMCksIFphID0gMDtcclxuZnVuY3Rpb24gJGEoYSwgYiwgYywgZCwgZSkgeyB0aGlzLmxpc3RlbmVyID0gYTsgdGhpcy5wcm94eSA9IG51bGw7IHRoaXMuc3JjID0gYjsgdGhpcy50eXBlID0gYzsgdGhpcy5jYXB0dXJlID0gISFkOyB0aGlzLmNhID0gZTsgdGhpcy5rZXkgPSArK1phOyB0aGlzLlkgPSB0aGlzLlogPSAhMTsgfVxyXG5mdW5jdGlvbiBhYihhKSB7IGEuWSA9ICEwOyBhLmxpc3RlbmVyID0gbnVsbDsgYS5wcm94eSA9IG51bGw7IGEuc3JjID0gbnVsbDsgYS5jYSA9IG51bGw7IH1cclxuZnVuY3Rpb24gYmIoYSkgeyB0aGlzLnNyYyA9IGE7IHRoaXMuYSA9IHt9OyB0aGlzLmIgPSAwOyB9XHJcbmJiLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCwgZSkgeyB2YXIgZiA9IGEudG9TdHJpbmcoKTsgYSA9IHRoaXMuYVtmXTsgYSB8fCAoYSA9IHRoaXMuYVtmXSA9IFtdLCB0aGlzLmIrKyk7IHZhciBoID0gY2IoYSwgYiwgZCwgZSk7IC0xIDwgaCA/IChiID0gYVtoXSwgYyB8fCAoYi5aID0gITEpKSA6IChiID0gbmV3ICRhKGIsIHRoaXMuc3JjLCBmLCAhIWQsIGUpLCBiLlogPSBjLCBhLnB1c2goYikpOyByZXR1cm4gYjsgfTtcclxuZnVuY3Rpb24gZGIoYSwgYikgeyB2YXIgYyA9IGIudHlwZTsgaWYgKGMgaW4gYS5hKSB7XHJcbiAgICB2YXIgZCA9IGEuYVtjXSwgZSA9IG5hKGQsIGIpLCBmO1xyXG4gICAgKGYgPSAwIDw9IGUpICYmIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChkLCBlLCAxKTtcclxuICAgIGYgJiYgKGFiKGIpLCAwID09IGEuYVtjXS5sZW5ndGggJiYgKGRlbGV0ZSBhLmFbY10sIGEuYi0tKSk7XHJcbn0gfVxyXG5mdW5jdGlvbiBjYihhLCBiLCBjLCBkKSB7IGZvciAodmFyIGUgPSAwOyBlIDwgYS5sZW5ndGg7ICsrZSkge1xyXG4gICAgdmFyIGYgPSBhW2VdO1xyXG4gICAgaWYgKCFmLlkgJiYgZi5saXN0ZW5lciA9PSBiICYmIGYuY2FwdHVyZSA9PSAhIWMgJiYgZi5jYSA9PSBkKVxyXG4gICAgICAgIHJldHVybiBlO1xyXG59IHJldHVybiAtMTsgfVxyXG52YXIgZWIgPSBcImNsb3N1cmVfbG1fXCIgKyAoMUU2ICogTWF0aC5yYW5kb20oKSB8IDApLCBmYiA9IHt9O1xyXG5mdW5jdGlvbiBoYihhLCBiLCBjLCBkLCBlKSB7IGlmIChkICYmIGQub25jZSlcclxuICAgIHJldHVybiBpYihhLCBiLCBjLCBkLCBlKTsgaWYgKEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgIGZvciAodmFyIGYgPSAwOyBmIDwgYi5sZW5ndGg7IGYrKylcclxuICAgICAgICBoYihhLCBiW2ZdLCBjLCBkLCBlKTtcclxuICAgIHJldHVybiBudWxsO1xyXG59IGMgPSBqYihjKTsgcmV0dXJuIGEgJiYgYVtDXSA/IGEudmEoYiwgYywgbihkKSA/ICEhZC5jYXB0dXJlIDogISFkLCBlKSA6IGtiKGEsIGIsIGMsICExLCBkLCBlKTsgfVxyXG5mdW5jdGlvbiBrYihhLCBiLCBjLCBkLCBlLCBmKSB7XHJcbiAgICBpZiAoIWIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGV2ZW50IHR5cGVcIik7XHJcbiAgICB2YXIgaCA9IG4oZSkgPyAhIWUuY2FwdHVyZSA6ICEhZTtcclxuICAgIGlmIChoICYmICFWYSlcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIHZhciBtID0gbGIoYSk7XHJcbiAgICBtIHx8IChhW2ViXSA9IG0gPSBuZXcgYmIoYSkpO1xyXG4gICAgYyA9IG0uYWRkKGIsIGMsIGQsIGgsIGYpO1xyXG4gICAgaWYgKGMucHJveHkpXHJcbiAgICAgICAgcmV0dXJuIGM7XHJcbiAgICBkID0gbWIoKTtcclxuICAgIGMucHJveHkgPSBkO1xyXG4gICAgZC5zcmMgPSBhO1xyXG4gICAgZC5saXN0ZW5lciA9IGM7XHJcbiAgICBpZiAoYS5hZGRFdmVudExpc3RlbmVyKVxyXG4gICAgICAgIFhhIHx8IChlID0gaCksIHZvaWQgMCA9PT0gZSAmJiAoZSA9ICExKSwgYS5hZGRFdmVudExpc3RlbmVyKGIudG9TdHJpbmcoKSwgZCwgZSk7XHJcbiAgICBlbHNlIGlmIChhLmF0dGFjaEV2ZW50KVxyXG4gICAgICAgIGEuYXR0YWNoRXZlbnQobmIoYi50b1N0cmluZygpKSwgZCk7XHJcbiAgICBlbHNlIGlmIChhLmFkZExpc3RlbmVyICYmIGEucmVtb3ZlTGlzdGVuZXIpXHJcbiAgICAgICAgYS5hZGRMaXN0ZW5lcihkKTtcclxuICAgIGVsc2VcclxuICAgICAgICB0aHJvdyBFcnJvcihcImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS5cIik7XHJcbiAgICByZXR1cm4gYztcclxufVxyXG5mdW5jdGlvbiBtYigpIHsgdmFyIGEgPSBvYiwgYiA9IFZhID8gZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGEuY2FsbChiLnNyYywgYi5saXN0ZW5lciwgYyk7IH0gOiBmdW5jdGlvbiAoYykgeyBjID0gYS5jYWxsKGIuc3JjLCBiLmxpc3RlbmVyLCBjKTsgaWYgKCFjKVxyXG4gICAgcmV0dXJuIGM7IH07IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIGliKGEsIGIsIGMsIGQsIGUpIHsgaWYgKEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgIGZvciAodmFyIGYgPSAwOyBmIDwgYi5sZW5ndGg7IGYrKylcclxuICAgICAgICBpYihhLCBiW2ZdLCBjLCBkLCBlKTtcclxuICAgIHJldHVybiBudWxsO1xyXG59IGMgPSBqYihjKTsgcmV0dXJuIGEgJiYgYVtDXSA/IGEud2EoYiwgYywgbihkKSA/ICEhZC5jYXB0dXJlIDogISFkLCBlKSA6IGtiKGEsIGIsIGMsICEwLCBkLCBlKTsgfVxyXG5mdW5jdGlvbiBwYihhLCBiLCBjLCBkLCBlKSB7IGlmIChBcnJheS5pc0FycmF5KGIpKVxyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBiLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIHBiKGEsIGJbZl0sIGMsIGQsIGUpO1xyXG5lbHNlXHJcbiAgICAoZCA9IG4oZCkgPyAhIWQuY2FwdHVyZSA6ICEhZCwgYyA9IGpiKGMpLCBhICYmIGFbQ10pID8gKGEgPSBhLmMsIGIgPSBTdHJpbmcoYikudG9TdHJpbmcoKSwgYiBpbiBhLmEgJiYgKGYgPSBhLmFbYl0sIGMgPSBjYihmLCBjLCBkLCBlKSwgLTEgPCBjICYmIChhYihmW2NdKSwgQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGYsIGMsIDEpLCAwID09IGYubGVuZ3RoICYmIChkZWxldGUgYS5hW2JdLCBhLmItLSkpKSkgOiBhICYmIChhID0gbGIoYSkpICYmIChiID0gYS5hW2IudG9TdHJpbmcoKV0sIGEgPSAtMSwgYiAmJiAoYSA9IGNiKGIsIGMsIGQsIGUpKSwgKGMgPSAtMSA8IGEgPyBiW2FdIDogbnVsbCkgJiYgcmIoYykpOyB9XHJcbmZ1bmN0aW9uIHJiKGEpIHsgaWYgKFwibnVtYmVyXCIgIT09IHR5cGVvZiBhICYmIGEgJiYgIWEuWSkge1xyXG4gICAgdmFyIGIgPSBhLnNyYztcclxuICAgIGlmIChiICYmIGJbQ10pXHJcbiAgICAgICAgZGIoYi5jLCBhKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBjID0gYS50eXBlLCBkID0gYS5wcm94eTtcclxuICAgICAgICBiLnJlbW92ZUV2ZW50TGlzdGVuZXIgPyBiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYywgZCwgYS5jYXB0dXJlKSA6IGIuZGV0YWNoRXZlbnQgPyBiLmRldGFjaEV2ZW50KG5iKGMpLCBkKSA6IGIuYWRkTGlzdGVuZXIgJiYgYi5yZW1vdmVMaXN0ZW5lciAmJiBiLnJlbW92ZUxpc3RlbmVyKGQpO1xyXG4gICAgICAgIChjID0gbGIoYikpID8gKGRiKGMsIGEpLCAwID09IGMuYiAmJiAoYy5zcmMgPSBudWxsLCBiW2ViXSA9IG51bGwpKSA6IGFiKGEpO1xyXG4gICAgfVxyXG59IH1cclxuZnVuY3Rpb24gbmIoYSkgeyByZXR1cm4gYSBpbiBmYiA/IGZiW2FdIDogZmJbYV0gPSBcIm9uXCIgKyBhOyB9XHJcbmZ1bmN0aW9uIHNiKGEsIGIpIHsgdmFyIGMgPSBhLmxpc3RlbmVyLCBkID0gYS5jYSB8fCBhLnNyYzsgYS5aICYmIHJiKGEpOyByZXR1cm4gYy5jYWxsKGQsIGIpOyB9XHJcbmZ1bmN0aW9uIG9iKGEsIGIpIHsgaWYgKGEuWSlcclxuICAgIHJldHVybiAhMDsgaWYgKCFWYSkge1xyXG4gICAgaWYgKCFiKVxyXG4gICAgICAgIGE6IHtcclxuICAgICAgICAgICAgYiA9IFtcIndpbmRvd1wiLCBcImV2ZW50XCJdO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBjID0gaywgZCA9IDA7IGQgPCBiLmxlbmd0aDsgZCsrKVxyXG4gICAgICAgICAgICAgICAgaWYgKGMgPSBjW2JbZF1dLCBudWxsID09IGMpIHtcclxuICAgICAgICAgICAgICAgICAgICBiID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBiID0gYztcclxuICAgICAgICB9XHJcbiAgICBiID0gbmV3IEEoYiwgdGhpcyk7XHJcbiAgICByZXR1cm4gc2IoYSwgYik7XHJcbn0gcmV0dXJuIHNiKGEsIG5ldyBBKGIsIHRoaXMpKTsgfVxyXG5mdW5jdGlvbiBsYihhKSB7IGEgPSBhW2ViXTsgcmV0dXJuIGEgaW5zdGFuY2VvZiBiYiA/IGEgOiBudWxsOyB9XHJcbnZhciB0YiA9IFwiX19jbG9zdXJlX2V2ZW50c19mbl9cIiArICgxRTkgKiBNYXRoLnJhbmRvbSgpID4+PiAwKTtcclxuZnVuY3Rpb24gamIoYSkgeyBpZiAoXCJmdW5jdGlvblwiID09IGJhKGEpKVxyXG4gICAgcmV0dXJuIGE7IGFbdGJdIHx8IChhW3RiXSA9IGZ1bmN0aW9uIChiKSB7IHJldHVybiBhLmhhbmRsZUV2ZW50KGIpOyB9KTsgcmV0dXJuIGFbdGJdOyB9XHJcbmZ1bmN0aW9uIEQoKSB7IHUuY2FsbCh0aGlzKTsgdGhpcy5jID0gbmV3IGJiKHRoaXMpOyB0aGlzLkogPSB0aGlzOyB0aGlzLkMgPSBudWxsOyB9XHJcbnIoRCwgdSk7XHJcbkQucHJvdG90eXBlW0NdID0gITA7XHJcbmcgPSBELnByb3RvdHlwZTtcclxuZy5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgaGIodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHBiKHRoaXMsIGEsIGIsIGMsIGQpOyB9O1xyXG5nLmRpc3BhdGNoRXZlbnQgPSBmdW5jdGlvbiAoYSkgeyB2YXIgYiwgYyA9IHRoaXMuQzsgaWYgKGMpXHJcbiAgICBmb3IgKGIgPSBbXTsgYzsgYyA9IGMuQylcclxuICAgICAgICBiLnB1c2goYyk7IGMgPSB0aGlzLko7IHZhciBkID0gYS50eXBlIHx8IGE7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSlcclxuICAgIGEgPSBuZXcgeShhLCBjKTtcclxuZWxzZSBpZiAoYSBpbnN0YW5jZW9mIHkpXHJcbiAgICBhLnRhcmdldCA9IGEudGFyZ2V0IHx8IGM7XHJcbmVsc2Uge1xyXG4gICAgdmFyIGUgPSBhO1xyXG4gICAgYSA9IG5ldyB5KGQsIGMpO1xyXG4gICAgRGEoYSwgZSk7XHJcbn0gZSA9ICEwOyBpZiAoYilcclxuICAgIGZvciAodmFyIGYgPSBiLmxlbmd0aCAtIDE7IDAgPD0gZjsgZi0tKSB7XHJcbiAgICAgICAgdmFyIGggPSBhLmEgPSBiW2ZdO1xyXG4gICAgICAgIGUgPSB1YihoLCBkLCAhMCwgYSkgJiYgZTtcclxuICAgIH0gaCA9IGEuYSA9IGM7IGUgPSB1YihoLCBkLCAhMCwgYSkgJiYgZTsgZSA9IHViKGgsIGQsICExLCBhKSAmJiBlOyBpZiAoYilcclxuICAgIGZvciAoZiA9IDA7IGYgPCBiLmxlbmd0aDsgZisrKVxyXG4gICAgICAgIGggPSBhLmEgPSBiW2ZdLCBlID0gdWIoaCwgZCwgITEsIGEpICYmIGU7IHJldHVybiBlOyB9O1xyXG5nLkcgPSBmdW5jdGlvbiAoKSB7IEQuUy5HLmNhbGwodGhpcyk7IGlmICh0aGlzLmMpIHtcclxuICAgIHZhciBhID0gdGhpcy5jLCBjO1xyXG4gICAgZm9yIChjIGluIGEuYSkge1xyXG4gICAgICAgIGZvciAodmFyIGQgPSBhLmFbY10sIGUgPSAwOyBlIDwgZC5sZW5ndGg7IGUrKylcclxuICAgICAgICAgICAgYWIoZFtlXSk7XHJcbiAgICAgICAgZGVsZXRlIGEuYVtjXTtcclxuICAgICAgICBhLmItLTtcclxuICAgIH1cclxufSB0aGlzLkMgPSBudWxsOyB9O1xyXG5nLnZhID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIHRoaXMuYy5hZGQoU3RyaW5nKGEpLCBiLCAhMSwgYywgZCk7IH07XHJcbmcud2EgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gdGhpcy5jLmFkZChTdHJpbmcoYSksIGIsICEwLCBjLCBkKTsgfTtcclxuZnVuY3Rpb24gdWIoYSwgYiwgYywgZCkgeyBiID0gYS5jLmFbU3RyaW5nKGIpXTsgaWYgKCFiKVxyXG4gICAgcmV0dXJuICEwOyBiID0gYi5jb25jYXQoKTsgZm9yICh2YXIgZSA9ICEwLCBmID0gMDsgZiA8IGIubGVuZ3RoOyArK2YpIHtcclxuICAgIHZhciBoID0gYltmXTtcclxuICAgIGlmIChoICYmICFoLlkgJiYgaC5jYXB0dXJlID09IGMpIHtcclxuICAgICAgICB2YXIgbSA9IGgubGlzdGVuZXIsIGwgPSBoLmNhIHx8IGguc3JjO1xyXG4gICAgICAgIGguWiAmJiBkYihhLmMsIGgpO1xyXG4gICAgICAgIGUgPSAhMSAhPT0gbS5jYWxsKGwsIGQpICYmIGU7XHJcbiAgICB9XHJcbn0gcmV0dXJuIGUgJiYgIWQuZGVmYXVsdFByZXZlbnRlZDsgfVxyXG52YXIgdmIgPSBrLkpTT04uc3RyaW5naWZ5O1xyXG5mdW5jdGlvbiB3YigpIHsgdGhpcy5iID0gdGhpcy5hID0gbnVsbDsgfVxyXG52YXIgeWIgPSBuZXcgLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gY2xhc3NfMShhLCBiLCBjKSB7XHJcbiAgICAgICAgdGhpcy5mID0gYztcclxuICAgICAgICB0aGlzLmMgPSBhO1xyXG4gICAgICAgIHRoaXMuZyA9IGI7XHJcbiAgICAgICAgdGhpcy5iID0gMDtcclxuICAgICAgICB0aGlzLmEgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKCkgeyB2YXIgYTsgMCA8IHRoaXMuYiA/ICh0aGlzLmItLSwgYSA9IHRoaXMuYSwgdGhpcy5hID0gYS5uZXh0LCBhLm5leHQgPSBudWxsKSA6IGEgPSB0aGlzLmMoKTsgcmV0dXJuIGE7IH07XHJcbiAgICByZXR1cm4gY2xhc3NfMTtcclxufSgpKShmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgeGI7IH0sIGZ1bmN0aW9uIChhKSB7IGEucmVzZXQoKTsgfSwgMTAwKTtcclxud2IucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7IHZhciBjID0geWIuZ2V0KCk7IGMuc2V0KGEsIGIpOyB0aGlzLmIgPyB0aGlzLmIubmV4dCA9IGMgOiB0aGlzLmEgPSBjOyB0aGlzLmIgPSBjOyB9O1xyXG5mdW5jdGlvbiB6YigpIHsgdmFyIGEgPSBBYiwgYiA9IG51bGw7IGEuYSAmJiAoYiA9IGEuYSwgYS5hID0gYS5hLm5leHQsIGEuYSB8fCAoYS5iID0gbnVsbCksIGIubmV4dCA9IG51bGwpOyByZXR1cm4gYjsgfVxyXG5mdW5jdGlvbiB4YigpIHsgdGhpcy5uZXh0ID0gdGhpcy5iID0gdGhpcy5hID0gbnVsbDsgfVxyXG54Yi5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGEsIGIpIHsgdGhpcy5hID0gYTsgdGhpcy5iID0gYjsgdGhpcy5uZXh0ID0gbnVsbDsgfTtcclxueGIucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkgeyB0aGlzLm5leHQgPSB0aGlzLmIgPSB0aGlzLmEgPSBudWxsOyB9O1xyXG5mdW5jdGlvbiBCYihhKSB7IGsuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHRocm93IGE7IH0sIDApOyB9XHJcbmZ1bmN0aW9uIENiKGEsIGIpIHsgRGIgfHwgRWIoKTsgRmIgfHwgKERiKCksIEZiID0gITApOyBBYi5hZGQoYSwgYik7IH1cclxudmFyIERiO1xyXG5mdW5jdGlvbiBFYigpIHsgdmFyIGEgPSBrLlByb21pc2UucmVzb2x2ZSh2b2lkIDApOyBEYiA9IGZ1bmN0aW9uICgpIHsgYS50aGVuKEdiKTsgfTsgfVxyXG52YXIgRmIgPSAhMSwgQWIgPSBuZXcgd2I7XHJcbmZ1bmN0aW9uIEdiKCkgeyBmb3IgKHZhciBhOyBhID0gemIoKTspIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgYS5hLmNhbGwoYS5iKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChjKSB7XHJcbiAgICAgICAgQmIoYyk7XHJcbiAgICB9XHJcbiAgICB2YXIgYiA9IHliO1xyXG4gICAgYi5nKGEpO1xyXG4gICAgYi5iIDwgYi5mICYmIChiLmIrKywgYS5uZXh0ID0gYi5hLCBiLmEgPSBhKTtcclxufSBGYiA9ICExOyB9XHJcbmZ1bmN0aW9uIEhiKGEsIGIpIHsgRC5jYWxsKHRoaXMpOyB0aGlzLmIgPSBhIHx8IDE7IHRoaXMuYSA9IGIgfHwgazsgdGhpcy5mID0gcCh0aGlzLllhLCB0aGlzKTsgdGhpcy5nID0gcSgpOyB9XHJcbnIoSGIsIEQpO1xyXG5nID0gSGIucHJvdG90eXBlO1xyXG5nLmFhID0gITE7XHJcbmcuTSA9IG51bGw7XHJcbmcuWWEgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmFhKSB7XHJcbiAgICB2YXIgYSA9IHEoKSAtIHRoaXMuZztcclxuICAgIDAgPCBhICYmIGEgPCAuOCAqIHRoaXMuYiA/IHRoaXMuTSA9IHRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZiwgdGhpcy5iIC0gYSkgOiAodGhpcy5NICYmICh0aGlzLmEuY2xlYXJUaW1lb3V0KHRoaXMuTSksIHRoaXMuTSA9IG51bGwpLCB0aGlzLmRpc3BhdGNoRXZlbnQoXCJ0aWNrXCIpLCB0aGlzLmFhICYmIChJYih0aGlzKSwgdGhpcy5zdGFydCgpKSk7XHJcbn0gfTtcclxuZy5zdGFydCA9IGZ1bmN0aW9uICgpIHsgdGhpcy5hYSA9ICEwOyB0aGlzLk0gfHwgKHRoaXMuTSA9IHRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZiwgdGhpcy5iKSwgdGhpcy5nID0gcSgpKTsgfTtcclxuZnVuY3Rpb24gSWIoYSkgeyBhLmFhID0gITE7IGEuTSAmJiAoYS5hLmNsZWFyVGltZW91dChhLk0pLCBhLk0gPSBudWxsKTsgfVxyXG5nLkcgPSBmdW5jdGlvbiAoKSB7IEhiLlMuRy5jYWxsKHRoaXMpOyBJYih0aGlzKTsgZGVsZXRlIHRoaXMuYTsgfTtcclxuZnVuY3Rpb24gSmIoYSwgYiwgYykgeyBpZiAoXCJmdW5jdGlvblwiID09IGJhKGEpKVxyXG4gICAgYyAmJiAoYSA9IHAoYSwgYykpO1xyXG5lbHNlIGlmIChhICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgYS5oYW5kbGVFdmVudClcclxuICAgIGEgPSBwKGEuaGFuZGxlRXZlbnQsIGEpO1xyXG5lbHNlXHJcbiAgICB0aHJvdyBFcnJvcihcIkludmFsaWQgbGlzdGVuZXIgYXJndW1lbnRcIik7IHJldHVybiAyMTQ3NDgzNjQ3IDwgTnVtYmVyKGIpID8gLTEgOiBrLnNldFRpbWVvdXQoYSwgYiB8fCAwKTsgfVxyXG5mdW5jdGlvbiBLYihhKSB7IGEuYSA9IEpiKGZ1bmN0aW9uICgpIHsgYS5hID0gbnVsbDsgYS5jICYmIChhLmMgPSAhMSwgS2IoYSkpOyB9LCBhLmgpOyB2YXIgYiA9IGEuYjsgYS5iID0gbnVsbDsgYS5nLmFwcGx5KG51bGwsIGIpOyB9XHJcbnZhciBMYiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgIF9fZXh0ZW5kcyhMYiwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIExiKGEsIGIsIGMpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmcgPSBudWxsICE9IGMgPyBhLmJpbmQoYykgOiBhO1xyXG4gICAgICAgIF90aGlzLmggPSBiO1xyXG4gICAgICAgIF90aGlzLmIgPSBudWxsO1xyXG4gICAgICAgIF90aGlzLmMgPSAhMTtcclxuICAgICAgICBfdGhpcy5hID0gbnVsbDtcclxuICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICB9XHJcbiAgICBMYi5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uIChhKSB7IHRoaXMuYiA9IGFyZ3VtZW50czsgdGhpcy5hID8gdGhpcy5jID0gITAgOiBLYih0aGlzKTsgfTtcclxuICAgIExiLnByb3RvdHlwZS5HID0gZnVuY3Rpb24gKCkgeyBfc3VwZXIucHJvdG90eXBlLkcuY2FsbCh0aGlzKTsgdGhpcy5hICYmIChrLmNsZWFyVGltZW91dCh0aGlzLmEpLCB0aGlzLmEgPSBudWxsLCB0aGlzLmMgPSAhMSwgdGhpcy5iID0gbnVsbCk7IH07XHJcbiAgICByZXR1cm4gTGI7XHJcbn0odSkpO1xyXG5mdW5jdGlvbiBFKGEpIHsgdS5jYWxsKHRoaXMpOyB0aGlzLmIgPSBhOyB0aGlzLmEgPSB7fTsgfVxyXG5yKEUsIHUpO1xyXG52YXIgTWIgPSBbXTtcclxuZnVuY3Rpb24gTmIoYSwgYiwgYywgZCkgeyBBcnJheS5pc0FycmF5KGMpIHx8IChjICYmIChNYlswXSA9IGMudG9TdHJpbmcoKSksIGMgPSBNYik7IGZvciAodmFyIGUgPSAwOyBlIDwgYy5sZW5ndGg7IGUrKykge1xyXG4gICAgdmFyIGYgPSBoYihiLCBjW2VdLCBkIHx8IGEuaGFuZGxlRXZlbnQsICExLCBhLmIgfHwgYSk7XHJcbiAgICBpZiAoIWYpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBhLmFbZi5rZXldID0gZjtcclxufSB9XHJcbmZ1bmN0aW9uIE9iKGEpIHsgQWEoYS5hLCBmdW5jdGlvbiAoYiwgYykgeyB0aGlzLmEuaGFzT3duUHJvcGVydHkoYykgJiYgcmIoYik7IH0sIGEpOyBhLmEgPSB7fTsgfVxyXG5FLnByb3RvdHlwZS5HID0gZnVuY3Rpb24gKCkgeyBFLlMuRy5jYWxsKHRoaXMpOyBPYih0aGlzKTsgfTtcclxuRS5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBmdW5jdGlvbiAoKSB7IHRocm93IEVycm9yKFwiRXZlbnRIYW5kbGVyLmhhbmRsZUV2ZW50IG5vdCBpbXBsZW1lbnRlZFwiKTsgfTtcclxuZnVuY3Rpb24gUGIoKSB7IHRoaXMuYSA9ICEwOyB9XHJcbmZ1bmN0aW9uIFFiKGEsIGIsIGMsIGQsIGUsIGYpIHsgYS5pbmZvKGZ1bmN0aW9uICgpIHsgaWYgKGEuYSlcclxuICAgIGlmIChmKSB7XHJcbiAgICAgICAgdmFyIGggPSBcIlwiO1xyXG4gICAgICAgIGZvciAodmFyIG0gPSBmLnNwbGl0KFwiJlwiKSwgbCA9IDA7IGwgPCBtLmxlbmd0aDsgbCsrKSB7XHJcbiAgICAgICAgICAgIHZhciB0ID0gbVtsXS5zcGxpdChcIj1cIik7XHJcbiAgICAgICAgICAgIGlmICgxIDwgdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBCID0gdFswXTtcclxuICAgICAgICAgICAgICAgIHQgPSB0WzFdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHogPSBCLnNwbGl0KFwiX1wiKTtcclxuICAgICAgICAgICAgICAgIGggPSAyIDw9IHoubGVuZ3RoICYmIFwidHlwZVwiID09IHpbMV0gPyBoICsgKEIgKyBcIj1cIiArIHQgKyBcIiZcIikgOiBoICsgKEIgKyBcIj1yZWRhY3RlZCZcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgaCA9IG51bGw7XHJcbmVsc2VcclxuICAgIGggPSBmOyByZXR1cm4gXCJYTUxIVFRQIFJFUSAoXCIgKyBkICsgXCIpIFthdHRlbXB0IFwiICsgZSArIFwiXTogXCIgKyBiICsgXCJcXG5cIiArIGMgKyBcIlxcblwiICsgaDsgfSk7IH1cclxuZnVuY3Rpb24gUmIoYSwgYiwgYywgZCwgZSwgZiwgaCkgeyBhLmluZm8oZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJYTUxIVFRQIFJFU1AgKFwiICsgZCArIFwiKSBbIGF0dGVtcHQgXCIgKyBlICsgXCJdOiBcIiArIGIgKyBcIlxcblwiICsgYyArIFwiXFxuXCIgKyBmICsgXCIgXCIgKyBoOyB9KTsgfVxyXG5mdW5jdGlvbiBGKGEsIGIsIGMsIGQpIHsgYS5pbmZvKGZ1bmN0aW9uICgpIHsgcmV0dXJuIFwiWE1MSFRUUCBURVhUIChcIiArIGIgKyBcIik6IFwiICsgU2IoYSwgYykgKyAoZCA/IFwiIFwiICsgZCA6IFwiXCIpOyB9KTsgfVxyXG5mdW5jdGlvbiBUYihhLCBiKSB7IGEuaW5mbyhmdW5jdGlvbiAoKSB7IHJldHVybiBcIlRJTUVPVVQ6IFwiICsgYjsgfSk7IH1cclxuUGIucHJvdG90eXBlLmluZm8gPSBmdW5jdGlvbiAoKSB7IH07XHJcbmZ1bmN0aW9uIFNiKGEsIGIpIHsgaWYgKCFhLmEpXHJcbiAgICByZXR1cm4gYjsgaWYgKCFiKVxyXG4gICAgcmV0dXJuIG51bGw7IHRyeSB7XHJcbiAgICB2YXIgYyA9IEpTT04ucGFyc2UoYik7XHJcbiAgICBpZiAoYylcclxuICAgICAgICBmb3IgKGEgPSAwOyBhIDwgYy5sZW5ndGg7IGErKylcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY1thXSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkID0gY1thXTtcclxuICAgICAgICAgICAgICAgIGlmICghKDIgPiBkLmxlbmd0aCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IGRbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZSkgJiYgISgxID4gZS5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwibm9vcFwiICE9IGYgJiYgXCJzdG9wXCIgIT0gZiAmJiBcImNsb3NlXCIgIT0gZilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGggPSAxOyBoIDwgZS5sZW5ndGg7IGgrKylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlW2hdID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgIHJldHVybiB2YihjKTtcclxufVxyXG5jYXRjaCAobSkge1xyXG4gICAgcmV0dXJuIGI7XHJcbn0gfVxyXG52YXIgVWIgPSBudWxsO1xyXG5mdW5jdGlvbiBWYigpIHsgcmV0dXJuIFViID0gVWIgfHwgbmV3IEQ7IH1cclxuZnVuY3Rpb24gV2IoYSkgeyB5LmNhbGwodGhpcywgXCJzZXJ2ZXJyZWFjaGFiaWxpdHlcIiwgYSk7IH1cclxucihXYiwgeSk7XHJcbmZ1bmN0aW9uIEcoYSkgeyB2YXIgYiA9IFZiKCk7IGIuZGlzcGF0Y2hFdmVudChuZXcgV2IoYiwgYSkpOyB9XHJcbmZ1bmN0aW9uIFhiKGEpIHsgeS5jYWxsKHRoaXMsIFwic3RhdGV2ZW50XCIsIGEpOyB9XHJcbnIoWGIsIHkpO1xyXG5mdW5jdGlvbiBIKGEpIHsgdmFyIGIgPSBWYigpOyBiLmRpc3BhdGNoRXZlbnQobmV3IFhiKGIsIGEpKTsgfVxyXG5mdW5jdGlvbiBZYihhKSB7IHkuY2FsbCh0aGlzLCBcInRpbWluZ2V2ZW50XCIsIGEpOyB9XHJcbnIoWWIsIHkpO1xyXG5mdW5jdGlvbiBJKGEsIGIpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSBiYShhKSlcclxuICAgIHRocm93IEVycm9yKFwiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpOyByZXR1cm4gay5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgYSgpOyB9LCBiKTsgfVxyXG52YXIgWmIgPSB7IE5PX0VSUk9SOiAwLCBaYTogMSwgZ2I6IDIsIGZiOiAzLCBiYjogNCwgZWI6IDUsIGhiOiA2LCBEYTogNywgVElNRU9VVDogOCwga2I6IDkgfTtcclxudmFyICRiID0geyBhYjogXCJjb21wbGV0ZVwiLCBvYjogXCJzdWNjZXNzXCIsIEVhOiBcImVycm9yXCIsIERhOiBcImFib3J0XCIsIG1iOiBcInJlYWR5XCIsIG5iOiBcInJlYWR5c3RhdGVjaGFuZ2VcIiwgVElNRU9VVDogXCJ0aW1lb3V0XCIsIGliOiBcImluY3JlbWVudGFsZGF0YVwiLCBsYjogXCJwcm9ncmVzc1wiLCBjYjogXCJkb3dubG9hZHByb2dyZXNzXCIsIHBiOiBcInVwbG9hZHByb2dyZXNzXCIgfTtcclxuZnVuY3Rpb24gYWMoKSB7IH1cclxuYWMucHJvdG90eXBlLmEgPSBudWxsO1xyXG5mdW5jdGlvbiBiYyhhKSB7IHZhciBiOyAoYiA9IGEuYSkgfHwgKGIgPSBhLmEgPSB7fSk7IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIGNjKCkgeyB9XHJcbnZhciBKID0geyBPUEVOOiBcImFcIiwgJGE6IFwiYlwiLCBFYTogXCJjXCIsIGpiOiBcImRcIiB9O1xyXG5mdW5jdGlvbiBkYygpIHsgeS5jYWxsKHRoaXMsIFwiZFwiKTsgfVxyXG5yKGRjLCB5KTtcclxuZnVuY3Rpb24gZWMoKSB7IHkuY2FsbCh0aGlzLCBcImNcIik7IH1cclxucihlYywgeSk7XHJcbnZhciBmYztcclxuZnVuY3Rpb24gZ2MoKSB7IH1cclxucihnYywgYWMpO1xyXG5mYyA9IG5ldyBnYztcclxuZnVuY3Rpb24gSyhhLCBiLCBjLCBkKSB7IHRoaXMuZyA9IGE7IHRoaXMuYyA9IGI7IHRoaXMuZiA9IGM7IHRoaXMuVCA9IGQgfHwgMTsgdGhpcy5KID0gbmV3IEUodGhpcyk7IHRoaXMuUCA9IGhjOyBhID0gSmEgPyAxMjUgOiB2b2lkIDA7IHRoaXMuUiA9IG5ldyBIYihhKTsgdGhpcy5CID0gbnVsbDsgdGhpcy5iID0gITE7IHRoaXMuaiA9IHRoaXMubCA9IHRoaXMuaSA9IHRoaXMuSCA9IHRoaXMudSA9IHRoaXMuVSA9IHRoaXMubyA9IG51bGw7IHRoaXMucyA9IFtdOyB0aGlzLmEgPSBudWxsOyB0aGlzLkQgPSAwOyB0aGlzLmggPSB0aGlzLm0gPSBudWxsOyB0aGlzLk4gPSAtMTsgdGhpcy5BID0gITE7IHRoaXMuTyA9IDA7IHRoaXMuRiA9IG51bGw7IHRoaXMuVyA9IHRoaXMuQyA9IHRoaXMuViA9IHRoaXMuSSA9ICExOyB9XHJcbnZhciBoYyA9IDQ1RTMsIGljID0ge30sIGpjID0ge307XHJcbmcgPSBLLnByb3RvdHlwZTtcclxuZy5zZXRUaW1lb3V0ID0gZnVuY3Rpb24gKGEpIHsgdGhpcy5QID0gYTsgfTtcclxuZnVuY3Rpb24ga2MoYSwgYiwgYykgeyBhLkggPSAxOyBhLmkgPSBsYyhMKGIpKTsgYS5qID0gYzsgYS5JID0gITA7IG1jKGEsIG51bGwpOyB9XHJcbmZ1bmN0aW9uIG1jKGEsIGIpIHsgYS51ID0gcSgpOyBNKGEpOyBhLmwgPSBMKGEuaSk7IHZhciBjID0gYS5sLCBkID0gYS5UOyBBcnJheS5pc0FycmF5KGQpIHx8IChkID0gW1N0cmluZyhkKV0pOyBuYyhjLmIsIFwidFwiLCBkKTsgYS5EID0gMDsgYS5hID0gb2MoYS5nLCBhLmcuQyA/IGIgOiBudWxsKTsgMCA8IGEuTyAmJiAoYS5GID0gbmV3IExiKHAoYS5DYSwgYSwgYS5hKSwgYS5PKSk7IE5iKGEuSiwgYS5hLCBcInJlYWR5c3RhdGVjaGFuZ2VcIiwgYS5XYSk7IGIgPSBhLkIgPyBCYShhLkIpIDoge307IGEuaiA/IChhLm0gfHwgKGEubSA9IFwiUE9TVFwiKSwgYltcIkNvbnRlbnQtVHlwZVwiXSA9IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsIGEuYS5iYShhLmwsIGEubSwgYS5qLCBiKSkgOiAoYS5tID0gXCJHRVRcIiwgYS5hLmJhKGEubCwgYS5tLCBudWxsLCBiKSk7IEcoMSk7IFFiKGEuYywgYS5tLCBhLmwsIGEuZiwgYS5ULCBhLmopOyB9XHJcbmcuV2EgPSBmdW5jdGlvbiAoYSkgeyBhID0gYS50YXJnZXQ7IHZhciBiID0gdGhpcy5GOyBiICYmIDMgPT0gTihhKSA/IGIuZigpIDogdGhpcy5DYShhKTsgfTtcclxuZy5DYSA9IGZ1bmN0aW9uIChhKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChhID09IHRoaXMuYSlcclxuICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgdmFyIGIgPSBOKHRoaXMuYSksIGMgPSB0aGlzLmEudWEoKSwgZCA9IHRoaXMuYS5YKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoISgzID4gYiB8fCAzID09IGIgJiYgIUphICYmICF0aGlzLmEuJCgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQSB8fCA0ICE9IGIgfHwgNyA9PSBjIHx8ICg4ID09IGMgfHwgMCA+PSBkID8gRygzKSA6IEcoMikpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBjKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlID0gdGhpcy5hLlgoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLk4gPSBlO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBmID0gdGhpcy5hLiQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmIgPSAyMDAgPT0gZTtcclxuICAgICAgICAgICAgICAgICAgICBSYih0aGlzLmMsIHRoaXMubSwgdGhpcy5sLCB0aGlzLmYsIHRoaXMuVCwgYiwgZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5WICYmICF0aGlzLkMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoLCBtID0gdGhpcy5hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGggPSBtLmEgPyBtLmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUhUVFAtSW5pdGlhbC1SZXNwb25zZVwiKSA6IG51bGwpICYmICF0YShoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBoO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYodGhpcy5jLCB0aGlzLmYsIGwsIFwiSW5pdGlhbCBoYW5kc2hha2UgcmVzcG9uc2UgdmlhIFgtSFRUUC1Jbml0aWFsLVJlc3BvbnNlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkMgPSAhMCwgcWModGhpcywgbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmIgPSAhMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmggPSAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgoMTIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8odGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmModGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkkgPyAodGModGhpcywgYiwgZiksIEphICYmIHRoaXMuYiAmJiAzID09IGIgJiYgKE5iKHRoaXMuSiwgdGhpcy5SLCBcInRpY2tcIiwgdGhpcy5WYSksIHRoaXMuUi5zdGFydCgpKSkgOiAoRih0aGlzLmMsIHRoaXMuZiwgZiwgbnVsbCksIHFjKHRoaXMsIGYpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgNCA9PSBiICYmIE8odGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYiAmJiAhdGhpcy5BICYmICg0ID09IGIgPyB1Yyh0aGlzLmcsIHRoaXMpIDogKHRoaXMuYiA9ICExLCBNKHRoaXMpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgNDAwID09IGUgJiYgMCA8IGYuaW5kZXhPZihcIlVua25vd24gU0lEXCIpID8gKHRoaXMuaCA9IDMsIEgoMTIpKSA6ICh0aGlzLmggPSAwLCBIKDEzKSksIE8odGhpcyksIHJjKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAodCkgeyB9XHJcbiAgICBmaW5hbGx5IHsgfVxyXG59O1xyXG5mdW5jdGlvbiB0YyhhLCBiLCBjKSB7IGZvciAodmFyIGQgPSAhMDsgIWEuQSAmJiBhLkQgPCBjLmxlbmd0aDspIHtcclxuICAgIHZhciBlID0gdmMoYSwgYyk7XHJcbiAgICBpZiAoZSA9PSBqYykge1xyXG4gICAgICAgIDQgPT0gYiAmJiAoYS5oID0gNCwgSCgxNCksIGQgPSAhMSk7XHJcbiAgICAgICAgRihhLmMsIGEuZiwgbnVsbCwgXCJbSW5jb21wbGV0ZSBSZXNwb25zZV1cIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlID09IGljKSB7XHJcbiAgICAgICAgYS5oID0gNDtcclxuICAgICAgICBIKDE1KTtcclxuICAgICAgICBGKGEuYywgYS5mLCBjLCBcIltJbnZhbGlkIENodW5rXVwiKTtcclxuICAgICAgICBkID0gITE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgRihhLmMsIGEuZiwgZSwgbnVsbCksIHFjKGEsIGUpO1xyXG59IDQgPT0gYiAmJiAwID09IGMubGVuZ3RoICYmIChhLmggPSAxLCBIKDE2KSwgZCA9ICExKTsgYS5iID0gYS5iICYmIGQ7IGQgPyAwIDwgYy5sZW5ndGggJiYgIWEuVyAmJiAoYS5XID0gITAsIGIgPSBhLmcsIGIuYSA9PSBhICYmIGIuViAmJiAhYi5GICYmIChiLmMuaW5mbyhcIkdyZWF0LCBubyBidWZmZXJpbmcgcHJveHkgZGV0ZWN0ZWQuIEJ5dGVzIHJlY2VpdmVkOiBcIiArIGMubGVuZ3RoKSwgeGMoYiksIGIuRiA9ICEwKSkgOiAoRihhLmMsIGEuZiwgYywgXCJbSW52YWxpZCBDaHVua2VkIFJlc3BvbnNlXVwiKSwgTyhhKSwgcmMoYSkpOyB9XHJcbmcuVmEgPSBmdW5jdGlvbiAoKSB7IGlmICh0aGlzLmEpIHtcclxuICAgIHZhciBhID0gTih0aGlzLmEpLCBiID0gdGhpcy5hLiQoKTtcclxuICAgIHRoaXMuRCA8IGIubGVuZ3RoICYmIChwYyh0aGlzKSwgdGModGhpcywgYSwgYiksIHRoaXMuYiAmJiA0ICE9IGEgJiYgTSh0aGlzKSk7XHJcbn0gfTtcclxuZnVuY3Rpb24gdmMoYSwgYikgeyB2YXIgYyA9IGEuRCwgZCA9IGIuaW5kZXhPZihcIlxcblwiLCBjKTsgaWYgKC0xID09IGQpXHJcbiAgICByZXR1cm4gamM7IGMgPSBOdW1iZXIoYi5zdWJzdHJpbmcoYywgZCkpOyBpZiAoaXNOYU4oYykpXHJcbiAgICByZXR1cm4gaWM7IGQgKz0gMTsgaWYgKGQgKyBjID4gYi5sZW5ndGgpXHJcbiAgICByZXR1cm4gamM7IGIgPSBiLnN1YnN0cihkLCBjKTsgYS5EID0gZCArIGM7IHJldHVybiBiOyB9XHJcbmcuY2FuY2VsID0gZnVuY3Rpb24gKCkgeyB0aGlzLkEgPSAhMDsgTyh0aGlzKTsgfTtcclxuZnVuY3Rpb24gTShhKSB7IGEuVSA9IHEoKSArIGEuUDsgeWMoYSwgYS5QKTsgfVxyXG5mdW5jdGlvbiB5YyhhLCBiKSB7IGlmIChudWxsICE9IGEubylcclxuICAgIHRocm93IEVycm9yKFwiV2F0Y2hEb2cgdGltZXIgbm90IG51bGxcIik7IGEubyA9IEkocChhLlVhLCBhKSwgYik7IH1cclxuZnVuY3Rpb24gcGMoYSkgeyBhLm8gJiYgKGsuY2xlYXJUaW1lb3V0KGEubyksIGEubyA9IG51bGwpOyB9XHJcbmcuVWEgPSBmdW5jdGlvbiAoKSB7IHRoaXMubyA9IG51bGw7IHZhciBhID0gcSgpOyAwIDw9IGEgLSB0aGlzLlUgPyAoVGIodGhpcy5jLCB0aGlzLmwpLCAyICE9IHRoaXMuSCAmJiAoRygzKSwgSCgxNykpLCBPKHRoaXMpLCB0aGlzLmggPSAyLCByYyh0aGlzKSkgOiB5Yyh0aGlzLCB0aGlzLlUgLSBhKTsgfTtcclxuZnVuY3Rpb24gcmMoYSkgeyAwID09IGEuZy52IHx8IGEuQSB8fCB1YyhhLmcsIGEpOyB9XHJcbmZ1bmN0aW9uIE8oYSkgeyBwYyhhKTsgdmFyIGIgPSBhLkY7IGIgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBiLmphICYmIGIuamEoKTsgYS5GID0gbnVsbDsgSWIoYS5SKTsgT2IoYS5KKTsgYS5hICYmIChiID0gYS5hLCBhLmEgPSBudWxsLCBiLmFib3J0KCksIGIuamEoKSk7IH1cclxuZnVuY3Rpb24gcWMoYSwgYikge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgYyA9IGEuZztcclxuICAgICAgICBpZiAoMCAhPSBjLnYgJiYgKGMuYSA9PSBhIHx8IHpjKGMuYiwgYSkpKVxyXG4gICAgICAgICAgICBpZiAoYy5JID0gYS5OLCAhYS5DICYmIHpjKGMuYiwgYSkgJiYgMyA9PSBjLnYpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBjLmthLmEucGFyc2UoYik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoc2MpIHtcclxuICAgICAgICAgICAgICAgICAgICBkID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGQpICYmIDMgPT0gZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT0gZVswXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgYToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjLmopIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5hKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5hLnUgKyAzRTMgPCBhLnUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYyhjKSwgQmMoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2MoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCgxOCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGMub2EgPSBlWzFdLCAwIDwgYy5vYSAtIGMuUCAmJiAzNzUwMCA+IGVbMl0gJiYgYy5IICYmIDAgPT0gYy5vICYmICFjLm0gJiYgKGMubSA9IEkocChjLlJhLCBjKSwgNkUzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDEgPj0gRGMoYy5iKSAmJiBjLmVhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmVhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKHNjKSB7IH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYy5lYSA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgUChjLCAxMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKGEuQyB8fCBjLmEgPT0gYSkgJiYgQWMoYyksICF0YShiKSlcclxuICAgICAgICAgICAgICAgIGZvciAoYiA9IGQgPSBjLmthLmEucGFyc2UoYiksIGQgPSAwOyBkIDwgYi5sZW5ndGg7IGQrKylcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJbZF0sIGMuUCA9IGVbMF0sIGUgPSBlWzFdLCAyID09IGMudilcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwiY1wiID09IGVbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuSiA9IGVbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdhID0gZVsyXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZVszXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT0gZiAmJiAoYy5oYSA9IGYsIGMuYy5pbmZvKFwiVkVSPVwiICsgYy5oYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGggPSBlWzRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPSBoICYmIChjLnBhID0gaCwgYy5jLmluZm8oXCJTVkVSPVwiICsgYy5wYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG0gPSBlWzVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gbSAmJiBcIm51bWJlclwiID09PSB0eXBlb2YgbSAmJiAwIDwgbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsID0gMS41ICogbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLkQgPSBsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuYy5pbmZvKFwiYmFja0NoYW5uZWxSZXF1ZXN0VGltZW91dE1zXz1cIiArIGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdCA9IGEuYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEIgPSB0LmEgPyB0LmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUNsaWVudC1XaXJlLVByb3RvY29sXCIpIDogbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiA9IGwuYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXouYSAmJiAodihCLCBcInNwZHlcIikgfHwgdihCLCBcInF1aWNcIikgfHwgdihCLCBcImgyXCIpKSAmJiAoei5mID0gei5nLCB6LmEgPSBuZXcgU2V0LCB6LmIgJiYgKEVjKHosIHouYiksIHouYiA9IG51bGwpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwuQSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcWIgPSB0LmEgPyB0LmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJYLUhUVFAtU2Vzc2lvbi1JZFwiKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxYiAmJiAobC5uYSA9IHFiLCBRKGwuQiwgbC5BLCBxYikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudiA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmYgJiYgYy5mLnRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLlYgJiYgKGMuTiA9IHEoKSAtIGEudSwgYy5jLmluZm8oXCJIYW5kc2hha2UgUlRUOiBcIiArIGMuTiArIFwibXNcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbCA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmEgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5sYSA9IEZjKGwsIGwuQyA/IGwuZ2EgOiBudWxsLCBsLmZhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YS5DKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2MobC5iLCB2YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHdhID0gdmEsIHdjID0gbC5EO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdjICYmIHdhLnNldFRpbWVvdXQod2MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhLm8gJiYgKHBjKHdhKSwgTSh3YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuYSA9IHZhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhjKGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA8IGMuZy5sZW5ndGggJiYgSWMoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdG9wXCIgIT0gZVswXSAmJiBcImNsb3NlXCIgIT0gZVswXSB8fCBQKGMsIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgMyA9PSBjLnYgJiYgKFwic3RvcFwiID09IGVbMF0gfHwgXCJjbG9zZVwiID09IGVbMF0gPyBcInN0b3BcIiA9PSBlWzBdID8gUChjLCA3KSA6IEpjKGMpIDogXCJub29wXCIgIT0gZVswXSAmJiBjLmYgJiYgYy5mLnNhKGUpLCBjLm8gPSAwKTtcclxuICAgICAgICBHKDQpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKHNjKSB7IH1cclxufVxyXG5mdW5jdGlvbiBLYyhhKSB7IGlmIChhLksgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLkspXHJcbiAgICByZXR1cm4gYS5LKCk7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSlcclxuICAgIHJldHVybiBhLnNwbGl0KFwiXCIpOyBpZiAoY2EoYSkpIHtcclxuICAgIGZvciAodmFyIGIgPSBbXSwgYyA9IGEubGVuZ3RoLCBkID0gMDsgZCA8IGM7IGQrKylcclxuICAgICAgICBiLnB1c2goYVtkXSk7XHJcbiAgICByZXR1cm4gYjtcclxufSBiID0gW107IGMgPSAwOyBmb3IgKGQgaW4gYSlcclxuICAgIGJbYysrXSA9IGFbZF07IHJldHVybiBhID0gYjsgfVxyXG5mdW5jdGlvbiBMYyhhLCBiKSB7IGlmIChhLmZvckVhY2ggJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLmZvckVhY2gpXHJcbiAgICBhLmZvckVhY2goYiwgdm9pZCAwKTtcclxuZWxzZSBpZiAoY2EoYSkgfHwgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpXHJcbiAgICBvYShhLCBiLCB2b2lkIDApO1xyXG5lbHNlIHtcclxuICAgIGlmIChhLkwgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBhLkwpXHJcbiAgICAgICAgdmFyIGMgPSBhLkwoKTtcclxuICAgIGVsc2UgaWYgKGEuSyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGEuSylcclxuICAgICAgICBjID0gdm9pZCAwO1xyXG4gICAgZWxzZSBpZiAoY2EoYSkgfHwgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpIHtcclxuICAgICAgICBjID0gW107XHJcbiAgICAgICAgZm9yICh2YXIgZCA9IGEubGVuZ3RoLCBlID0gMDsgZSA8IGQ7IGUrKylcclxuICAgICAgICAgICAgYy5wdXNoKGUpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICAgIGZvciAoZSBpbiBjID0gW10sIGQgPSAwLCBhKVxyXG4gICAgICAgICAgICBjW2QrK10gPSBlO1xyXG4gICAgZCA9IEtjKGEpO1xyXG4gICAgZSA9IGQubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBlOyBmKyspXHJcbiAgICAgICAgYi5jYWxsKHZvaWQgMCwgZFtmXSwgYyAmJiBjW2ZdLCBhKTtcclxufSB9XHJcbmZ1bmN0aW9uIFIoYSwgYikgeyB0aGlzLmIgPSB7fTsgdGhpcy5hID0gW107IHRoaXMuYyA9IDA7IHZhciBjID0gYXJndW1lbnRzLmxlbmd0aDsgaWYgKDEgPCBjKSB7XHJcbiAgICBpZiAoYyAlIDIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50c1wiKTtcclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgYzsgZCArPSAyKVxyXG4gICAgICAgIHRoaXMuc2V0KGFyZ3VtZW50c1tkXSwgYXJndW1lbnRzW2QgKyAxXSk7XHJcbn1cclxuZWxzZSBpZiAoYSlcclxuICAgIGlmIChhIGluc3RhbmNlb2YgUilcclxuICAgICAgICBmb3IgKGMgPSBhLkwoKSwgZCA9IDA7IGQgPCBjLmxlbmd0aDsgZCsrKVxyXG4gICAgICAgICAgICB0aGlzLnNldChjW2RdLCBhLmdldChjW2RdKSk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgZm9yIChkIGluIGEpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0KGQsIGFbZF0pOyB9XHJcbmcgPSBSLnByb3RvdHlwZTtcclxuZy5LID0gZnVuY3Rpb24gKCkgeyBNYyh0aGlzKTsgZm9yICh2YXIgYSA9IFtdLCBiID0gMDsgYiA8IHRoaXMuYS5sZW5ndGg7IGIrKylcclxuICAgIGEucHVzaCh0aGlzLmJbdGhpcy5hW2JdXSk7IHJldHVybiBhOyB9O1xyXG5nLkwgPSBmdW5jdGlvbiAoKSB7IE1jKHRoaXMpOyByZXR1cm4gdGhpcy5hLmNvbmNhdCgpOyB9O1xyXG5mdW5jdGlvbiBNYyhhKSB7IGlmIChhLmMgIT0gYS5hLmxlbmd0aCkge1xyXG4gICAgZm9yICh2YXIgYiA9IDAsIGMgPSAwOyBiIDwgYS5hLmxlbmd0aDspIHtcclxuICAgICAgICB2YXIgZCA9IGEuYVtiXTtcclxuICAgICAgICBTKGEuYiwgZCkgJiYgKGEuYVtjKytdID0gZCk7XHJcbiAgICAgICAgYisrO1xyXG4gICAgfVxyXG4gICAgYS5hLmxlbmd0aCA9IGM7XHJcbn0gaWYgKGEuYyAhPSBhLmEubGVuZ3RoKSB7XHJcbiAgICB2YXIgZSA9IHt9O1xyXG4gICAgZm9yIChjID0gYiA9IDA7IGIgPCBhLmEubGVuZ3RoOylcclxuICAgICAgICBkID0gYS5hW2JdLCBTKGUsIGQpIHx8IChhLmFbYysrXSA9IGQsIGVbZF0gPSAxKSwgYisrO1xyXG4gICAgYS5hLmxlbmd0aCA9IGM7XHJcbn0gfVxyXG5nLmdldCA9IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBTKHRoaXMuYiwgYSkgPyB0aGlzLmJbYV0gOiBiOyB9O1xyXG5nLnNldCA9IGZ1bmN0aW9uIChhLCBiKSB7IFModGhpcy5iLCBhKSB8fCAodGhpcy5jKyssIHRoaXMuYS5wdXNoKGEpKTsgdGhpcy5iW2FdID0gYjsgfTtcclxuZy5mb3JFYWNoID0gZnVuY3Rpb24gKGEsIGIpIHsgZm9yICh2YXIgYyA9IHRoaXMuTCgpLCBkID0gMDsgZCA8IGMubGVuZ3RoOyBkKyspIHtcclxuICAgIHZhciBlID0gY1tkXSwgZiA9IHRoaXMuZ2V0KGUpO1xyXG4gICAgYS5jYWxsKGIsIGYsIGUsIHRoaXMpO1xyXG59IH07XHJcbmZ1bmN0aW9uIFMoYSwgYikgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpOyB9XHJcbnZhciBOYyA9IC9eKD86KFteOi8/Iy5dKyk6KT8oPzpcXC9cXC8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kLztcclxuZnVuY3Rpb24gT2MoYSwgYikgeyBpZiAoYSkge1xyXG4gICAgYSA9IGEuc3BsaXQoXCImXCIpO1xyXG4gICAgZm9yICh2YXIgYyA9IDA7IGMgPCBhLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgdmFyIGQgPSBhW2NdLmluZGV4T2YoXCI9XCIpLCBlID0gbnVsbDtcclxuICAgICAgICBpZiAoMCA8PSBkKSB7XHJcbiAgICAgICAgICAgIHZhciBmID0gYVtjXS5zdWJzdHJpbmcoMCwgZCk7XHJcbiAgICAgICAgICAgIGUgPSBhW2NdLnN1YnN0cmluZyhkICsgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgZiA9IGFbY107XHJcbiAgICAgICAgYihmLCBlID8gZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZSgvXFwrL2csIFwiIFwiKSkgOiBcIlwiKTtcclxuICAgIH1cclxufSB9XHJcbmZ1bmN0aW9uIFQoYSwgYikgeyB0aGlzLmMgPSB0aGlzLmogPSB0aGlzLmYgPSBcIlwiOyB0aGlzLmggPSBudWxsOyB0aGlzLmkgPSB0aGlzLmcgPSBcIlwiOyB0aGlzLmEgPSAhMTsgaWYgKGEgaW5zdGFuY2VvZiBUKSB7XHJcbiAgICB0aGlzLmEgPSB2b2lkIDAgIT09IGIgPyBiIDogYS5hO1xyXG4gICAgUGModGhpcywgYS5mKTtcclxuICAgIHRoaXMuaiA9IGEuajtcclxuICAgIFFjKHRoaXMsIGEuYyk7XHJcbiAgICBSYyh0aGlzLCBhLmgpO1xyXG4gICAgdGhpcy5nID0gYS5nO1xyXG4gICAgYiA9IGEuYjtcclxuICAgIHZhciBjID0gbmV3IFU7XHJcbiAgICBjLmMgPSBiLmM7XHJcbiAgICBiLmEgJiYgKGMuYSA9IG5ldyBSKGIuYSksIGMuYiA9IGIuYik7XHJcbiAgICBTYyh0aGlzLCBjKTtcclxuICAgIHRoaXMuaSA9IGEuaTtcclxufVxyXG5lbHNlXHJcbiAgICBhICYmIChjID0gU3RyaW5nKGEpLm1hdGNoKE5jKSkgPyAodGhpcy5hID0gISFiLCBQYyh0aGlzLCBjWzFdIHx8IFwiXCIsICEwKSwgdGhpcy5qID0gVGMoY1syXSB8fCBcIlwiKSwgUWModGhpcywgY1szXSB8fCBcIlwiLCAhMCksIFJjKHRoaXMsIGNbNF0pLCB0aGlzLmcgPSBUYyhjWzVdIHx8IFwiXCIsICEwKSwgU2ModGhpcywgY1s2XSB8fCBcIlwiLCAhMCksIHRoaXMuaSA9IFRjKGNbN10gfHwgXCJcIikpIDogKHRoaXMuYSA9ICEhYiwgdGhpcy5iID0gbmV3IFUobnVsbCwgdGhpcy5hKSk7IH1cclxuVC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7IHZhciBhID0gW10sIGIgPSB0aGlzLmY7IGIgJiYgYS5wdXNoKFVjKGIsIFZjLCAhMCksIFwiOlwiKTsgdmFyIGMgPSB0aGlzLmM7IGlmIChjIHx8IFwiZmlsZVwiID09IGIpXHJcbiAgICBhLnB1c2goXCIvL1wiKSwgKGIgPSB0aGlzLmopICYmIGEucHVzaChVYyhiLCBWYywgITApLCBcIkBcIiksIGEucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIFwiJSQxXCIpKSwgYyA9IHRoaXMuaCwgbnVsbCAhPSBjICYmIGEucHVzaChcIjpcIiwgU3RyaW5nKGMpKTsgaWYgKGMgPSB0aGlzLmcpXHJcbiAgICB0aGlzLmMgJiYgXCIvXCIgIT0gYy5jaGFyQXQoMCkgJiYgYS5wdXNoKFwiL1wiKSwgYS5wdXNoKFVjKGMsIFwiL1wiID09IGMuY2hhckF0KDApID8gV2MgOiBYYywgITApKTsgKGMgPSB0aGlzLmIudG9TdHJpbmcoKSkgJiYgYS5wdXNoKFwiP1wiLCBjKTsgKGMgPSB0aGlzLmkpICYmIGEucHVzaChcIiNcIiwgVWMoYywgWWMpKTsgcmV0dXJuIGEuam9pbihcIlwiKTsgfTtcclxuZnVuY3Rpb24gTChhKSB7IHJldHVybiBuZXcgVChhKTsgfVxyXG5mdW5jdGlvbiBQYyhhLCBiLCBjKSB7IGEuZiA9IGMgPyBUYyhiLCAhMCkgOiBiOyBhLmYgJiYgKGEuZiA9IGEuZi5yZXBsYWNlKC86JC8sIFwiXCIpKTsgfVxyXG5mdW5jdGlvbiBRYyhhLCBiLCBjKSB7IGEuYyA9IGMgPyBUYyhiLCAhMCkgOiBiOyB9XHJcbmZ1bmN0aW9uIFJjKGEsIGIpIHsgaWYgKGIpIHtcclxuICAgIGIgPSBOdW1iZXIoYik7XHJcbiAgICBpZiAoaXNOYU4oYikgfHwgMCA+IGIpXHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJCYWQgcG9ydCBudW1iZXIgXCIgKyBiKTtcclxuICAgIGEuaCA9IGI7XHJcbn1cclxuZWxzZVxyXG4gICAgYS5oID0gbnVsbDsgfVxyXG5mdW5jdGlvbiBTYyhhLCBiLCBjKSB7IGIgaW5zdGFuY2VvZiBVID8gKGEuYiA9IGIsIFpjKGEuYiwgYS5hKSkgOiAoYyB8fCAoYiA9IFVjKGIsICRjKSksIGEuYiA9IG5ldyBVKGIsIGEuYSkpOyB9XHJcbmZ1bmN0aW9uIFEoYSwgYiwgYykgeyBhLmIuc2V0KGIsIGMpOyB9XHJcbmZ1bmN0aW9uIGxjKGEpIHsgUShhLCBcInp4XCIsIE1hdGguZmxvb3IoMjE0NzQ4MzY0OCAqIE1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KSArIE1hdGguYWJzKE1hdGguZmxvb3IoMjE0NzQ4MzY0OCAqIE1hdGgucmFuZG9tKCkpIF4gcSgpKS50b1N0cmluZygzNikpOyByZXR1cm4gYTsgfVxyXG5mdW5jdGlvbiBhZChhKSB7IHJldHVybiBhIGluc3RhbmNlb2YgVCA/IEwoYSkgOiBuZXcgVChhLCB2b2lkIDApOyB9XHJcbmZ1bmN0aW9uIGJkKGEsIGIsIGMsIGQpIHsgdmFyIGUgPSBuZXcgVChudWxsLCB2b2lkIDApOyBhICYmIFBjKGUsIGEpOyBiICYmIFFjKGUsIGIpOyBjICYmIFJjKGUsIGMpOyBkICYmIChlLmcgPSBkKTsgcmV0dXJuIGU7IH1cclxuZnVuY3Rpb24gVGMoYSwgYikgeyByZXR1cm4gYSA/IGIgPyBkZWNvZGVVUkkoYS5yZXBsYWNlKC8lMjUvZywgXCIlMjUyNVwiKSkgOiBkZWNvZGVVUklDb21wb25lbnQoYSkgOiBcIlwiOyB9XHJcbmZ1bmN0aW9uIFVjKGEsIGIsIGMpIHsgcmV0dXJuIFwic3RyaW5nXCIgPT09IHR5cGVvZiBhID8gKGEgPSBlbmNvZGVVUkkoYSkucmVwbGFjZShiLCBjZCksIGMgJiYgKGEgPSBhLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywgXCIlJDFcIikpLCBhKSA6IG51bGw7IH1cclxuZnVuY3Rpb24gY2QoYSkgeyBhID0gYS5jaGFyQ29kZUF0KDApOyByZXR1cm4gXCIlXCIgKyAoYSA+PiA0ICYgMTUpLnRvU3RyaW5nKDE2KSArIChhICYgMTUpLnRvU3RyaW5nKDE2KTsgfVxyXG52YXIgVmMgPSAvWyNcXC9cXD9AXS9nLCBYYyA9IC9bI1xcPzpdL2csIFdjID0gL1sjXFw/XS9nLCAkYyA9IC9bI1xcP0BdL2csIFljID0gLyMvZztcclxuZnVuY3Rpb24gVShhLCBiKSB7IHRoaXMuYiA9IHRoaXMuYSA9IG51bGw7IHRoaXMuYyA9IGEgfHwgbnVsbDsgdGhpcy5mID0gISFiOyB9XHJcbmZ1bmN0aW9uIFYoYSkgeyBhLmEgfHwgKGEuYSA9IG5ldyBSLCBhLmIgPSAwLCBhLmMgJiYgT2MoYS5jLCBmdW5jdGlvbiAoYiwgYykgeyBhLmFkZChkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKSwgYyk7IH0pKTsgfVxyXG5nID0gVS5wcm90b3R5cGU7XHJcbmcuYWRkID0gZnVuY3Rpb24gKGEsIGIpIHsgVih0aGlzKTsgdGhpcy5jID0gbnVsbDsgYSA9IFcodGhpcywgYSk7IHZhciBjID0gdGhpcy5hLmdldChhKTsgYyB8fCB0aGlzLmEuc2V0KGEsIGMgPSBbXSk7IGMucHVzaChiKTsgdGhpcy5iICs9IDE7IHJldHVybiB0aGlzOyB9O1xyXG5mdW5jdGlvbiBkZChhLCBiKSB7IFYoYSk7IGIgPSBXKGEsIGIpOyBTKGEuYS5iLCBiKSAmJiAoYS5jID0gbnVsbCwgYS5iIC09IGEuYS5nZXQoYikubGVuZ3RoLCBhID0gYS5hLCBTKGEuYiwgYikgJiYgKGRlbGV0ZSBhLmJbYl0sIGEuYy0tLCBhLmEubGVuZ3RoID4gMiAqIGEuYyAmJiBNYyhhKSkpOyB9XHJcbmZ1bmN0aW9uIGVkKGEsIGIpIHsgVihhKTsgYiA9IFcoYSwgYik7IHJldHVybiBTKGEuYS5iLCBiKTsgfVxyXG5nLmZvckVhY2ggPSBmdW5jdGlvbiAoYSwgYikgeyBWKHRoaXMpOyB0aGlzLmEuZm9yRWFjaChmdW5jdGlvbiAoYywgZCkgeyBvYShjLCBmdW5jdGlvbiAoZSkgeyBhLmNhbGwoYiwgZSwgZCwgdGhpcyk7IH0sIHRoaXMpOyB9LCB0aGlzKTsgfTtcclxuZy5MID0gZnVuY3Rpb24gKCkgeyBWKHRoaXMpOyBmb3IgKHZhciBhID0gdGhpcy5hLksoKSwgYiA9IHRoaXMuYS5MKCksIGMgPSBbXSwgZCA9IDA7IGQgPCBiLmxlbmd0aDsgZCsrKVxyXG4gICAgZm9yICh2YXIgZSA9IGFbZF0sIGYgPSAwOyBmIDwgZS5sZW5ndGg7IGYrKylcclxuICAgICAgICBjLnB1c2goYltkXSk7IHJldHVybiBjOyB9O1xyXG5nLksgPSBmdW5jdGlvbiAoYSkgeyBWKHRoaXMpOyB2YXIgYiA9IFtdOyBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGEpXHJcbiAgICBlZCh0aGlzLCBhKSAmJiAoYiA9IHJhKGIsIHRoaXMuYS5nZXQoVyh0aGlzLCBhKSkpKTtcclxuZWxzZSB7XHJcbiAgICBhID0gdGhpcy5hLksoKTtcclxuICAgIGZvciAodmFyIGMgPSAwOyBjIDwgYS5sZW5ndGg7IGMrKylcclxuICAgICAgICBiID0gcmEoYiwgYVtjXSk7XHJcbn0gcmV0dXJuIGI7IH07XHJcbmcuc2V0ID0gZnVuY3Rpb24gKGEsIGIpIHsgVih0aGlzKTsgdGhpcy5jID0gbnVsbDsgYSA9IFcodGhpcywgYSk7IGVkKHRoaXMsIGEpICYmICh0aGlzLmIgLT0gdGhpcy5hLmdldChhKS5sZW5ndGgpOyB0aGlzLmEuc2V0KGEsIFtiXSk7IHRoaXMuYiArPSAxOyByZXR1cm4gdGhpczsgfTtcclxuZy5nZXQgPSBmdW5jdGlvbiAoYSwgYikgeyBpZiAoIWEpXHJcbiAgICByZXR1cm4gYjsgYSA9IHRoaXMuSyhhKTsgcmV0dXJuIDAgPCBhLmxlbmd0aCA/IFN0cmluZyhhWzBdKSA6IGI7IH07XHJcbmZ1bmN0aW9uIG5jKGEsIGIsIGMpIHsgZGQoYSwgYik7IDAgPCBjLmxlbmd0aCAmJiAoYS5jID0gbnVsbCwgYS5hLnNldChXKGEsIGIpLCBzYShjKSksIGEuYiArPSBjLmxlbmd0aCk7IH1cclxuZy50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsgaWYgKHRoaXMuYylcclxuICAgIHJldHVybiB0aGlzLmM7IGlmICghdGhpcy5hKVxyXG4gICAgcmV0dXJuIFwiXCI7IGZvciAodmFyIGEgPSBbXSwgYiA9IHRoaXMuYS5MKCksIGMgPSAwOyBjIDwgYi5sZW5ndGg7IGMrKykge1xyXG4gICAgdmFyIGQgPSBiW2NdLCBlID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSk7XHJcbiAgICBkID0gdGhpcy5LKGQpO1xyXG4gICAgZm9yICh2YXIgZiA9IDA7IGYgPCBkLmxlbmd0aDsgZisrKSB7XHJcbiAgICAgICAgdmFyIGggPSBlO1xyXG4gICAgICAgIFwiXCIgIT09IGRbZl0gJiYgKGggKz0gXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGRbZl0pKSk7XHJcbiAgICAgICAgYS5wdXNoKGgpO1xyXG4gICAgfVxyXG59IHJldHVybiB0aGlzLmMgPSBhLmpvaW4oXCImXCIpOyB9O1xyXG5mdW5jdGlvbiBXKGEsIGIpIHsgYiA9IFN0cmluZyhiKTsgYS5mICYmIChiID0gYi50b0xvd2VyQ2FzZSgpKTsgcmV0dXJuIGI7IH1cclxuZnVuY3Rpb24gWmMoYSwgYikgeyBiICYmICFhLmYgJiYgKFYoYSksIGEuYyA9IG51bGwsIGEuYS5mb3JFYWNoKGZ1bmN0aW9uIChjLCBkKSB7IHZhciBlID0gZC50b0xvd2VyQ2FzZSgpOyBkICE9IGUgJiYgKGRkKHRoaXMsIGQpLCBuYyh0aGlzLCBlLCBjKSk7IH0sIGEpKTsgYS5mID0gYjsgfVxyXG5mdW5jdGlvbiBmZChhLCBiKSB7IHRoaXMuYiA9IGE7IHRoaXMuYSA9IGI7IH1cclxuZnVuY3Rpb24gZ2QoYSkgeyB0aGlzLmcgPSBhIHx8IGhkOyBrLlBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyA/IChhID0gay5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKSwgYSA9IDAgPCBhLmxlbmd0aCAmJiAoXCJocVwiID09IGFbMF0ubmV4dEhvcFByb3RvY29sIHx8IFwiaDJcIiA9PSBhWzBdLm5leHRIb3BQcm90b2NvbCkpIDogYSA9ICEhKGsuaWEgJiYgay5pYS55YSAmJiBrLmlhLnlhKCkgJiYgay5pYS55YSgpLnFiKTsgdGhpcy5mID0gYSA/IHRoaXMuZyA6IDE7IHRoaXMuYSA9IG51bGw7IDEgPCB0aGlzLmYgJiYgKHRoaXMuYSA9IG5ldyBTZXQpOyB0aGlzLmIgPSBudWxsOyB0aGlzLmMgPSBbXTsgfVxyXG52YXIgaGQgPSAxMDtcclxuZnVuY3Rpb24gaWQoYSkgeyByZXR1cm4gYS5iID8gITAgOiBhLmEgPyBhLmEuc2l6ZSA+PSBhLmYgOiAhMTsgfVxyXG5mdW5jdGlvbiBEYyhhKSB7IHJldHVybiBhLmIgPyAxIDogYS5hID8gYS5hLnNpemUgOiAwOyB9XHJcbmZ1bmN0aW9uIHpjKGEsIGIpIHsgcmV0dXJuIGEuYiA/IGEuYiA9PSBiIDogYS5hID8gYS5hLmhhcyhiKSA6ICExOyB9XHJcbmZ1bmN0aW9uIEVjKGEsIGIpIHsgYS5hID8gYS5hLmFkZChiKSA6IGEuYiA9IGI7IH1cclxuZnVuY3Rpb24gR2MoYSwgYikgeyBhLmIgJiYgYS5iID09IGIgPyBhLmIgPSBudWxsIDogYS5hICYmIGEuYS5oYXMoYikgJiYgYS5hLmRlbGV0ZShiKTsgfVxyXG5nZC5wcm90b3R5cGUuY2FuY2VsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGVfMSwgX2E7XHJcbiAgICB0aGlzLmMgPSBqZCh0aGlzKTtcclxuICAgIGlmICh0aGlzLmIpXHJcbiAgICAgICAgdGhpcy5iLmNhbmNlbCgpLCB0aGlzLmIgPSBudWxsO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hICYmIDAgIT09IHRoaXMuYS5zaXplKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyh0aGlzLmEudmFsdWVzKCkpLCBfYyA9IF9iLm5leHQoKTsgIV9jLmRvbmU7IF9jID0gX2IubmV4dCgpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYSA9IF9jLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgYS5jYW5jZWwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZV8xXzEpIHsgZV8xID0geyBlcnJvcjogZV8xXzEgfTsgfVxyXG4gICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkgeyBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hLmNsZWFyKCk7XHJcbiAgICB9XHJcbn07XHJcbmZ1bmN0aW9uIGpkKGEpIHtcclxuICAgIHZhciBlXzIsIF9hO1xyXG4gICAgaWYgKG51bGwgIT0gYS5iKVxyXG4gICAgICAgIHJldHVybiBhLmMuY29uY2F0KGEuYi5zKTtcclxuICAgIGlmIChudWxsICE9IGEuYSAmJiAwICE9PSBhLmEuc2l6ZSkge1xyXG4gICAgICAgIHZhciBiID0gYS5jO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9iID0gX192YWx1ZXMoYS5hLnZhbHVlcygpKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGMgPSBfYy52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGIgPSBiLmNvbmNhdChjLnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlXzJfMSkgeyBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OyB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2MgJiYgIV9jLmRvbmUgJiYgKF9hID0gX2IucmV0dXJuKSkgX2EuY2FsbChfYik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYjtcclxuICAgIH1cclxuICAgIHJldHVybiBzYShhLmMpO1xyXG59XHJcbmZ1bmN0aW9uIGtkKCkgeyB9XHJcbmtkLnByb3RvdHlwZS5zdHJpbmdpZnkgPSBmdW5jdGlvbiAoYSkgeyByZXR1cm4gay5KU09OLnN0cmluZ2lmeShhLCB2b2lkIDApOyB9O1xyXG5rZC5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoYSkgeyByZXR1cm4gay5KU09OLnBhcnNlKGEsIHZvaWQgMCk7IH07XHJcbmZ1bmN0aW9uIGxkKCkgeyB0aGlzLmEgPSBuZXcga2Q7IH1cclxuZnVuY3Rpb24gbWQoYSwgYiwgYykgeyB2YXIgZCA9IGMgfHwgXCJcIjsgdHJ5IHtcclxuICAgIExjKGEsIGZ1bmN0aW9uIChlLCBmKSB7IHZhciBoID0gZTsgbihlKSAmJiAoaCA9IHZiKGUpKTsgYi5wdXNoKGQgKyBmICsgXCI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoaCkpOyB9KTtcclxufVxyXG5jYXRjaCAoZSkge1xyXG4gICAgdGhyb3cgYi5wdXNoKGQgKyBcInR5cGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoXCJfYmFkbWFwXCIpKSwgZTtcclxufSB9XHJcbmZ1bmN0aW9uIG5kKGEsIGIpIHsgdmFyIGMgPSBuZXcgUGI7IGlmIChrLkltYWdlKSB7XHJcbiAgICB2YXIgZCA9IG5ldyBJbWFnZTtcclxuICAgIGQub25sb2FkID0ga2Eob2QsIGMsIGQsIFwiVGVzdExvYWRJbWFnZTogbG9hZGVkXCIsICEwLCBiKTtcclxuICAgIGQub25lcnJvciA9IGthKG9kLCBjLCBkLCBcIlRlc3RMb2FkSW1hZ2U6IGVycm9yXCIsICExLCBiKTtcclxuICAgIGQub25hYm9ydCA9IGthKG9kLCBjLCBkLCBcIlRlc3RMb2FkSW1hZ2U6IGFib3J0XCIsICExLCBiKTtcclxuICAgIGQub250aW1lb3V0ID0ga2Eob2QsIGMsIGQsIFwiVGVzdExvYWRJbWFnZTogdGltZW91dFwiLCAhMSwgYik7XHJcbiAgICBrLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBpZiAoZC5vbnRpbWVvdXQpXHJcbiAgICAgICAgZC5vbnRpbWVvdXQoKTsgfSwgMUU0KTtcclxuICAgIGQuc3JjID0gYTtcclxufVxyXG5lbHNlXHJcbiAgICBiKCExKTsgfVxyXG5mdW5jdGlvbiBvZChhLCBiLCBjLCBkLCBlKSB7IHRyeSB7XHJcbiAgICBiLm9ubG9hZCA9IG51bGwsIGIub25lcnJvciA9IG51bGwsIGIub25hYm9ydCA9IG51bGwsIGIub250aW1lb3V0ID0gbnVsbCwgZShkKTtcclxufVxyXG5jYXRjaCAoZikgeyB9IH1cclxudmFyIHBkID0gay5KU09OLnBhcnNlO1xyXG5mdW5jdGlvbiBYKGEpIHsgRC5jYWxsKHRoaXMpOyB0aGlzLmhlYWRlcnMgPSBuZXcgUjsgdGhpcy5IID0gYSB8fCBudWxsOyB0aGlzLmIgPSAhMTsgdGhpcy5zID0gdGhpcy5hID0gbnVsbDsgdGhpcy5CID0gXCJcIjsgdGhpcy5oID0gMDsgdGhpcy5mID0gXCJcIjsgdGhpcy5nID0gdGhpcy5BID0gdGhpcy5sID0gdGhpcy51ID0gITE7IHRoaXMubyA9IDA7IHRoaXMubSA9IG51bGw7IHRoaXMuSSA9IHFkOyB0aGlzLkQgPSB0aGlzLkYgPSAhMTsgfVxyXG5yKFgsIEQpO1xyXG52YXIgcWQgPSBcIlwiLCByZCA9IC9eaHR0cHM/JC9pLCBzZCA9IFtcIlBPU1RcIiwgXCJQVVRcIl07XHJcbmcgPSBYLnByb3RvdHlwZTtcclxuZy5iYSA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XHJcbiAgICBpZiAodGhpcy5hKVxyXG4gICAgICAgIHRocm93IEVycm9yKFwiW2dvb2cubmV0LlhocklvXSBPYmplY3QgaXMgYWN0aXZlIHdpdGggYW5vdGhlciByZXF1ZXN0PVwiICsgdGhpcy5CICsgXCI7IG5ld1VyaT1cIiArIGEpO1xyXG4gICAgYiA9IGIgPyBiLnRvVXBwZXJDYXNlKCkgOiBcIkdFVFwiO1xyXG4gICAgdGhpcy5CID0gYTtcclxuICAgIHRoaXMuZiA9IFwiXCI7XHJcbiAgICB0aGlzLmggPSAwO1xyXG4gICAgdGhpcy51ID0gITE7XHJcbiAgICB0aGlzLmIgPSAhMDtcclxuICAgIHRoaXMuYSA9IG5ldyBYTUxIdHRwUmVxdWVzdDtcclxuICAgIHRoaXMucyA9IHRoaXMuSCA/IGJjKHRoaXMuSCkgOiBiYyhmYyk7XHJcbiAgICB0aGlzLmEub25yZWFkeXN0YXRlY2hhbmdlID0gcCh0aGlzLnphLCB0aGlzKTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5BID0gITAsIHRoaXMuYS5vcGVuKGIsIFN0cmluZyhhKSwgITApLCB0aGlzLkEgPSAhMTtcclxuICAgIH1cclxuICAgIGNhdGNoIChmKSB7XHJcbiAgICAgICAgdGQodGhpcywgZik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgYSA9IGMgfHwgXCJcIjtcclxuICAgIHZhciBlID0gbmV3IFIodGhpcy5oZWFkZXJzKTtcclxuICAgIGQgJiYgTGMoZCwgZnVuY3Rpb24gKGYsIGgpIHsgZS5zZXQoaCwgZik7IH0pO1xyXG4gICAgZCA9IHBhKGUuTCgpKTtcclxuICAgIGMgPSBrLkZvcm1EYXRhICYmIGEgaW5zdGFuY2VvZiBrLkZvcm1EYXRhO1xyXG4gICAgISgwIDw9XHJcbiAgICAgICAgbmEoc2QsIGIpKSB8fCBkIHx8IGMgfHwgZS5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOFwiKTtcclxuICAgIGUuZm9yRWFjaChmdW5jdGlvbiAoZiwgaCkgeyB0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcihoLCBmKTsgfSwgdGhpcyk7XHJcbiAgICB0aGlzLkkgJiYgKHRoaXMuYS5yZXNwb25zZVR5cGUgPSB0aGlzLkkpO1xyXG4gICAgXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB0aGlzLmEgJiYgdGhpcy5hLndpdGhDcmVkZW50aWFscyAhPT0gdGhpcy5GICYmICh0aGlzLmEud2l0aENyZWRlbnRpYWxzID0gdGhpcy5GKTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdWQodGhpcyksIDAgPCB0aGlzLm8gJiYgKCh0aGlzLkQgPSB2ZCh0aGlzLmEpKSA/ICh0aGlzLmEudGltZW91dCA9IHRoaXMubywgdGhpcy5hLm9udGltZW91dCA9IHAodGhpcy54YSwgdGhpcykpIDogdGhpcy5tID0gSmIodGhpcy54YSwgdGhpcy5vLCB0aGlzKSksIHRoaXMubCA9ICEwLCB0aGlzLmEuc2VuZChhKSwgdGhpcy5sID0gITE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZikge1xyXG4gICAgICAgIHRkKHRoaXMsIGYpO1xyXG4gICAgfVxyXG59O1xyXG5mdW5jdGlvbiB2ZChhKSB7IHJldHVybiB4ICYmIFJhKDkpICYmIFwibnVtYmVyXCIgPT09IHR5cGVvZiBhLnRpbWVvdXQgJiYgdm9pZCAwICE9PSBhLm9udGltZW91dDsgfVxyXG5mdW5jdGlvbiBxYShhKSB7IHJldHVybiBcImNvbnRlbnQtdHlwZVwiID09IGEudG9Mb3dlckNhc2UoKTsgfVxyXG5nLnhhID0gZnVuY3Rpb24gKCkgeyBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBnb29nICYmIHRoaXMuYSAmJiAodGhpcy5mID0gXCJUaW1lZCBvdXQgYWZ0ZXIgXCIgKyB0aGlzLm8gKyBcIm1zLCBhYm9ydGluZ1wiLCB0aGlzLmggPSA4LCB0aGlzLmRpc3BhdGNoRXZlbnQoXCJ0aW1lb3V0XCIpLCB0aGlzLmFib3J0KDgpKTsgfTtcclxuZnVuY3Rpb24gdGQoYSwgYikgeyBhLmIgPSAhMTsgYS5hICYmIChhLmcgPSAhMCwgYS5hLmFib3J0KCksIGEuZyA9ICExKTsgYS5mID0gYjsgYS5oID0gNTsgd2QoYSk7IHhkKGEpOyB9XHJcbmZ1bmN0aW9uIHdkKGEpIHsgYS51IHx8IChhLnUgPSAhMCwgYS5kaXNwYXRjaEV2ZW50KFwiY29tcGxldGVcIiksIGEuZGlzcGF0Y2hFdmVudChcImVycm9yXCIpKTsgfVxyXG5nLmFib3J0ID0gZnVuY3Rpb24gKGEpIHsgdGhpcy5hICYmIHRoaXMuYiAmJiAodGhpcy5iID0gITEsIHRoaXMuZyA9ICEwLCB0aGlzLmEuYWJvcnQoKSwgdGhpcy5nID0gITEsIHRoaXMuaCA9IGEgfHwgNywgdGhpcy5kaXNwYXRjaEV2ZW50KFwiY29tcGxldGVcIiksIHRoaXMuZGlzcGF0Y2hFdmVudChcImFib3J0XCIpLCB4ZCh0aGlzKSk7IH07XHJcbmcuRyA9IGZ1bmN0aW9uICgpIHsgdGhpcy5hICYmICh0aGlzLmIgJiYgKHRoaXMuYiA9ICExLCB0aGlzLmcgPSAhMCwgdGhpcy5hLmFib3J0KCksIHRoaXMuZyA9ICExKSwgeGQodGhpcywgITApKTsgWC5TLkcuY2FsbCh0aGlzKTsgfTtcclxuZy56YSA9IGZ1bmN0aW9uICgpIHsgdGhpcy5qIHx8ICh0aGlzLkEgfHwgdGhpcy5sIHx8IHRoaXMuZyA/IHlkKHRoaXMpIDogdGhpcy5UYSgpKTsgfTtcclxuZy5UYSA9IGZ1bmN0aW9uICgpIHsgeWQodGhpcyk7IH07XHJcbmZ1bmN0aW9uIHlkKGEpIHtcclxuICAgIGlmIChhLmIgJiYgXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgZ29vZyAmJiAoIWEuc1sxXSB8fCA0ICE9IE4oYSkgfHwgMiAhPSBhLlgoKSkpXHJcbiAgICAgICAgaWYgKGEubCAmJiA0ID09IE4oYSkpXHJcbiAgICAgICAgICAgIEpiKGEuemEsIDAsIGEpO1xyXG4gICAgICAgIGVsc2UgaWYgKGEuZGlzcGF0Y2hFdmVudChcInJlYWR5c3RhdGVjaGFuZ2VcIiksIDQgPT0gTihhKSkge1xyXG4gICAgICAgICAgICBhLmIgPSAhMTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciBiID0gYS5YKCk7XHJcbiAgICAgICAgICAgICAgICBhOiBzd2l0Y2ggKGIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMTpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwMjpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwNDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDIwNjpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDMwNDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDEyMjM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gITA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogYyA9ICExO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShkID0gYykpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSA9IDAgPT09IGIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBTdHJpbmcoYS5CKS5tYXRjaChOYylbMV0gfHwgbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmICYmIGsuc2VsZiAmJiBrLnNlbGYubG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoID0gay5zZWxmLmxvY2F0aW9uLnByb3RvY29sO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGguc3Vic3RyKDAsIGgubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZSA9ICFyZC50ZXN0KGYgPyBmLnRvTG93ZXJDYXNlKCkgOiBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZCA9IGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZClcclxuICAgICAgICAgICAgICAgICAgICBhLmRpc3BhdGNoRXZlbnQoXCJjb21wbGV0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kaXNwYXRjaEV2ZW50KFwic3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGEuaCA9IDY7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG0gPSAyIDwgTihhKSA/IGEuYS5zdGF0dXNUZXh0IDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGEuZiA9IG0gKyBcIiBbXCIgKyBhLlgoKSArIFwiXVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHdkKGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgeGQoYSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbn1cclxuZnVuY3Rpb24geGQoYSwgYikgeyBpZiAoYS5hKSB7XHJcbiAgICB1ZChhKTtcclxuICAgIHZhciBjID0gYS5hLCBkID0gYS5zWzBdID8gYWEgOiBudWxsO1xyXG4gICAgYS5hID0gbnVsbDtcclxuICAgIGEucyA9IG51bGw7XHJcbiAgICBiIHx8IGEuZGlzcGF0Y2hFdmVudChcInJlYWR5XCIpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGQ7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkgeyB9XHJcbn0gfVxyXG5mdW5jdGlvbiB1ZChhKSB7IGEuYSAmJiBhLkQgJiYgKGEuYS5vbnRpbWVvdXQgPSBudWxsKTsgYS5tICYmIChrLmNsZWFyVGltZW91dChhLm0pLCBhLm0gPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBOKGEpIHsgcmV0dXJuIGEuYSA/IGEuYS5yZWFkeVN0YXRlIDogMDsgfVxyXG5nLlggPSBmdW5jdGlvbiAoKSB7IHRyeSB7XHJcbiAgICByZXR1cm4gMiA8IE4odGhpcykgPyB0aGlzLmEuc3RhdHVzIDogLTE7XHJcbn1cclxuY2F0Y2ggKGEpIHtcclxuICAgIHJldHVybiAtMTtcclxufSB9O1xyXG5nLiQgPSBmdW5jdGlvbiAoKSB7IHRyeSB7XHJcbiAgICByZXR1cm4gdGhpcy5hID8gdGhpcy5hLnJlc3BvbnNlVGV4dCA6IFwiXCI7XHJcbn1cclxuY2F0Y2ggKGEpIHtcclxuICAgIHJldHVybiBcIlwiO1xyXG59IH07XHJcbmcuTmEgPSBmdW5jdGlvbiAoYSkgeyBpZiAodGhpcy5hKSB7XHJcbiAgICB2YXIgYiA9IHRoaXMuYS5yZXNwb25zZVRleHQ7XHJcbiAgICBhICYmIDAgPT0gYi5pbmRleE9mKGEpICYmIChiID0gYi5zdWJzdHJpbmcoYS5sZW5ndGgpKTtcclxuICAgIHJldHVybiBwZChiKTtcclxufSB9O1xyXG5nLnVhID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5oOyB9O1xyXG5nLlFhID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHRoaXMuZiA/IHRoaXMuZiA6IFN0cmluZyh0aGlzLmYpOyB9O1xyXG5mdW5jdGlvbiB6ZChhKSB7IHZhciBiID0gXCJcIjsgQWEoYSwgZnVuY3Rpb24gKGMsIGQpIHsgYiArPSBkOyBiICs9IFwiOlwiOyBiICs9IGM7IGIgKz0gXCJcXHJcXG5cIjsgfSk7IHJldHVybiBiOyB9XHJcbmZ1bmN0aW9uIEFkKGEsIGIsIGMpIHsgYToge1xyXG4gICAgZm9yIChkIGluIGMpIHtcclxuICAgICAgICB2YXIgZCA9ICExO1xyXG4gICAgICAgIGJyZWFrIGE7XHJcbiAgICB9XHJcbiAgICBkID0gITA7XHJcbn0gZCB8fCAoYyA9IHpkKGMpLCBcInN0cmluZ1wiID09PSB0eXBlb2YgYSA/IChudWxsICE9IGMgJiYgZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSkpIDogUShhLCBiLCBjKSk7IH1cclxuZnVuY3Rpb24gQmQoYSwgYiwgYykgeyByZXR1cm4gYyAmJiBjLmludGVybmFsQ2hhbm5lbFBhcmFtcyA/IGMuaW50ZXJuYWxDaGFubmVsUGFyYW1zW2FdIHx8IGIgOiBiOyB9XHJcbmZ1bmN0aW9uIENkKGEpIHtcclxuICAgIHRoaXMucGEgPSAwO1xyXG4gICAgdGhpcy5nID0gW107XHJcbiAgICB0aGlzLmMgPSBuZXcgUGI7XHJcbiAgICB0aGlzLmdhID0gdGhpcy5sYSA9IHRoaXMuQiA9IHRoaXMuZmEgPSB0aGlzLmEgPSB0aGlzLm5hID0gdGhpcy5BID0gdGhpcy5XID0gdGhpcy5pID0gdGhpcy5PID0gdGhpcy5sID0gbnVsbDtcclxuICAgIHRoaXMuTGEgPSB0aGlzLlIgPSAwO1xyXG4gICAgdGhpcy5JYSA9IEJkKFwiZmFpbEZhc3RcIiwgITEsIGEpO1xyXG4gICAgdGhpcy5IID0gdGhpcy5tID0gdGhpcy5qID0gdGhpcy5oID0gdGhpcy5mID0gbnVsbDtcclxuICAgIHRoaXMuVCA9ICEwO1xyXG4gICAgdGhpcy5JID0gdGhpcy5vYSA9IHRoaXMuUCA9IC0xO1xyXG4gICAgdGhpcy5VID0gdGhpcy5vID0gdGhpcy51ID0gMDtcclxuICAgIHRoaXMuRmEgPSBCZChcImJhc2VSZXRyeURlbGF5TXNcIiwgNUUzLCBhKTtcclxuICAgIHRoaXMuTWEgPSBCZChcInJldHJ5RGVsYXlTZWVkTXNcIiwgMUU0LCBhKTtcclxuICAgIHRoaXMuSmEgPSBCZChcImZvcndhcmRDaGFubmVsTWF4UmV0cmllc1wiLCAyLCBhKTtcclxuICAgIHRoaXMubWEgPSBCZChcImZvcndhcmRDaGFubmVsUmVxdWVzdFRpbWVvdXRNc1wiLCAyRTQsIGEpO1xyXG4gICAgdGhpcy5LYSA9IGEgJiYgYS5nIHx8IHZvaWQgMDtcclxuICAgIHRoaXMuRCA9IHZvaWQgMDtcclxuICAgIHRoaXMuQyA9IGEgJiYgYS5zdXBwb3J0c0Nyb3NzRG9tYWluWGhyIHx8XHJcbiAgICAgICAgITE7XHJcbiAgICB0aGlzLkogPSBcIlwiO1xyXG4gICAgdGhpcy5iID0gbmV3IGdkKGEgJiYgYS5jb25jdXJyZW50UmVxdWVzdExpbWl0KTtcclxuICAgIHRoaXMua2EgPSBuZXcgbGQ7XHJcbiAgICB0aGlzLmRhID0gYSAmJiBhLmZhc3RIYW5kc2hha2UgfHwgITE7XHJcbiAgICB0aGlzLkdhID0gYSAmJiBhLmIgfHwgITE7XHJcbiAgICBhICYmIGEuZiAmJiAodGhpcy5jLmEgPSAhMSk7XHJcbiAgICBhICYmIGEuZm9yY2VMb25nUG9sbGluZyAmJiAodGhpcy5UID0gITEpO1xyXG4gICAgdGhpcy5WID0gIXRoaXMuZGEgJiYgdGhpcy5UICYmIGEgJiYgYS5jIHx8ICExO1xyXG4gICAgdGhpcy5lYSA9IHZvaWQgMDtcclxuICAgIHRoaXMuTiA9IDA7XHJcbiAgICB0aGlzLkYgPSAhMTtcclxuICAgIHRoaXMucyA9IG51bGw7XHJcbn1cclxuZyA9IENkLnByb3RvdHlwZTtcclxuZy5oYSA9IDg7XHJcbmcudiA9IDE7XHJcbmZ1bmN0aW9uIEpjKGEpIHsgRGQoYSk7IGlmICgzID09IGEudikge1xyXG4gICAgdmFyIGIgPSBhLlIrKywgYyA9IEwoYS5CKTtcclxuICAgIFEoYywgXCJTSURcIiwgYS5KKTtcclxuICAgIFEoYywgXCJSSURcIiwgYik7XHJcbiAgICBRKGMsIFwiVFlQRVwiLCBcInRlcm1pbmF0ZVwiKTtcclxuICAgIEVkKGEsIGMpO1xyXG4gICAgYiA9IG5ldyBLKGEsIGEuYywgYiwgdm9pZCAwKTtcclxuICAgIGIuSCA9IDI7XHJcbiAgICBiLmkgPSBsYyhMKGMpKTtcclxuICAgIGMgPSAhMTtcclxuICAgIGsubmF2aWdhdG9yICYmIGsubmF2aWdhdG9yLnNlbmRCZWFjb24gJiYgKGMgPSBrLm5hdmlnYXRvci5zZW5kQmVhY29uKGIuaS50b1N0cmluZygpLCBcIlwiKSk7XHJcbiAgICAhYyAmJiBrLkltYWdlICYmICgobmV3IEltYWdlKS5zcmMgPSBiLmksIGMgPSAhMCk7XHJcbiAgICBjIHx8IChiLmEgPSBvYyhiLmcsIG51bGwpLCBiLmEuYmEoYi5pKSk7XHJcbiAgICBiLnUgPSBxKCk7XHJcbiAgICBNKGIpO1xyXG59IEZkKGEpOyB9XHJcbmZ1bmN0aW9uIEJjKGEpIHsgYS5hICYmICh4YyhhKSwgYS5hLmNhbmNlbCgpLCBhLmEgPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBEZChhKSB7IEJjKGEpOyBhLmogJiYgKGsuY2xlYXJUaW1lb3V0KGEuaiksIGEuaiA9IG51bGwpOyBBYyhhKTsgYS5iLmNhbmNlbCgpOyBhLmggJiYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiBhLmggJiYgay5jbGVhclRpbWVvdXQoYS5oKSwgYS5oID0gbnVsbCk7IH1cclxuZnVuY3Rpb24gR2QoYSwgYikgeyBhLmcucHVzaChuZXcgZmQoYS5MYSsrLCBiKSk7IDMgPT0gYS52ICYmIEljKGEpOyB9XHJcbmZ1bmN0aW9uIEljKGEpIHsgaWQoYS5iKSB8fCBhLmggfHwgKGEuaCA9ICEwLCBDYihhLkJhLCBhKSwgYS51ID0gMCk7IH1cclxuZnVuY3Rpb24gSGQoYSwgYikgeyBpZiAoRGMoYS5iKSA+PSBhLmIuZiAtIChhLmggPyAxIDogMCkpXHJcbiAgICByZXR1cm4gITE7IGlmIChhLmgpXHJcbiAgICByZXR1cm4gYS5nID0gYi5zLmNvbmNhdChhLmcpLCAhMDsgaWYgKDEgPT0gYS52IHx8IDIgPT0gYS52IHx8IGEudSA+PSAoYS5JYSA/IDAgOiBhLkphKSlcclxuICAgIHJldHVybiAhMTsgYS5oID0gSShwKGEuQmEsIGEsIGIpLCBJZChhLCBhLnUpKTsgYS51Kys7IHJldHVybiAhMDsgfVxyXG5nLkJhID0gZnVuY3Rpb24gKGEpIHtcclxuICAgIGlmICh0aGlzLmgpXHJcbiAgICAgICAgaWYgKHRoaXMuaCA9IG51bGwsIDEgPT0gdGhpcy52KSB7XHJcbiAgICAgICAgICAgIGlmICghYSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5SID0gTWF0aC5mbG9vcigxRTUgKiBNYXRoLnJhbmRvbSgpKTtcclxuICAgICAgICAgICAgICAgIGEgPSB0aGlzLlIrKztcclxuICAgICAgICAgICAgICAgIHZhciBiID0gbmV3IEsodGhpcywgdGhpcy5jLCBhLCB2b2lkIDApLCBjID0gdGhpcy5sO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5PICYmIChjID8gKGMgPSBCYShjKSwgRGEoYywgdGhpcy5PKSkgOiBjID0gdGhpcy5PKTtcclxuICAgICAgICAgICAgICAgIG51bGwgPT09IHRoaXMuaSAmJiAoYi5CID0gYyk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhKVxyXG4gICAgICAgICAgICAgICAgICAgIGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgZSA9IGQgPSAwOyBlIDwgdGhpcy5nLmxlbmd0aDsgZSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSB0aGlzLmdbZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwiX19kYXRhX19cIiBpbiBmLmEgJiYgKGYgPSBmLmEuX19kYXRhX18sIFwic3RyaW5nXCIgPT09IHR5cGVvZiBmKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gZi5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodm9pZCAwID09PSBmKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZCArPSBmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDQwOTYgPCBkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICg0MDk2ID09PSBkIHx8IGUgPT09IHRoaXMuZy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGUgKyAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZCA9IDFFMztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgZCA9IDFFMztcclxuICAgICAgICAgICAgICAgIGQgPSBKZCh0aGlzLCBiLCBkKTtcclxuICAgICAgICAgICAgICAgIGUgPSBMKHRoaXMuQik7XHJcbiAgICAgICAgICAgICAgICBRKGUsIFwiUklEXCIsIGEpO1xyXG4gICAgICAgICAgICAgICAgUShlLCBcIkNWRVJcIiwgMjIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5BICYmIFEoZSwgXCJYLUhUVFAtU2Vzc2lvbi1JZFwiLCB0aGlzLkEpO1xyXG4gICAgICAgICAgICAgICAgRWQodGhpcywgZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmkgJiYgYyAmJiBBZChlLCB0aGlzLmksIGMpO1xyXG4gICAgICAgICAgICAgICAgRWModGhpcy5iLCBiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuR2EgJiYgUShlLCBcIlRZUEVcIiwgXCJpbml0XCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYSA/IChRKGUsIFwiJHJlcVwiLCBkKSwgUShlLCBcIlNJRFwiLCBcIm51bGxcIiksIGIuViA9ICEwLCBrYyhiLCBlLCBudWxsKSkgOiBrYyhiLCBlLCBkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudiA9IDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAzID09IHRoaXMudiAmJiAoYSA/IEtkKHRoaXMsIGEpIDogMCA9PSB0aGlzLmcubGVuZ3RoIHx8IGlkKHRoaXMuYikgfHwgS2QodGhpcykpO1xyXG59O1xyXG5mdW5jdGlvbiBLZChhLCBiKSB7IHZhciBjOyBiID8gYyA9IGIuZiA6IGMgPSBhLlIrKzsgdmFyIGQgPSBMKGEuQik7IFEoZCwgXCJTSURcIiwgYS5KKTsgUShkLCBcIlJJRFwiLCBjKTsgUShkLCBcIkFJRFwiLCBhLlApOyBFZChhLCBkKTsgYS5pICYmIGEubCAmJiBBZChkLCBhLmksIGEubCk7IGMgPSBuZXcgSyhhLCBhLmMsIGMsIGEudSArIDEpOyBudWxsID09PSBhLmkgJiYgKGMuQiA9IGEubCk7IGIgJiYgKGEuZyA9IGIucy5jb25jYXQoYS5nKSk7IGIgPSBKZChhLCBjLCAxRTMpOyBjLnNldFRpbWVvdXQoTWF0aC5yb3VuZCguNSAqIGEubWEpICsgTWF0aC5yb3VuZCguNSAqIGEubWEgKiBNYXRoLnJhbmRvbSgpKSk7IEVjKGEuYiwgYyk7IGtjKGMsIGQsIGIpOyB9XHJcbmZ1bmN0aW9uIEVkKGEsIGIpIHsgYS5mICYmIExjKHt9LCBmdW5jdGlvbiAoYywgZCkgeyBRKGIsIGQsIGMpOyB9KTsgfVxyXG5mdW5jdGlvbiBKZChhLCBiLCBjKSB7IGMgPSBNYXRoLm1pbihhLmcubGVuZ3RoLCBjKTsgdmFyIGQgPSBhLmYgPyBwKGEuZi5IYSwgYS5mLCBhKSA6IG51bGw7IGE6IGZvciAodmFyIGUgPSBhLmcsIGYgPSAtMTs7KSB7XHJcbiAgICB2YXIgaCA9IFtcImNvdW50PVwiICsgY107XHJcbiAgICAtMSA9PSBmID8gMCA8IGMgPyAoZiA9IGVbMF0uYiwgaC5wdXNoKFwib2ZzPVwiICsgZikpIDogZiA9IDAgOiBoLnB1c2goXCJvZnM9XCIgKyBmKTtcclxuICAgIGZvciAodmFyIG0gPSAhMCwgbCA9IDA7IGwgPCBjOyBsKyspIHtcclxuICAgICAgICB2YXIgdCA9IGVbbF0uYiwgQiA9IGVbbF0uYTtcclxuICAgICAgICB0IC09IGY7XHJcbiAgICAgICAgaWYgKDAgPiB0KVxyXG4gICAgICAgICAgICBmID0gTWF0aC5tYXgoMCwgZVtsXS5iIC0gMTAwKSwgbSA9ICExO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG1kKEIsIGgsIFwicmVxXCIgKyB0ICsgXCJfXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoICh6KSB7XHJcbiAgICAgICAgICAgICAgICBkICYmIGQoQik7XHJcbiAgICAgICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChtKSB7XHJcbiAgICAgICAgZCA9IGguam9pbihcIiZcIik7XHJcbiAgICAgICAgYnJlYWsgYTtcclxuICAgIH1cclxufSBhID0gYS5nLnNwbGljZSgwLCBjKTsgYi5zID0gYTsgcmV0dXJuIGQ7IH1cclxuZnVuY3Rpb24gSGMoYSkgeyBhLmEgfHwgYS5qIHx8IChhLlUgPSAxLCBDYihhLkFhLCBhKSwgYS5vID0gMCk7IH1cclxuZnVuY3Rpb24gQ2MoYSkgeyBpZiAoYS5hIHx8IGEuaiB8fCAzIDw9IGEubylcclxuICAgIHJldHVybiAhMTsgYS5VKys7IGEuaiA9IEkocChhLkFhLCBhKSwgSWQoYSwgYS5vKSk7IGEubysrOyByZXR1cm4gITA7IH1cclxuZy5BYSA9IGZ1bmN0aW9uICgpIHsgdGhpcy5qID0gbnVsbDsgTGQodGhpcyk7IGlmICh0aGlzLlYgJiYgISh0aGlzLkYgfHwgbnVsbCA9PSB0aGlzLmEgfHwgMCA+PSB0aGlzLk4pKSB7XHJcbiAgICB2YXIgYSA9IDIgKiB0aGlzLk47XHJcbiAgICB0aGlzLmMuaW5mbyhcIkJQIGRldGVjdGlvbiB0aW1lciBlbmFibGVkOiBcIiArIGEpO1xyXG4gICAgdGhpcy5zID0gSShwKHRoaXMuU2EsIHRoaXMpLCBhKTtcclxufSB9O1xyXG5nLlNhID0gZnVuY3Rpb24gKCkgeyB0aGlzLnMgJiYgKHRoaXMucyA9IG51bGwsIHRoaXMuYy5pbmZvKFwiQlAgZGV0ZWN0aW9uIHRpbWVvdXQgcmVhY2hlZC5cIiksIHRoaXMuYy5pbmZvKFwiQnVmZmVyaW5nIHByb3h5IGRldGVjdGVkIGFuZCBzd2l0Y2ggdG8gbG9uZy1wb2xsaW5nIVwiKSwgdGhpcy5IID0gITEsIHRoaXMuRiA9ICEwLCBCYyh0aGlzKSwgTGQodGhpcykpOyB9O1xyXG5mdW5jdGlvbiB4YyhhKSB7IG51bGwgIT0gYS5zICYmIChrLmNsZWFyVGltZW91dChhLnMpLCBhLnMgPSBudWxsKTsgfVxyXG5mdW5jdGlvbiBMZChhKSB7IGEuYSA9IG5ldyBLKGEsIGEuYywgXCJycGNcIiwgYS5VKTsgbnVsbCA9PT0gYS5pICYmIChhLmEuQiA9IGEubCk7IGEuYS5PID0gMDsgdmFyIGIgPSBMKGEubGEpOyBRKGIsIFwiUklEXCIsIFwicnBjXCIpOyBRKGIsIFwiU0lEXCIsIGEuSik7IFEoYiwgXCJDSVwiLCBhLkggPyBcIjBcIiA6IFwiMVwiKTsgUShiLCBcIkFJRFwiLCBhLlApOyBFZChhLCBiKTsgUShiLCBcIlRZUEVcIiwgXCJ4bWxodHRwXCIpOyBhLmkgJiYgYS5sICYmIEFkKGIsIGEuaSwgYS5sKTsgYS5EICYmIGEuYS5zZXRUaW1lb3V0KGEuRCk7IHZhciBjID0gYS5hOyBhID0gYS5nYTsgYy5IID0gMTsgYy5pID0gbGMoTChiKSk7IGMuaiA9IG51bGw7IGMuSSA9ICEwOyBtYyhjLCBhKTsgfVxyXG5nLlJhID0gZnVuY3Rpb24gKCkgeyBudWxsICE9IHRoaXMubSAmJiAodGhpcy5tID0gbnVsbCwgQmModGhpcyksIENjKHRoaXMpLCBIKDE5KSk7IH07XHJcbmZ1bmN0aW9uIEFjKGEpIHsgbnVsbCAhPSBhLm0gJiYgKGsuY2xlYXJUaW1lb3V0KGEubSksIGEubSA9IG51bGwpOyB9XHJcbmZ1bmN0aW9uIHVjKGEsIGIpIHsgdmFyIGMgPSBudWxsOyBpZiAoYS5hID09IGIpIHtcclxuICAgIEFjKGEpO1xyXG4gICAgeGMoYSk7XHJcbiAgICBhLmEgPSBudWxsO1xyXG4gICAgdmFyIGQgPSAyO1xyXG59XHJcbmVsc2UgaWYgKHpjKGEuYiwgYikpXHJcbiAgICBjID0gYi5zLCBHYyhhLmIsIGIpLCBkID0gMTtcclxuZWxzZVxyXG4gICAgcmV0dXJuOyBhLkkgPSBiLk47IGlmICgwICE9IGEudilcclxuICAgIGlmIChiLmIpXHJcbiAgICAgICAgaWYgKDEgPT0gZCkge1xyXG4gICAgICAgICAgICBjID0gYi5qID8gYi5qLmxlbmd0aCA6IDA7XHJcbiAgICAgICAgICAgIGIgPSBxKCkgLSBiLnU7XHJcbiAgICAgICAgICAgIHZhciBlID0gYS51O1xyXG4gICAgICAgICAgICBkID0gVmIoKTtcclxuICAgICAgICAgICAgZC5kaXNwYXRjaEV2ZW50KG5ldyBZYihkLCBjLCBiLCBlKSk7XHJcbiAgICAgICAgICAgIEljKGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIEhjKGEpO1xyXG4gICAgZWxzZSBpZiAoZSA9IGIuaCwgMyA9PSBlIHx8IDAgPT0gZSAmJiAwIDwgYS5JIHx8ICEoMSA9PSBkICYmIEhkKGEsIGIpIHx8IDIgPT0gZCAmJiBDYyhhKSkpXHJcbiAgICAgICAgc3dpdGNoIChjICYmIDAgPCBjLmxlbmd0aCAmJiAoYiA9IGEuYiwgYi5jID0gYi5jLmNvbmNhdChjKSksIGUpIHtcclxuICAgICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgICAgICAgUChhLCA1KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgICAgICBQKGEsIDEwKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICBQKGEsIDYpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IFAoYSwgMik7XHJcbiAgICAgICAgfSB9XHJcbmZ1bmN0aW9uIElkKGEsIGIpIHsgdmFyIGMgPSBhLkZhICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYS5NYSk7IGEuZiB8fCAoYyAqPSAyKTsgcmV0dXJuIGMgKiBiOyB9XHJcbmZ1bmN0aW9uIFAoYSwgYikgeyBhLmMuaW5mbyhcIkVycm9yIGNvZGUgXCIgKyBiKTsgaWYgKDIgPT0gYikge1xyXG4gICAgdmFyIGMgPSBudWxsO1xyXG4gICAgYS5mICYmIChjID0gbnVsbCk7XHJcbiAgICB2YXIgZCA9IHAoYS5YYSwgYSk7XHJcbiAgICBjIHx8IChjID0gbmV3IFQoXCIvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9jbGVhcmRvdC5naWZcIiksIGsubG9jYXRpb24gJiYgXCJodHRwXCIgPT0gay5sb2NhdGlvbi5wcm90b2NvbCB8fCBQYyhjLCBcImh0dHBzXCIpLCBsYyhjKSk7XHJcbiAgICBuZChjLnRvU3RyaW5nKCksIGQpO1xyXG59XHJcbmVsc2VcclxuICAgIEgoMik7IGEudiA9IDA7IGEuZiAmJiBhLmYucmEoYik7IEZkKGEpOyBEZChhKTsgfVxyXG5nLlhhID0gZnVuY3Rpb24gKGEpIHsgYSA/ICh0aGlzLmMuaW5mbyhcIlN1Y2Nlc3NmdWxseSBwaW5nZWQgZ29vZ2xlLmNvbVwiKSwgSCgyKSkgOiAodGhpcy5jLmluZm8oXCJGYWlsZWQgdG8gcGluZyBnb29nbGUuY29tXCIpLCBIKDEpKTsgfTtcclxuZnVuY3Rpb24gRmQoYSkgeyBhLnYgPSAwOyBhLkkgPSAtMTsgaWYgKGEuZikge1xyXG4gICAgaWYgKDAgIT0gamQoYS5iKS5sZW5ndGggfHwgMCAhPSBhLmcubGVuZ3RoKVxyXG4gICAgICAgIGEuYi5jLmxlbmd0aCA9IDAsIHNhKGEuZyksIGEuZy5sZW5ndGggPSAwO1xyXG4gICAgYS5mLnFhKCk7XHJcbn0gfVxyXG5mdW5jdGlvbiBGYyhhLCBiLCBjKSB7IHZhciBkID0gYWQoYyk7IGlmIChcIlwiICE9IGQuYylcclxuICAgIGIgJiYgUWMoZCwgYiArIFwiLlwiICsgZC5jKSwgUmMoZCwgZC5oKTtcclxuZWxzZSB7XHJcbiAgICB2YXIgZSA9IGsubG9jYXRpb247XHJcbiAgICBkID0gYmQoZS5wcm90b2NvbCwgYiA/IGIgKyBcIi5cIiArIGUuaG9zdG5hbWUgOiBlLmhvc3RuYW1lLCArZS5wb3J0LCBjKTtcclxufSBhLlcgJiYgQWEoYS5XLCBmdW5jdGlvbiAoZiwgaCkgeyBRKGQsIGgsIGYpOyB9KTsgYiA9IGEuQTsgYyA9IGEubmE7IGIgJiYgYyAmJiBRKGQsIGIsIGMpOyBRKGQsIFwiVkVSXCIsIGEuaGEpOyBFZChhLCBkKTsgcmV0dXJuIGQ7IH1cclxuZnVuY3Rpb24gb2MoYSwgYikgeyBpZiAoYiAmJiAhYS5DKVxyXG4gICAgdGhyb3cgRXJyb3IoXCJDYW4ndCBjcmVhdGUgc2Vjb25kYXJ5IGRvbWFpbiBjYXBhYmxlIFhocklvIG9iamVjdC5cIik7IGIgPSBuZXcgWChhLkthKTsgYi5GID0gYS5DOyByZXR1cm4gYjsgfVxyXG5mdW5jdGlvbiBNZCgpIHsgfVxyXG5nID0gTWQucHJvdG90eXBlO1xyXG5nLnRhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnNhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnJhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLnFhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5nLkhhID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5mdW5jdGlvbiBOZCgpIHsgaWYgKHggJiYgISgxMCA8PSBOdW1iZXIoVWEpKSlcclxuICAgIHRocm93IEVycm9yKFwiRW52aXJvbm1lbnRhbCBlcnJvcjogbm8gYXZhaWxhYmxlIHRyYW5zcG9ydC5cIik7IH1cclxuTmQucHJvdG90eXBlLmEgPSBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gbmV3IFkoYSwgYik7IH07XHJcbmZ1bmN0aW9uIFkoYSwgYikge1xyXG4gICAgRC5jYWxsKHRoaXMpO1xyXG4gICAgdGhpcy5hID0gbmV3IENkKGIpO1xyXG4gICAgdGhpcy5sID0gYTtcclxuICAgIHRoaXMuYiA9IGIgJiYgYi5tZXNzYWdlVXJsUGFyYW1zIHx8IG51bGw7XHJcbiAgICBhID0gYiAmJiBiLm1lc3NhZ2VIZWFkZXJzIHx8IG51bGw7XHJcbiAgICBiICYmIGIuY2xpZW50UHJvdG9jb2xIZWFkZXJSZXF1aXJlZCAmJiAoYSA/IGFbXCJYLUNsaWVudC1Qcm90b2NvbFwiXSA9IFwid2ViY2hhbm5lbFwiIDogYSA9IHsgXCJYLUNsaWVudC1Qcm90b2NvbFwiOiBcIndlYmNoYW5uZWxcIiB9KTtcclxuICAgIHRoaXMuYS5sID0gYTtcclxuICAgIGEgPSBiICYmIGIuaW5pdE1lc3NhZ2VIZWFkZXJzIHx8IG51bGw7XHJcbiAgICBiICYmIGIubWVzc2FnZUNvbnRlbnRUeXBlICYmIChhID8gYVtcIlgtV2ViQ2hhbm5lbC1Db250ZW50LVR5cGVcIl0gPSBiLm1lc3NhZ2VDb250ZW50VHlwZSA6IGEgPSB7IFwiWC1XZWJDaGFubmVsLUNvbnRlbnQtVHlwZVwiOiBiLm1lc3NhZ2VDb250ZW50VHlwZSB9KTtcclxuICAgIGIgJiYgYi5hICYmIChhID8gYVtcIlgtV2ViQ2hhbm5lbC1DbGllbnQtUHJvZmlsZVwiXSA9IGIuYSA6IGEgPSB7IFwiWC1XZWJDaGFubmVsLUNsaWVudC1Qcm9maWxlXCI6IGIuYSB9KTtcclxuICAgIHRoaXMuYS5PID1cclxuICAgICAgICBhO1xyXG4gICAgKGEgPSBiICYmIGIuaHR0cEhlYWRlcnNPdmVyd3JpdGVQYXJhbSkgJiYgIXRhKGEpICYmICh0aGlzLmEuaSA9IGEpO1xyXG4gICAgdGhpcy5oID0gYiAmJiBiLnN1cHBvcnRzQ3Jvc3NEb21haW5YaHIgfHwgITE7XHJcbiAgICB0aGlzLmcgPSBiICYmIGIuc2VuZFJhd0pzb24gfHwgITE7XHJcbiAgICAoYiA9IGIgJiYgYi5odHRwU2Vzc2lvbklkUGFyYW0pICYmICF0YShiKSAmJiAodGhpcy5hLkEgPSBiLCBhID0gdGhpcy5iLCBudWxsICE9PSBhICYmIGIgaW4gYSAmJiAoYSA9IHRoaXMuYiwgYiBpbiBhICYmIGRlbGV0ZSBhW2JdKSk7XHJcbiAgICB0aGlzLmYgPSBuZXcgWih0aGlzKTtcclxufVxyXG5yKFksIEQpO1xyXG5nID0gWS5wcm90b3R5cGU7XHJcbmcuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IFkuUy5hZGRFdmVudExpc3RlbmVyLmNhbGwodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IFkuUy5yZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcywgYSwgYiwgYywgZCk7IH07XHJcbmcuT2EgPSBmdW5jdGlvbiAoKSB7IHRoaXMuYS5mID0gdGhpcy5mOyB0aGlzLmggJiYgKHRoaXMuYS5DID0gITApOyB2YXIgYSA9IHRoaXMuYSwgYiA9IHRoaXMubCwgYyA9IHRoaXMuYiB8fCB2b2lkIDA7IEgoMCk7IGEuZmEgPSBiOyBhLlcgPSBjIHx8IHt9OyBhLkggPSBhLlQ7IGEuQiA9IEZjKGEsIG51bGwsIGEuZmEpOyBJYyhhKTsgfTtcclxuZy5jbG9zZSA9IGZ1bmN0aW9uICgpIHsgSmModGhpcy5hKTsgfTtcclxuZy5QYSA9IGZ1bmN0aW9uIChhKSB7IGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYSkge1xyXG4gICAgdmFyIGIgPSB7fTtcclxuICAgIGIuX19kYXRhX18gPSBhO1xyXG4gICAgR2QodGhpcy5hLCBiKTtcclxufVxyXG5lbHNlXHJcbiAgICB0aGlzLmcgPyAoYiA9IHt9LCBiLl9fZGF0YV9fID0gdmIoYSksIEdkKHRoaXMuYSwgYikpIDogR2QodGhpcy5hLCBhKTsgfTtcclxuZy5HID0gZnVuY3Rpb24gKCkgeyB0aGlzLmEuZiA9IG51bGw7IGRlbGV0ZSB0aGlzLmY7IEpjKHRoaXMuYSk7IGRlbGV0ZSB0aGlzLmE7IFkuUy5HLmNhbGwodGhpcyk7IH07XHJcbmZ1bmN0aW9uIE9kKGEpIHsgZGMuY2FsbCh0aGlzKTsgdmFyIGIgPSBhLl9fc21fXzsgaWYgKGIpIHtcclxuICAgIGE6IHtcclxuICAgICAgICBmb3IgKHZhciBjIGluIGIpIHtcclxuICAgICAgICAgICAgYSA9IGM7XHJcbiAgICAgICAgICAgIGJyZWFrIGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEgPSB2b2lkIDA7XHJcbiAgICB9XHJcbiAgICAodGhpcy5jID0gYSkgPyAoYSA9IHRoaXMuYywgdGhpcy5kYXRhID0gbnVsbCAhPT0gYiAmJiBhIGluIGIgPyBiW2FdIDogdm9pZCAwKSA6IHRoaXMuZGF0YSA9IGI7XHJcbn1cclxuZWxzZVxyXG4gICAgdGhpcy5kYXRhID0gYTsgfVxyXG5yKE9kLCBkYyk7XHJcbmZ1bmN0aW9uIFBkKCkgeyBlYy5jYWxsKHRoaXMpOyB0aGlzLnN0YXR1cyA9IDE7IH1cclxucihQZCwgZWMpO1xyXG5mdW5jdGlvbiBaKGEpIHsgdGhpcy5hID0gYTsgfVxyXG5yKFosIE1kKTtcclxuWi5wcm90b3R5cGUudGEgPSBmdW5jdGlvbiAoKSB7IHRoaXMuYS5kaXNwYXRjaEV2ZW50KFwiYVwiKTsgfTtcclxuWi5wcm90b3R5cGUuc2EgPSBmdW5jdGlvbiAoYSkgeyB0aGlzLmEuZGlzcGF0Y2hFdmVudChuZXcgT2QoYSkpOyB9O1xyXG5aLnByb3RvdHlwZS5yYSA9IGZ1bmN0aW9uIChhKSB7IHRoaXMuYS5kaXNwYXRjaEV2ZW50KG5ldyBQZChhKSk7IH07XHJcbloucHJvdG90eXBlLnFhID0gZnVuY3Rpb24gKCkgeyB0aGlzLmEuZGlzcGF0Y2hFdmVudChcImJcIik7IH07IC8qXHJcblxuIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcclxuXG4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5OZC5wcm90b3R5cGUuY3JlYXRlV2ViQ2hhbm5lbCA9IE5kLnByb3RvdHlwZS5hO1xyXG5ZLnByb3RvdHlwZS5zZW5kID0gWS5wcm90b3R5cGUuUGE7XHJcblkucHJvdG90eXBlLm9wZW4gPSBZLnByb3RvdHlwZS5PYTtcclxuWS5wcm90b3R5cGUuY2xvc2UgPSBZLnByb3RvdHlwZS5jbG9zZTtcclxuWmIuTk9fRVJST1IgPSAwO1xyXG5aYi5USU1FT1VUID0gODtcclxuWmIuSFRUUF9FUlJPUiA9IDY7XHJcbiRiLkNPTVBMRVRFID0gXCJjb21wbGV0ZVwiO1xyXG5jYy5FdmVudFR5cGUgPSBKO1xyXG5KLk9QRU4gPSBcImFcIjtcclxuSi5DTE9TRSA9IFwiYlwiO1xyXG5KLkVSUk9SID0gXCJjXCI7XHJcbkouTUVTU0FHRSA9IFwiZFwiO1xyXG5ELnByb3RvdHlwZS5saXN0ZW4gPSBELnByb3RvdHlwZS52YTtcclxuWC5wcm90b3R5cGUubGlzdGVuT25jZSA9IFgucHJvdG90eXBlLndhO1xyXG5YLnByb3RvdHlwZS5nZXRMYXN0RXJyb3IgPSBYLnByb3RvdHlwZS5RYTtcclxuWC5wcm90b3R5cGUuZ2V0TGFzdEVycm9yQ29kZSA9IFgucHJvdG90eXBlLnVhO1xyXG5YLnByb3RvdHlwZS5nZXRTdGF0dXMgPSBYLnByb3RvdHlwZS5YO1xyXG5YLnByb3RvdHlwZS5nZXRSZXNwb25zZUpzb24gPSBYLnByb3RvdHlwZS5OYTtcclxuWC5wcm90b3R5cGUuZ2V0UmVzcG9uc2VUZXh0ID0gWC5wcm90b3R5cGUuJDtcclxuWC5wcm90b3R5cGUuc2VuZCA9IFgucHJvdG90eXBlLmJhO1xyXG52YXIgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBOZDsgfTtcclxudmFyIEVycm9yQ29kZSA9IFpiO1xyXG52YXIgRXZlbnRUeXBlID0gJGI7XHJcbnZhciBXZWJDaGFubmVsID0gY2M7XHJcbnZhciBYaHJJbyA9IFg7XHJcblxyXG52YXIgZXNtID0ge1xyXG4gICAgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydDogY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCxcclxuICAgIEVycm9yQ29kZTogRXJyb3JDb2RlLFxyXG4gICAgRXZlbnRUeXBlOiBFdmVudFR5cGUsXHJcbiAgICBXZWJDaGFubmVsOiBXZWJDaGFubmVsLFxyXG4gICAgWGhySW86IFhocklvXHJcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGVzbTtcbmV4cG9ydCB7IEVycm9yQ29kZSwgRXZlbnRUeXBlLCBXZWJDaGFubmVsLCBYaHJJbywgY3JlYXRlV2ViQ2hhbm5lbFRyYW5zcG9ydCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Color: () => (/* reexport safe */ _color__WEBPACK_IMPORTED_MODULE_1__.Color),\n/* harmony export */ ColorBlock: () => (/* reexport safe */ _components_ColorBlock__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ColorPicker */ \"./node_modules/@rc-component/color-picker/es/ColorPicker.js\");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ \"./node_modules/@rc-component/color-picker/es/color.js\");\n/* harmony import */ var _components_ColorBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/ColorBlock */ \"./node_modules/@rc-component/color-picker/es/components/ColorBlock.js\");\n/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interface */ \"./node_modules/@rc-component/color-picker/es/interface.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_ColorPicker__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUF3QztBQUNSO0FBQ2dDO0FBQ3BDO0FBQzVCLGlFQUFlLG9EQUFXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L2NvbG9yLXBpY2tlci9lcy9pbmRleC5qcz85Nzk3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb2xvclBpY2tlciBmcm9tIFwiLi9Db2xvclBpY2tlclwiO1xuZXhwb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi9jb2xvclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvckJsb2NrIH0gZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvckJsb2NrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcmZhY2VcIjtcbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/index.js\n");
/***/ }),
-/***/ "./node_modules/@fortawesome/react-fontawesome/index.es.js":
+/***/ "./node_modules/@rc-component/color-picker/es/interface.js":
/*!*****************************************************************!*\
- !*** ./node_modules/@fortawesome/react-fontawesome/index.es.js ***!
+ !*** ./node_modules/@rc-component/color-picker/es/interface.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 */ FontAwesomeIcon: () => (/* binding */ FontAwesomeIcon)\n/* harmony export */ });\n/* harmony import */ var _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fortawesome/fontawesome-svg-core */ \"./node_modules/@fortawesome/fontawesome-svg-core/index.mjs\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\n\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = \"development\" === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.icon) {\n return _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = (0,_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_0__.icon)(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n border: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n beatFade: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n bounce: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n fade: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n flash: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n mask: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n maskId: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n fixedWidth: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n inverse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n flip: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n listItem: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n pull: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(['right', 'left']),\n pulse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n rotation: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([0, 90, 180, 270]),\n shake: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n spinPulse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n spinReverse: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n symbol: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n titleId: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n transform: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)]),\n swapOpacity: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool)\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, react__WEBPACK_IMPORTED_MODULE_1__.createElement);\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lL2luZGV4LmVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWdFO0FBQzdCO0FBQ1Q7O0FBRTFCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixzQkFBc0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxjQUFjLHVCQUF1QjtBQUNyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0IsNkJBQTZCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSx5Q0FBeUMsU0FBUzs7QUFFbEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK1lBQStZO0FBQ2xaOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsR0FBRyxHQUFHOztBQUVOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7QUFDUDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7O0FBRUg7QUFDQSx3REFBd0Q7QUFDeEQ7O0FBRUEsMERBQTBEO0FBQzFEOztBQUVBLG1GQUFtRjtBQUNuRjs7QUFFQTs7QUFFQTtBQUNBLGVBQWUsYUFBb0I7QUFDbkMsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLG9FQUFLO0FBQ1gsV0FBVyxvRUFBSztBQUNoQixJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3R0FBd0c7QUFDeEc7O0FBRUEsbUNBQW1DLDZDQUFnQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsb0VBQUs7QUFDeEY7QUFDQSxxQkFBcUIsdUVBQUksMkVBQTJFLGlDQUFpQztBQUNySTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxRQUFRLHdEQUFjO0FBQ3RCLFVBQVUsd0RBQWM7QUFDeEIsWUFBWSx3REFBYztBQUMxQixVQUFVLHdEQUFjO0FBQ3hCLGFBQWEsMERBQWdCO0FBQzdCLFFBQVEsd0RBQWM7QUFDdEIsU0FBUyx3REFBYztBQUN2QixRQUFRLDJEQUFtQixFQUFFLDBEQUFnQixFQUFFLHlEQUFlLEVBQUUsMERBQWdCO0FBQ2hGLFVBQVUsMERBQWdCO0FBQzFCLGNBQWMsd0RBQWM7QUFDNUIsV0FBVyx3REFBYztBQUN6QixRQUFRLHVEQUFlO0FBQ3ZCLFFBQVEsMkRBQW1CLEVBQUUsMERBQWdCLEVBQUUseURBQWUsRUFBRSwwREFBZ0I7QUFDaEYsWUFBWSx3REFBYztBQUMxQixRQUFRLHVEQUFlO0FBQ3ZCLFNBQVMsd0RBQWM7QUFDdkIsWUFBWSx1REFBZTtBQUMzQixTQUFTLHdEQUFjO0FBQ3ZCLFFBQVEsdURBQWU7QUFDdkIsUUFBUSx3REFBYztBQUN0QixhQUFhLHdEQUFjO0FBQzNCLGVBQWUsd0RBQWM7QUFDN0IsVUFBVSwyREFBbUIsRUFBRSx3REFBYyxFQUFFLDBEQUFnQjtBQUMvRCxTQUFTLDBEQUFnQjtBQUN6QixXQUFXLDBEQUFnQjtBQUMzQixhQUFhLDJEQUFtQixFQUFFLDBEQUFnQixFQUFFLDBEQUFnQjtBQUNwRSxlQUFlLHdEQUFjO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsZ0RBQW1COztBQUU5QiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lL2luZGV4LmVzLmpzPzIwZmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UsIGljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtcbiAgICBlbnVtZXJhYmxlT25seSAmJiAoc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpO1xuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBudWxsICE9IGFyZ3VtZW50c1tpXSA/IGFyZ3VtZW50c1tpXSA6IHt9O1xuICAgIGkgJSAyID8gb3duS2V5cyhPYmplY3Qoc291cmNlKSwgITApLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSkgOiBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICB9IDogZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiBvYmogJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gIH0sIF90eXBlb2Yob2JqKTtcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICB2YXIga2V5LCBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcblxuICB2YXIgdGFyZ2V0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7XG5cbiAgdmFyIGtleSwgaTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpO1xufVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSBhcnIyW2ldID0gYXJyW2ldO1xuXG4gIHJldHVybiBhcnIyO1xufVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuXG4vLyBHZXQgQ1NTIGNsYXNzIGxpc3QgZnJvbSBhIHByb3BzIG9iamVjdFxuZnVuY3Rpb24gY2xhc3NMaXN0KHByb3BzKSB7XG4gIHZhciBfY2xhc3NlcztcblxuICB2YXIgYmVhdCA9IHByb3BzLmJlYXQsXG4gICAgICBmYWRlID0gcHJvcHMuZmFkZSxcbiAgICAgIGJlYXRGYWRlID0gcHJvcHMuYmVhdEZhZGUsXG4gICAgICBib3VuY2UgPSBwcm9wcy5ib3VuY2UsXG4gICAgICBzaGFrZSA9IHByb3BzLnNoYWtlLFxuICAgICAgZmxhc2ggPSBwcm9wcy5mbGFzaCxcbiAgICAgIHNwaW4gPSBwcm9wcy5zcGluLFxuICAgICAgc3BpblB1bHNlID0gcHJvcHMuc3BpblB1bHNlLFxuICAgICAgc3BpblJldmVyc2UgPSBwcm9wcy5zcGluUmV2ZXJzZSxcbiAgICAgIHB1bHNlID0gcHJvcHMucHVsc2UsXG4gICAgICBmaXhlZFdpZHRoID0gcHJvcHMuZml4ZWRXaWR0aCxcbiAgICAgIGludmVyc2UgPSBwcm9wcy5pbnZlcnNlLFxuICAgICAgYm9yZGVyID0gcHJvcHMuYm9yZGVyLFxuICAgICAgbGlzdEl0ZW0gPSBwcm9wcy5saXN0SXRlbSxcbiAgICAgIGZsaXAgPSBwcm9wcy5mbGlwLFxuICAgICAgc2l6ZSA9IHByb3BzLnNpemUsXG4gICAgICByb3RhdGlvbiA9IHByb3BzLnJvdGF0aW9uLFxuICAgICAgcHVsbCA9IHByb3BzLnB1bGw7IC8vIG1hcCBvZiBDU1MgY2xhc3MgbmFtZXMgdG8gcHJvcGVydGllc1xuXG4gIHZhciBjbGFzc2VzID0gKF9jbGFzc2VzID0ge1xuICAgICdmYS1iZWF0JzogYmVhdCxcbiAgICAnZmEtZmFkZSc6IGZhZGUsXG4gICAgJ2ZhLWJlYXQtZmFkZSc6IGJlYXRGYWRlLFxuICAgICdmYS1ib3VuY2UnOiBib3VuY2UsXG4gICAgJ2ZhLXNoYWtlJzogc2hha2UsXG4gICAgJ2ZhLWZsYXNoJzogZmxhc2gsXG4gICAgJ2ZhLXNwaW4nOiBzcGluLFxuICAgICdmYS1zcGluLXJldmVyc2UnOiBzcGluUmV2ZXJzZSxcbiAgICAnZmEtc3Bpbi1wdWxzZSc6IHNwaW5QdWxzZSxcbiAgICAnZmEtcHVsc2UnOiBwdWxzZSxcbiAgICAnZmEtZncnOiBmaXhlZFdpZHRoLFxuICAgICdmYS1pbnZlcnNlJzogaW52ZXJzZSxcbiAgICAnZmEtYm9yZGVyJzogYm9yZGVyLFxuICAgICdmYS1saSc6IGxpc3RJdGVtLFxuICAgICdmYS1mbGlwJzogZmxpcCA9PT0gdHJ1ZSxcbiAgICAnZmEtZmxpcC1ob3Jpem9udGFsJzogZmxpcCA9PT0gJ2hvcml6b250YWwnIHx8IGZsaXAgPT09ICdib3RoJyxcbiAgICAnZmEtZmxpcC12ZXJ0aWNhbCc6IGZsaXAgPT09ICd2ZXJ0aWNhbCcgfHwgZmxpcCA9PT0gJ2JvdGgnXG4gIH0sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NlcywgXCJmYS1cIi5jb25jYXQoc2l6ZSksIHR5cGVvZiBzaXplICE9PSAndW5kZWZpbmVkJyAmJiBzaXplICE9PSBudWxsKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCBcImZhLXJvdGF0ZS1cIi5jb25jYXQocm90YXRpb24pLCB0eXBlb2Ygcm90YXRpb24gIT09ICd1bmRlZmluZWQnICYmIHJvdGF0aW9uICE9PSBudWxsICYmIHJvdGF0aW9uICE9PSAwKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc2VzLCBcImZhLXB1bGwtXCIuY29uY2F0KHB1bGwpLCB0eXBlb2YgcHVsbCAhPT0gJ3VuZGVmaW5lZCcgJiYgcHVsbCAhPT0gbnVsbCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NlcywgJ2ZhLXN3YXAtb3BhY2l0eScsIHByb3BzLnN3YXBPcGFjaXR5KSwgX2NsYXNzZXMpOyAvLyBtYXAgb3ZlciBhbGwgdGhlIGtleXMgaW4gdGhlIGNsYXNzZXMgb2JqZWN0XG4gIC8vIHJldHVybiBhbiBhcnJheSBvZiB0aGUga2V5cyB3aGVyZSB0aGUgdmFsdWUgZm9yIHRoZSBrZXkgaXMgbm90IG51bGxcblxuICByZXR1cm4gT2JqZWN0LmtleXMoY2xhc3NlcykubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gY2xhc3Nlc1trZXldID8ga2V5IDogbnVsbDtcbiAgfSkuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4ga2V5O1xuICB9KTtcbn1cblxuLy8gQ2FtZWxpemUgdGFrZW4gZnJvbSBodW1wc1xuLy8gaHVtcHMgaXMgY29weXJpZ2h0IMKpIDIwMTIrIERvbSBDaHJpc3RpZVxuLy8gUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuLy8gUGVyZm9ybWFudCB3YXkgdG8gZGV0ZXJtaW5lIGlmIG9iamVjdCBjb2VyY2VzIHRvIGEgbnVtYmVyXG5mdW5jdGlvbiBfaXNOdW1lcmljYWwob2JqKSB7XG4gIG9iaiA9IG9iaiAtIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcblxuICByZXR1cm4gb2JqID09PSBvYmo7XG59XG5cbmZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICBpZiAoX2lzTnVtZXJpY2FsKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuXG5cbiAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1tcXC1fXFxzXSsoLik/L2csIGZ1bmN0aW9uIChtYXRjaCwgY2hyKSB7XG4gICAgcmV0dXJuIGNociA/IGNoci50b1VwcGVyQ2FzZSgpIDogJyc7XG4gIH0pOyAvLyBFbnN1cmUgMXN0IGNoYXIgaXMgYWx3YXlzIGxvd2VyY2FzZVxuXG4gIHJldHVybiBzdHJpbmcuc3Vic3RyKDAsIDEpLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc3Vic3RyKDEpO1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wic3R5bGVcIl07XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUodmFsKSB7XG4gIHJldHVybiB2YWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWwuc2xpY2UoMSk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVG9PYmplY3Qoc3R5bGUpIHtcbiAgcmV0dXJuIHN0eWxlLnNwbGl0KCc7JykubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgcmV0dXJuIHMudHJpbSgpO1xuICB9KS5maWx0ZXIoZnVuY3Rpb24gKHMpIHtcbiAgICByZXR1cm4gcztcbiAgfSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBhaXIpIHtcbiAgICB2YXIgaSA9IHBhaXIuaW5kZXhPZignOicpO1xuICAgIHZhciBwcm9wID0gY2FtZWxpemUocGFpci5zbGljZSgwLCBpKSk7XG4gICAgdmFyIHZhbHVlID0gcGFpci5zbGljZShpICsgMSkudHJpbSgpO1xuICAgIHByb3Auc3RhcnRzV2l0aCgnd2Via2l0JykgPyBhY2NbY2FwaXRhbGl6ZShwcm9wKV0gPSB2YWx1ZSA6IGFjY1twcm9wXSA9IHZhbHVlO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gY29udmVydChjcmVhdGVFbGVtZW50LCBlbGVtZW50KSB7XG4gIHZhciBleHRyYVByb3BzID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcblxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICB2YXIgY2hpbGRyZW4gPSAoZWxlbWVudC5jaGlsZHJlbiB8fCBbXSkubWFwKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjb252ZXJ0KGNyZWF0ZUVsZW1lbnQsIGNoaWxkKTtcbiAgfSk7XG4gIC8qIGVzbGludC1kaXNhYmxlIGRvdC1ub3RhdGlvbiAqL1xuXG4gIHZhciBtaXhpbnMgPSBPYmplY3Qua2V5cyhlbGVtZW50LmF0dHJpYnV0ZXMgfHwge30pLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBrZXkpIHtcbiAgICB2YXIgdmFsID0gZWxlbWVudC5hdHRyaWJ1dGVzW2tleV07XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICBhY2MuYXR0cnNbJ2NsYXNzTmFtZSddID0gdmFsO1xuICAgICAgICBkZWxldGUgZWxlbWVudC5hdHRyaWJ1dGVzWydjbGFzcyddO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3R5bGUnOlxuICAgICAgICBhY2MuYXR0cnNbJ3N0eWxlJ10gPSBzdHlsZVRvT2JqZWN0KHZhbCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ2FyaWEtJykgPT09IDAgfHwga2V5LmluZGV4T2YoJ2RhdGEtJykgPT09IDApIHtcbiAgICAgICAgICBhY2MuYXR0cnNba2V5LnRvTG93ZXJDYXNlKCldID0gdmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy5hdHRyc1tjYW1lbGl6ZShrZXkpXSA9IHZhbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge1xuICAgIGF0dHJzOiB7fVxuICB9KTtcblxuICB2YXIgX2V4dHJhUHJvcHMkc3R5bGUgPSBleHRyYVByb3BzLnN0eWxlLFxuICAgICAgZXhpc3RpbmdTdHlsZSA9IF9leHRyYVByb3BzJHN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9leHRyYVByb3BzJHN0eWxlLFxuICAgICAgcmVtYWluaW5nID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGV4dHJhUHJvcHMsIF9leGNsdWRlZCk7XG5cbiAgbWl4aW5zLmF0dHJzWydzdHlsZSddID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIG1peGlucy5hdHRyc1snc3R5bGUnXSksIGV4aXN0aW5nU3R5bGUpO1xuICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLCBbZWxlbWVudC50YWcsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBtaXhpbnMuYXR0cnMpLCByZW1haW5pbmcpXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNoaWxkcmVuKSkpO1xufVxuXG52YXIgUFJPRFVDVElPTiA9IGZhbHNlO1xuXG50cnkge1xuICBQUk9EVUNUSU9OID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbn0gY2F0Y2ggKGUpIHt9XG5cbmZ1bmN0aW9uIGxvZyAoKSB7XG4gIGlmICghUFJPRFVDVElPTiAmJiBjb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIF9jb25zb2xlO1xuXG4gICAgKF9jb25zb2xlID0gY29uc29sZSkuZXJyb3IuYXBwbHkoX2NvbnNvbGUsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSWNvbkFyZ3MoaWNvbikge1xuICAvLyB0aGlzIGhhcyBldmVyeXRoaW5nIHRoYXQgaXQgbmVlZHMgdG8gYmUgcmVuZGVyZWQgd2hpY2ggbWVhbnMgaXQgd2FzIHByb2JhYmx5IGltcG9ydGVkXG4gIC8vIGRpcmVjdGx5IGZyb20gYW4gaWNvbiBzdmcgcGFja2FnZVxuICBpZiAoaWNvbiAmJiBfdHlwZW9mKGljb24pID09PSAnb2JqZWN0JyAmJiBpY29uLnByZWZpeCAmJiBpY29uLmljb25OYW1lICYmIGljb24uaWNvbikge1xuICAgIHJldHVybiBpY29uO1xuICB9XG5cbiAgaWYgKHBhcnNlLmljb24pIHtcbiAgICByZXR1cm4gcGFyc2UuaWNvbihpY29uKTtcbiAgfSAvLyBpZiB0aGUgaWNvbiBpcyBudWxsLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG9cblxuXG4gIGlmIChpY29uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gaWYgdGhlIGljb24gaXMgYW4gb2JqZWN0IGFuZCBoYXMgYSBwcmVmaXggYW5kIGFuIGljb24gbmFtZSwgcmV0dXJuIGl0XG5cblxuICBpZiAoaWNvbiAmJiBfdHlwZW9mKGljb24pID09PSAnb2JqZWN0JyAmJiBpY29uLnByZWZpeCAmJiBpY29uLmljb25OYW1lKSB7XG4gICAgcmV0dXJuIGljb247XG4gIH0gLy8gaWYgaXQncyBhbiBhcnJheSB3aXRoIGxlbmd0aCBvZiB0d29cblxuXG4gIGlmIChBcnJheS5pc0FycmF5KGljb24pICYmIGljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgLy8gdXNlIHRoZSBmaXJzdCBpdGVtIGFzIHByZWZpeCwgc2Vjb25kIGFzIGljb24gbmFtZVxuICAgIHJldHVybiB7XG4gICAgICBwcmVmaXg6IGljb25bMF0sXG4gICAgICBpY29uTmFtZTogaWNvblsxXVxuICAgIH07XG4gIH0gLy8gaWYgaXQncyBhIHN0cmluZywgdXNlIGl0IGFzIHRoZSBpY29uIG5hbWVcblxuXG4gIGlmICh0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiAnZmFzJyxcbiAgICAgIGljb25OYW1lOiBpY29uXG4gICAgfTtcbiAgfVxufVxuXG4vLyBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIGEga2V5IG9mIGtleVxuLy8gYW5kIGEgdmFsdWUgb2YgdmFsdWVcbi8vIGlmIGNlcnRhaW4gY29uZGl0aW9ucyBhcmUgbWV0XG5mdW5jdGlvbiBvYmplY3RXaXRoS2V5KGtleSwgdmFsdWUpIHtcbiAgLy8gaWYgdGhlIHZhbHVlIGlzIGEgbm9uLWVtcHR5IGFycmF5XG4gIC8vIG9yIGl0J3Mgbm90IGFuIGFycmF5IGJ1dCBpdCBpcyB0cnV0aHlcbiAgLy8gdGhlbiBjcmVhdGUgdGhlIG9iamVjdCB3aXRoIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZVxuICAvLyBpZiBub3QsIHJldHVybiBhbiBlbXB0eSBhcnJheVxuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUgPyBfZGVmaW5lUHJvcGVydHkoe30sIGtleSwgdmFsdWUpIDoge307XG59XG5cbnZhciBGb250QXdlc29tZUljb24gPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgaWNvbkFyZ3MgPSBwcm9wcy5pY29uLFxuICAgICAgbWFza0FyZ3MgPSBwcm9wcy5tYXNrLFxuICAgICAgc3ltYm9sID0gcHJvcHMuc3ltYm9sLFxuICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgdGl0bGUgPSBwcm9wcy50aXRsZSxcbiAgICAgIHRpdGxlSWQgPSBwcm9wcy50aXRsZUlkLFxuICAgICAgbWFza0lkID0gcHJvcHMubWFza0lkO1xuICB2YXIgaWNvbkxvb2t1cCA9IG5vcm1hbGl6ZUljb25BcmdzKGljb25BcmdzKTtcbiAgdmFyIGNsYXNzZXMgPSBvYmplY3RXaXRoS2V5KCdjbGFzc2VzJywgW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShjbGFzc0xpc3QocHJvcHMpKSwgX3RvQ29uc3VtYWJsZUFycmF5KGNsYXNzTmFtZS5zcGxpdCgnICcpKSkpO1xuICB2YXIgdHJhbnNmb3JtID0gb2JqZWN0V2l0aEtleSgndHJhbnNmb3JtJywgdHlwZW9mIHByb3BzLnRyYW5zZm9ybSA9PT0gJ3N0cmluZycgPyBwYXJzZS50cmFuc2Zvcm0ocHJvcHMudHJhbnNmb3JtKSA6IHByb3BzLnRyYW5zZm9ybSk7XG4gIHZhciBtYXNrID0gb2JqZWN0V2l0aEtleSgnbWFzaycsIG5vcm1hbGl6ZUljb25BcmdzKG1hc2tBcmdzKSk7XG4gIHZhciByZW5kZXJlZEljb24gPSBpY29uKGljb25Mb29rdXAsIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBjbGFzc2VzKSwgdHJhbnNmb3JtKSwgbWFzayksIHt9LCB7XG4gICAgc3ltYm9sOiBzeW1ib2wsXG4gICAgdGl0bGU6IHRpdGxlLFxuICAgIHRpdGxlSWQ6IHRpdGxlSWQsXG4gICAgbWFza0lkOiBtYXNrSWRcbiAgfSkpO1xuXG4gIGlmICghcmVuZGVyZWRJY29uKSB7XG4gICAgbG9nKCdDb3VsZCBub3QgZmluZCBpY29uJywgaWNvbkxvb2t1cCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgYWJzdHJhY3QgPSByZW5kZXJlZEljb24uYWJzdHJhY3Q7XG4gIHZhciBleHRyYVByb3BzID0ge1xuICAgIHJlZjogcmVmXG4gIH07XG4gIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgaWYgKCFGb250QXdlc29tZUljb24uZGVmYXVsdFByb3BzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGV4dHJhUHJvcHNba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGNvbnZlcnRDdXJyeShhYnN0cmFjdFswXSwgZXh0cmFQcm9wcyk7XG59KTtcbkZvbnRBd2Vzb21lSWNvbi5kaXNwbGF5TmFtZSA9ICdGb250QXdlc29tZUljb24nO1xuRm9udEF3ZXNvbWVJY29uLnByb3BUeXBlcyA9IHtcbiAgYmVhdDogUHJvcFR5cGVzLmJvb2wsXG4gIGJvcmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGJlYXRGYWRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgYm91bmNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBmYWRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgZmxhc2g6IFByb3BUeXBlcy5ib29sLFxuICBtYXNrOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgbWFza0lkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBmaXhlZFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgaW52ZXJzZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZsaXA6IFByb3BUeXBlcy5vbmVPZihbdHJ1ZSwgZmFsc2UsICdob3Jpem9udGFsJywgJ3ZlcnRpY2FsJywgJ2JvdGgnXSksXG4gIGljb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBsaXN0SXRlbTogUHJvcFR5cGVzLmJvb2wsXG4gIHB1bGw6IFByb3BUeXBlcy5vbmVPZihbJ3JpZ2h0JywgJ2xlZnQnXSksXG4gIHB1bHNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgcm90YXRpb246IFByb3BUeXBlcy5vbmVPZihbMCwgOTAsIDE4MCwgMjcwXSksXG4gIHNoYWtlOiBQcm9wVHlwZXMuYm9vbCxcbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnMnhzJywgJ3hzJywgJ3NtJywgJ2xnJywgJ3hsJywgJzJ4bCcsICcxeCcsICcyeCcsICczeCcsICc0eCcsICc1eCcsICc2eCcsICc3eCcsICc4eCcsICc5eCcsICcxMHgnXSksXG4gIHNwaW46IFByb3BUeXBlcy5ib29sLFxuICBzcGluUHVsc2U6IFByb3BUeXBlcy5ib29sLFxuICBzcGluUmV2ZXJzZTogUHJvcFR5cGVzLmJvb2wsXG4gIHN5bWJvbDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRpdGxlSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRyYW5zZm9ybTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm9iamVjdF0pLFxuICBzd2FwT3BhY2l0eTogUHJvcFR5cGVzLmJvb2xcbn07XG5Gb250QXdlc29tZUljb24uZGVmYXVsdFByb3BzID0ge1xuICBib3JkZXI6IGZhbHNlLFxuICBjbGFzc05hbWU6ICcnLFxuICBtYXNrOiBudWxsLFxuICBtYXNrSWQ6IG51bGwsXG4gIGZpeGVkV2lkdGg6IGZhbHNlLFxuICBpbnZlcnNlOiBmYWxzZSxcbiAgZmxpcDogZmFsc2UsXG4gIGljb246IG51bGwsXG4gIGxpc3RJdGVtOiBmYWxzZSxcbiAgcHVsbDogbnVsbCxcbiAgcHVsc2U6IGZhbHNlLFxuICByb3RhdGlvbjogbnVsbCxcbiAgc2l6ZTogbnVsbCxcbiAgc3BpbjogZmFsc2UsXG4gIHNwaW5QdWxzZTogZmFsc2UsXG4gIHNwaW5SZXZlcnNlOiBmYWxzZSxcbiAgYmVhdDogZmFsc2UsXG4gIGZhZGU6IGZhbHNlLFxuICBiZWF0RmFkZTogZmFsc2UsXG4gIGJvdW5jZTogZmFsc2UsXG4gIHNoYWtlOiBmYWxzZSxcbiAgc3ltYm9sOiBmYWxzZSxcbiAgdGl0bGU6ICcnLFxuICB0aXRsZUlkOiBudWxsLFxuICB0cmFuc2Zvcm06IG51bGwsXG4gIHN3YXBPcGFjaXR5OiBmYWxzZVxufTtcbnZhciBjb252ZXJ0Q3VycnkgPSBjb252ZXJ0LmJpbmQobnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudCk7XG5cbmV4cG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@fortawesome/react-fontawesome/index.es.js\n");
-
-/***/ }),
-
-/***/ "./node_modules/@icons/material/CheckIcon.js":
-/*!***************************************************!*\
- !*** ./node_modules/@icons/material/CheckIcon.js ***!
- \***************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+__webpack_require__.r(__webpack_exports__);
-"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports[\"default\"] = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGljb25zL21hdGVyaWFsL0NoZWNrSWNvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7O0FBRUYsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsK0NBQStDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxzQkFBc0I7O0FBRTVNOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMENBQTBDO0FBQ2xFLEtBQUs7QUFDTCw0Q0FBNEMsOERBQThEO0FBQzFHO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BpY29ucy9tYXRlcmlhbC9DaGVja0ljb24uanM/YWE1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgREVGQVVMVF9TSVpFID0gMjQ7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBfcmVmJGZpbGwgPSBfcmVmLmZpbGwsXG4gICAgICBmaWxsID0gX3JlZiRmaWxsID09PSB1bmRlZmluZWQgPyAnY3VycmVudENvbG9yJyA6IF9yZWYkZmlsbCxcbiAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgd2lkdGggPSBfcmVmJHdpZHRoID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJHdpZHRoLFxuICAgICAgX3JlZiRoZWlnaHQgPSBfcmVmLmhlaWdodCxcbiAgICAgIGhlaWdodCA9IF9yZWYkaGVpZ2h0ID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJGhlaWdodCxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBbJ2ZpbGwnLCAnd2lkdGgnLCAnaGVpZ2h0JywgJ3N0eWxlJ10pO1xuXG4gIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAnc3ZnJyxcbiAgICBfZXh0ZW5kcyh7XG4gICAgICB2aWV3Qm94OiAnMCAwICcgKyBERUZBVUxUX1NJWkUgKyAnICcgKyBERUZBVUxUX1NJWkUsXG4gICAgICBzdHlsZTogX2V4dGVuZHMoeyBmaWxsOiBmaWxsLCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH0sIHN0eWxlKVxuICAgIH0sIHByb3BzKSxcbiAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncGF0aCcsIHsgZDogJ00yMSw3TDksMTlMMy41LDEzLjVMNC45MSwxMi4wOUw5LDE2LjE3TDE5LjU5LDUuNTlMMjEsN1onIH0pXG4gICk7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@icons/material/CheckIcon.js\n");
/***/ }),
-/***/ "./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js":
-/*!******************************************************************!*\
- !*** ./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+/***/ "./node_modules/@rc-component/color-picker/es/util.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@rc-component/color-picker/es/util.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports[\"default\"] = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGljb25zL21hdGVyaWFsL1VuZm9sZE1vcmVIb3Jpem9udGFsSWNvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7O0FBRUYsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsK0NBQStDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxzQkFBc0I7O0FBRTVNOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMENBQTBDO0FBQ2xFLEtBQUs7QUFDTCw0Q0FBNEMsd0hBQXdIO0FBQ3BLO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0BpY29ucy9tYXRlcmlhbC9VbmZvbGRNb3JlSG9yaXpvbnRhbEljb24uanM/ZjQ1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgREVGQVVMVF9TSVpFID0gMjQ7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBfcmVmJGZpbGwgPSBfcmVmLmZpbGwsXG4gICAgICBmaWxsID0gX3JlZiRmaWxsID09PSB1bmRlZmluZWQgPyAnY3VycmVudENvbG9yJyA6IF9yZWYkZmlsbCxcbiAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgd2lkdGggPSBfcmVmJHdpZHRoID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJHdpZHRoLFxuICAgICAgX3JlZiRoZWlnaHQgPSBfcmVmLmhlaWdodCxcbiAgICAgIGhlaWdodCA9IF9yZWYkaGVpZ2h0ID09PSB1bmRlZmluZWQgPyBERUZBVUxUX1NJWkUgOiBfcmVmJGhlaWdodCxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBbJ2ZpbGwnLCAnd2lkdGgnLCAnaGVpZ2h0JywgJ3N0eWxlJ10pO1xuXG4gIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAnc3ZnJyxcbiAgICBfZXh0ZW5kcyh7XG4gICAgICB2aWV3Qm94OiAnMCAwICcgKyBERUZBVUxUX1NJWkUgKyAnICcgKyBERUZBVUxUX1NJWkUsXG4gICAgICBzdHlsZTogX2V4dGVuZHMoeyBmaWxsOiBmaWxsLCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH0sIHN0eWxlKVxuICAgIH0sIHByb3BzKSxcbiAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncGF0aCcsIHsgZDogJ00xMiwxOC4xN0w4LjgzLDE1TDcuNDIsMTYuNDFMMTIsMjFMMTYuNTksMTYuNDFMMTUuMTcsMTVNMTIsNS44M0wxNS4xNyw5TDE2LjU4LDcuNTlMMTIsM0w3LjQxLDcuNTlMOC44Myw5TDEyLDUuODNaJyB9KVxuICApO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColorPickerPrefixCls: () => (/* binding */ ColorPickerPrefixCls),\n/* harmony export */ calcOffset: () => (/* binding */ calcOffset),\n/* harmony export */ calculateColor: () => (/* binding */ calculateColor),\n/* harmony export */ defaultColor: () => (/* binding */ defaultColor),\n/* harmony export */ generateColor: () => (/* binding */ generateColor)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ \"./node_modules/@rc-component/color-picker/es/color.js\");\n\n\nvar ColorPickerPrefixCls = 'rc-color-picker';\nvar generateColor = function generateColor(color) {\n if (color instanceof _color__WEBPACK_IMPORTED_MODULE_1__.Color) {\n return color;\n }\n return new _color__WEBPACK_IMPORTED_MODULE_1__.Color(color);\n};\nvar defaultColor = generateColor('#1677ff');\nvar calculateColor = function calculateColor(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n color = props.color,\n type = props.type;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var saturation = (offset.x + centerOffsetX) / width;\n var bright = 1 - (offset.y + centerOffsetY) / height;\n var hsb = color.toHsb();\n var alphaOffset = saturation;\n var hueOffset = (offset.x + centerOffsetX) / width * 360;\n if (type) {\n switch (type) {\n case 'hue':\n return generateColor((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, hsb), {}, {\n h: hueOffset <= 0 ? 0 : hueOffset\n }));\n case 'alpha':\n return generateColor((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, hsb), {}, {\n a: alphaOffset <= 0 ? 0 : alphaOffset\n }));\n }\n }\n return generateColor({\n h: hsb.h,\n s: saturation <= 0 ? 0 : saturation,\n b: bright >= 1 ? 1 : bright,\n a: hsb.a\n });\n};\nvar calcOffset = function calcOffset(color, type) {\n var hsb = color.toHsb();\n switch (type) {\n case 'hue':\n return {\n x: hsb.h / 360 * 100,\n y: 50\n };\n case 'alpha':\n return {\n x: color.a * 100,\n y: 50\n };\n\n // Picker panel\n default:\n return {\n x: hsb.s * 100,\n y: (1 - hsb.b) * 100\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvdXRpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXFFO0FBQ3JDO0FBQ3pCO0FBQ0E7QUFDUCx1QkFBdUIseUNBQUs7QUFDNUI7QUFDQTtBQUNBLGFBQWEseUNBQUs7QUFDbEI7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9GQUFhLENBQUMsb0ZBQWEsR0FBRyxVQUFVO0FBQ3JFO0FBQ0EsU0FBUztBQUNUO0FBQ0EsNkJBQTZCLG9GQUFhLENBQUMsb0ZBQWEsR0FBRyxVQUFVO0FBQ3JFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC9jb2xvci1waWNrZXIvZXMvdXRpbC5qcz9jNDg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuL2NvbG9yXCI7XG5leHBvcnQgdmFyIENvbG9yUGlja2VyUHJlZml4Q2xzID0gJ3JjLWNvbG9yLXBpY2tlcic7XG5leHBvcnQgdmFyIGdlbmVyYXRlQ29sb3IgPSBmdW5jdGlvbiBnZW5lcmF0ZUNvbG9yKGNvbG9yKSB7XG4gIGlmIChjb2xvciBpbnN0YW5jZW9mIENvbG9yKSB7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG4gIHJldHVybiBuZXcgQ29sb3IoY29sb3IpO1xufTtcbmV4cG9ydCB2YXIgZGVmYXVsdENvbG9yID0gZ2VuZXJhdGVDb2xvcignIzE2NzdmZicpO1xuZXhwb3J0IHZhciBjYWxjdWxhdGVDb2xvciA9IGZ1bmN0aW9uIGNhbGN1bGF0ZUNvbG9yKHByb3BzKSB7XG4gIHZhciBvZmZzZXQgPSBwcm9wcy5vZmZzZXQsXG4gICAgdGFyZ2V0UmVmID0gcHJvcHMudGFyZ2V0UmVmLFxuICAgIGNvbnRhaW5lclJlZiA9IHByb3BzLmNvbnRhaW5lclJlZixcbiAgICBjb2xvciA9IHByb3BzLmNvbG9yLFxuICAgIHR5cGUgPSBwcm9wcy50eXBlO1xuICB2YXIgX2NvbnRhaW5lclJlZiRjdXJyZW50ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgd2lkdGggPSBfY29udGFpbmVyUmVmJGN1cnJlbnQud2lkdGgsXG4gICAgaGVpZ2h0ID0gX2NvbnRhaW5lclJlZiRjdXJyZW50LmhlaWdodDtcbiAgdmFyIF90YXJnZXRSZWYkY3VycmVudCRnZSA9IHRhcmdldFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIHRhcmdldFdpZHRoID0gX3RhcmdldFJlZiRjdXJyZW50JGdlLndpZHRoLFxuICAgIHRhcmdldEhlaWdodCA9IF90YXJnZXRSZWYkY3VycmVudCRnZS5oZWlnaHQ7XG4gIHZhciBjZW50ZXJPZmZzZXRYID0gdGFyZ2V0V2lkdGggLyAyO1xuICB2YXIgY2VudGVyT2Zmc2V0WSA9IHRhcmdldEhlaWdodCAvIDI7XG4gIHZhciBzYXR1cmF0aW9uID0gKG9mZnNldC54ICsgY2VudGVyT2Zmc2V0WCkgLyB3aWR0aDtcbiAgdmFyIGJyaWdodCA9IDEgLSAob2Zmc2V0LnkgKyBjZW50ZXJPZmZzZXRZKSAvIGhlaWdodDtcbiAgdmFyIGhzYiA9IGNvbG9yLnRvSHNiKCk7XG4gIHZhciBhbHBoYU9mZnNldCA9IHNhdHVyYXRpb247XG4gIHZhciBodWVPZmZzZXQgPSAob2Zmc2V0LnggKyBjZW50ZXJPZmZzZXRYKSAvIHdpZHRoICogMzYwO1xuICBpZiAodHlwZSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnaHVlJzpcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlQ29sb3IoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBoc2IpLCB7fSwge1xuICAgICAgICAgIGg6IGh1ZU9mZnNldCA8PSAwID8gMCA6IGh1ZU9mZnNldFxuICAgICAgICB9KSk7XG4gICAgICBjYXNlICdhbHBoYSc6XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZUNvbG9yKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgaHNiKSwge30sIHtcbiAgICAgICAgICBhOiBhbHBoYU9mZnNldCA8PSAwID8gMCA6IGFscGhhT2Zmc2V0XG4gICAgICAgIH0pKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdlbmVyYXRlQ29sb3Ioe1xuICAgIGg6IGhzYi5oLFxuICAgIHM6IHNhdHVyYXRpb24gPD0gMCA/IDAgOiBzYXR1cmF0aW9uLFxuICAgIGI6IGJyaWdodCA+PSAxID8gMSA6IGJyaWdodCxcbiAgICBhOiBoc2IuYVxuICB9KTtcbn07XG5leHBvcnQgdmFyIGNhbGNPZmZzZXQgPSBmdW5jdGlvbiBjYWxjT2Zmc2V0KGNvbG9yLCB0eXBlKSB7XG4gIHZhciBoc2IgPSBjb2xvci50b0hzYigpO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdodWUnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeDogaHNiLmggLyAzNjAgKiAxMDAsXG4gICAgICAgIHk6IDUwXG4gICAgICB9O1xuICAgIGNhc2UgJ2FscGhhJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGNvbG9yLmEgKiAxMDAsXG4gICAgICAgIHk6IDUwXG4gICAgICB9O1xuXG4gICAgLy8gUGlja2VyIHBhbmVsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IGhzYi5zICogMTAwLFxuICAgICAgICB5OiAoMSAtIGhzYi5iKSAqIDEwMFxuICAgICAgfTtcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/color-picker/es/util.js\n");
/***/ }),
@@ -1380,7 +2088,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__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_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var rc_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-motion */ \"./node_modules/rc-motion/es/index.js\");\n/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-resize-observer */ \"./node_modules/rc-resize-observer/es/index.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/ref */ \"./node_modules/rc-util/es/ref.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _Arrow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Arrow */ \"./node_modules/@rc-component/trigger/es/Popup/Arrow.js\");\n/* harmony import */ var _Mask__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Mask */ \"./node_modules/@rc-component/trigger/es/Popup/Mask.js\");\n/* harmony import */ var _PopupContent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./PopupContent */ \"./node_modules/@rc-component/trigger/es/Popup/PopupContent.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar Popup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_8__.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Mask__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_motion__WEBPACK_IMPORTED_MODULE_4__[\"default\"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classnames__WEBPACK_IMPORTED_MODULE_3___default()(prefixCls, motionClassName, className);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(\"div\", {\n ref: (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__.composeRef)(resizeObserverRef, ref, motionRef),\n className: cls,\n style: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick\n }, arrow && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Arrow__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_PopupContent__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (true) {\n Popup.displayName = 'Popup';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popup);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL1BvcHVwL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ1c7QUFDQztBQUNsQztBQUNGO0FBQ2M7QUFDZTtBQUNuQjtBQUNiO0FBQ0g7QUFDRjtBQUNnQjtBQUMxQyx5QkFBeUIsNkNBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCLDJDQUFjO0FBQ3RDLHVCQUF1QixvRkFBYztBQUNyQztBQUNBOztBQUVBO0FBQ0EsRUFBRSw0RUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLENBQUMsOENBQUk7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQixDQUFDLDBEQUFjO0FBQ3JEO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsd0JBQXdCLGdEQUFtQixDQUFDLGlEQUFTLEVBQUUsOEVBQVE7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGdCQUFnQixpREFBVTtBQUMxQiwwQkFBMEIsZ0RBQW1CO0FBQzdDLGFBQWEsMERBQVU7QUFDdkI7QUFDQSxlQUFlLG9GQUFhLENBQUMsb0ZBQWEsQ0FBQyxvRkFBYSxDQUFDLG9GQUFhO0FBQ3RFO0FBQ0E7QUFDQSxTQUFTLDRDQUE0QztBQUNyRDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx3QkFBd0IsZ0RBQW1CLENBQUMsOENBQUs7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLGdCQUFnQixnREFBbUIsQ0FBQyxzREFBWTtBQUN2RDtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRztBQUNILENBQUM7QUFDRCxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQSxpRUFBZSxLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L3RyaWdnZXIvZXMvUG9wdXAvaW5kZXguanM/ODBjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IENTU01vdGlvbiBmcm9tICdyYy1tb3Rpb24nO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3JjLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUxheW91dEVmZmVjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZiB9IGZyb20gXCJyYy11dGlsL2VzL3JlZlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEFycm93IGZyb20gXCIuL0Fycm93XCI7XG5pbXBvcnQgTWFzayBmcm9tIFwiLi9NYXNrXCI7XG5pbXBvcnQgUG9wdXBDb250ZW50IGZyb20gXCIuL1BvcHVwQ29udGVudFwiO1xudmFyIFBvcHVwID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgdmFyIHBvcHVwID0gcHJvcHMucG9wdXAsXG4gICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgIHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICBzdHlsZSA9IHByb3BzLnN0eWxlLFxuICAgIHRhcmdldCA9IHByb3BzLnRhcmdldCxcbiAgICBfb25WaXNpYmxlQ2hhbmdlZCA9IHByb3BzLm9uVmlzaWJsZUNoYW5nZWQsXG4gICAgb3BlbiA9IHByb3BzLm9wZW4sXG4gICAga2VlcERvbSA9IHByb3BzLmtlZXBEb20sXG4gICAgZnJlc2ggPSBwcm9wcy5mcmVzaCxcbiAgICBvbkNsaWNrID0gcHJvcHMub25DbGljayxcbiAgICBtYXNrID0gcHJvcHMubWFzayxcbiAgICBhcnJvdyA9IHByb3BzLmFycm93LFxuICAgIGFycm93UG9zID0gcHJvcHMuYXJyb3dQb3MsXG4gICAgYWxpZ24gPSBwcm9wcy5hbGlnbixcbiAgICBtb3Rpb24gPSBwcm9wcy5tb3Rpb24sXG4gICAgbWFza01vdGlvbiA9IHByb3BzLm1hc2tNb3Rpb24sXG4gICAgZm9yY2VSZW5kZXIgPSBwcm9wcy5mb3JjZVJlbmRlcixcbiAgICBnZXRQb3B1cENvbnRhaW5lciA9IHByb3BzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgIGF1dG9EZXN0cm95ID0gcHJvcHMuYXV0b0Rlc3Ryb3ksXG4gICAgUG9ydGFsID0gcHJvcHMucG9ydGFsLFxuICAgIHpJbmRleCA9IHByb3BzLnpJbmRleCxcbiAgICBvbk1vdXNlRW50ZXIgPSBwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlID0gcHJvcHMub25Nb3VzZUxlYXZlLFxuICAgIG9uUG9pbnRlckVudGVyID0gcHJvcHMub25Qb2ludGVyRW50ZXIsXG4gICAgcmVhZHkgPSBwcm9wcy5yZWFkeSxcbiAgICBvZmZzZXRYID0gcHJvcHMub2Zmc2V0WCxcbiAgICBvZmZzZXRZID0gcHJvcHMub2Zmc2V0WSxcbiAgICBvZmZzZXRSID0gcHJvcHMub2Zmc2V0UixcbiAgICBvZmZzZXRCID0gcHJvcHMub2Zmc2V0QixcbiAgICBvbkFsaWduID0gcHJvcHMub25BbGlnbixcbiAgICBvblByZXBhcmUgPSBwcm9wcy5vblByZXBhcmUsXG4gICAgc3RyZXRjaCA9IHByb3BzLnN0cmV0Y2gsXG4gICAgdGFyZ2V0V2lkdGggPSBwcm9wcy50YXJnZXRXaWR0aCxcbiAgICB0YXJnZXRIZWlnaHQgPSBwcm9wcy50YXJnZXRIZWlnaHQ7XG4gIHZhciBjaGlsZE5vZGUgPSB0eXBlb2YgcG9wdXAgPT09ICdmdW5jdGlvbicgPyBwb3B1cCgpIDogcG9wdXA7XG5cbiAgLy8gV2UgY2FuIG5vdCByZW1vdmUgaG9sZGVyIG9ubHkgd2hlbiBtb3Rpb24gZmluaXNoZWQuXG4gIHZhciBpc05vZGVWaXNpYmxlID0gb3BlbiB8fCBrZWVwRG9tO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IENvbnRhaW5lciA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIGdldFBvcHVwQ29udGFpbmVyTmVlZFBhcmFtcyA9IChnZXRQb3B1cENvbnRhaW5lciA9PT0gbnVsbCB8fCBnZXRQb3B1cENvbnRhaW5lciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0UG9wdXBDb250YWluZXIubGVuZ3RoKSA+IDA7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZSghZ2V0UG9wdXBDb250YWluZXIgfHwgIWdldFBvcHVwQ29udGFpbmVyTmVlZFBhcmFtcyksXG4gICAgX1JlYWN0JHVzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgc2hvdyA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgc2V0U2hvdyA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgLy8gRGVsYXkgdG8gc2hvdyBzaW5jZSBgZ2V0UG9wdXBDb250YWluZXJgIG5lZWQgdGFyZ2V0IGVsZW1lbnRcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXNob3cgJiYgZ2V0UG9wdXBDb250YWluZXJOZWVkUGFyYW1zICYmIHRhcmdldCkge1xuICAgICAgc2V0U2hvdyh0cnVlKTtcbiAgICB9XG4gIH0sIFtzaG93LCBnZXRQb3B1cENvbnRhaW5lck5lZWRQYXJhbXMsIHRhcmdldF0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gUmVuZGVyID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgaWYgKCFzaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyA+Pj4+PiBPZmZzZXRcbiAgdmFyIEFVVE8gPSAnYXV0byc7XG4gIHZhciBvZmZzZXRTdHlsZSA9IHtcbiAgICBsZWZ0OiAnLTEwMDB2dycsXG4gICAgdG9wOiAnLTEwMDB2aCcsXG4gICAgcmlnaHQ6IEFVVE8sXG4gICAgYm90dG9tOiBBVVRPXG4gIH07XG5cbiAgLy8gU2V0IGFsaWduIHN0eWxlXG4gIGlmIChyZWFkeSB8fCAhb3Blbikge1xuICAgIHZhciBfZXhwZXJpbWVudGFsO1xuICAgIHZhciBwb2ludHMgPSBhbGlnbi5wb2ludHM7XG4gICAgdmFyIGR5bmFtaWNJbnNldCA9IGFsaWduLmR5bmFtaWNJbnNldCB8fCAoKF9leHBlcmltZW50YWwgPSBhbGlnbi5fZXhwZXJpbWVudGFsKSA9PT0gbnVsbCB8fCBfZXhwZXJpbWVudGFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZXhwZXJpbWVudGFsLmR5bmFtaWNJbnNldCk7XG4gICAgdmFyIGFsaWduUmlnaHQgPSBkeW5hbWljSW5zZXQgJiYgcG9pbnRzWzBdWzFdID09PSAncic7XG4gICAgdmFyIGFsaWduQm90dG9tID0gZHluYW1pY0luc2V0ICYmIHBvaW50c1swXVswXSA9PT0gJ2InO1xuICAgIGlmIChhbGlnblJpZ2h0KSB7XG4gICAgICBvZmZzZXRTdHlsZS5yaWdodCA9IG9mZnNldFI7XG4gICAgICBvZmZzZXRTdHlsZS5sZWZ0ID0gQVVUTztcbiAgICB9IGVsc2Uge1xuICAgICAgb2Zmc2V0U3R5bGUubGVmdCA9IG9mZnNldFg7XG4gICAgICBvZmZzZXRTdHlsZS5yaWdodCA9IEFVVE87XG4gICAgfVxuICAgIGlmIChhbGlnbkJvdHRvbSkge1xuICAgICAgb2Zmc2V0U3R5bGUuYm90dG9tID0gb2Zmc2V0QjtcbiAgICAgIG9mZnNldFN0eWxlLnRvcCA9IEFVVE87XG4gICAgfSBlbHNlIHtcbiAgICAgIG9mZnNldFN0eWxlLnRvcCA9IG9mZnNldFk7XG4gICAgICBvZmZzZXRTdHlsZS5ib3R0b20gPSBBVVRPO1xuICAgIH1cbiAgfVxuXG4gIC8vID4+Pj4+IE1pc2NcbiAgdmFyIG1pc2NTdHlsZSA9IHt9O1xuICBpZiAoc3RyZXRjaCkge1xuICAgIGlmIChzdHJldGNoLmluY2x1ZGVzKCdoZWlnaHQnKSAmJiB0YXJnZXRIZWlnaHQpIHtcbiAgICAgIG1pc2NTdHlsZS5oZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgfSBlbHNlIGlmIChzdHJldGNoLmluY2x1ZGVzKCdtaW5IZWlnaHQnKSAmJiB0YXJnZXRIZWlnaHQpIHtcbiAgICAgIG1pc2NTdHlsZS5taW5IZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgfVxuICAgIGlmIChzdHJldGNoLmluY2x1ZGVzKCd3aWR0aCcpICYmIHRhcmdldFdpZHRoKSB7XG4gICAgICBtaXNjU3R5bGUud2lkdGggPSB0YXJnZXRXaWR0aDtcbiAgICB9IGVsc2UgaWYgKHN0cmV0Y2guaW5jbHVkZXMoJ21pbldpZHRoJykgJiYgdGFyZ2V0V2lkdGgpIHtcbiAgICAgIG1pc2NTdHlsZS5taW5XaWR0aCA9IHRhcmdldFdpZHRoO1xuICAgIH1cbiAgfVxuICBpZiAoIW9wZW4pIHtcbiAgICBtaXNjU3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7XG4gICAgb3BlbjogZm9yY2VSZW5kZXIgfHwgaXNOb2RlVmlzaWJsZSxcbiAgICBnZXRDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyICYmIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBnZXRQb3B1cENvbnRhaW5lcih0YXJnZXQpO1xuICAgIH0sXG4gICAgYXV0b0Rlc3Ryb3k6IGF1dG9EZXN0cm95XG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1hc2ssIHtcbiAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICBvcGVuOiBvcGVuLFxuICAgIHpJbmRleDogekluZGV4LFxuICAgIG1hc2s6IG1hc2ssXG4gICAgbW90aW9uOiBtYXNrTW90aW9uXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXNpemVPYnNlcnZlciwge1xuICAgIG9uUmVzaXplOiBvbkFsaWduLFxuICAgIGRpc2FibGVkOiAhb3BlblxuICB9LCBmdW5jdGlvbiAocmVzaXplT2JzZXJ2ZXJSZWYpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTTW90aW9uLCBfZXh0ZW5kcyh7XG4gICAgICBtb3Rpb25BcHBlYXI6IHRydWUsXG4gICAgICBtb3Rpb25FbnRlcjogdHJ1ZSxcbiAgICAgIG1vdGlvbkxlYXZlOiB0cnVlLFxuICAgICAgcmVtb3ZlT25MZWF2ZTogZmFsc2UsXG4gICAgICBmb3JjZVJlbmRlcjogZm9yY2VSZW5kZXIsXG4gICAgICBsZWF2ZWRDbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaGlkZGVuXCIpXG4gICAgfSwgbW90aW9uLCB7XG4gICAgICBvbkFwcGVhclByZXBhcmU6IG9uUHJlcGFyZSxcbiAgICAgIG9uRW50ZXJQcmVwYXJlOiBvblByZXBhcmUsXG4gICAgICB2aXNpYmxlOiBvcGVuLFxuICAgICAgb25WaXNpYmxlQ2hhbmdlZDogZnVuY3Rpb24gb25WaXNpYmxlQ2hhbmdlZChuZXh0VmlzaWJsZSkge1xuICAgICAgICB2YXIgX21vdGlvbiRvblZpc2libGVDaGFuO1xuICAgICAgICBtb3Rpb24gPT09IG51bGwgfHwgbW90aW9uID09PSB2b2lkIDAgfHwgKF9tb3Rpb24kb25WaXNpYmxlQ2hhbiA9IG1vdGlvbi5vblZpc2libGVDaGFuZ2VkKSA9PT0gbnVsbCB8fCBfbW90aW9uJG9uVmlzaWJsZUNoYW4gPT09IHZvaWQgMCB8fCBfbW90aW9uJG9uVmlzaWJsZUNoYW4uY2FsbChtb3Rpb24sIG5leHRWaXNpYmxlKTtcbiAgICAgICAgX29uVmlzaWJsZUNoYW5nZWQobmV4dFZpc2libGUpO1xuICAgICAgfVxuICAgIH0pLCBmdW5jdGlvbiAoX3JlZiwgbW90aW9uUmVmKSB7XG4gICAgICB2YXIgbW90aW9uQ2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgICAgIG1vdGlvblN0eWxlID0gX3JlZi5zdHlsZTtcbiAgICAgIHZhciBjbHMgPSBjbGFzc05hbWVzKHByZWZpeENscywgbW90aW9uQ2xhc3NOYW1lLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgcmVmOiBjb21wb3NlUmVmKHJlc2l6ZU9ic2VydmVyUmVmLCByZWYsIG1vdGlvblJlZiksXG4gICAgICAgIGNsYXNzTmFtZTogY2xzLFxuICAgICAgICBzdHlsZTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgJy0tYXJyb3cteCc6IFwiXCIuY29uY2F0KGFycm93UG9zLnggfHwgMCwgXCJweFwiKSxcbiAgICAgICAgICAnLS1hcnJvdy15JzogXCJcIi5jb25jYXQoYXJyb3dQb3MueSB8fCAwLCBcInB4XCIpXG4gICAgICAgIH0sIG9mZnNldFN0eWxlKSwgbWlzY1N0eWxlKSwgbW90aW9uU3R5bGUpLCB7fSwge1xuICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgIHpJbmRleDogekluZGV4XG4gICAgICAgIH0sIHN0eWxlKSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlLFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogb25Qb2ludGVyRW50ZXIsXG4gICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgIH0sIGFycm93ICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEFycm93LCB7XG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICBhcnJvdzogYXJyb3csXG4gICAgICAgIGFycm93UG9zOiBhcnJvd1BvcyxcbiAgICAgICAgYWxpZ246IGFsaWduXG4gICAgICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXBDb250ZW50LCB7XG4gICAgICAgIGNhY2hlOiAhb3BlbiAmJiAhZnJlc2hcbiAgICAgIH0sIGNoaWxkTm9kZSkpO1xuICAgIH0pO1xuICB9KSk7XG59KTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIFBvcHVwLmRpc3BsYXlOYW1lID0gJ1BvcHVwJztcbn1cbmV4cG9ydCBkZWZhdWx0IFBvcHVwOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/Popup/index.js\n");
+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_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var rc_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-motion */ \"./node_modules/rc-motion/es/index.js\");\n/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-resize-observer */ \"./node_modules/rc-resize-observer/es/index.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/ref */ \"./node_modules/rc-util/es/ref.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _Arrow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Arrow */ \"./node_modules/@rc-component/trigger/es/Popup/Arrow.js\");\n/* harmony import */ var _Mask__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Mask */ \"./node_modules/@rc-component/trigger/es/Popup/Mask.js\");\n/* harmony import */ var _PopupContent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./PopupContent */ \"./node_modules/@rc-component/trigger/es/Popup/PopupContent.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar Popup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n onPointerDownCapture = props.onPointerDownCapture,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_8__.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Mask__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_motion__WEBPACK_IMPORTED_MODULE_4__[\"default\"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classnames__WEBPACK_IMPORTED_MODULE_3___default()(prefixCls, motionClassName, className);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(\"div\", {\n ref: (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__.composeRef)(resizeObserverRef, ref, motionRef),\n className: cls,\n style: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick,\n onPointerDownCapture: onPointerDownCapture\n }, arrow && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Arrow__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_PopupContent__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (true) {\n Popup.displayName = 'Popup';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popup);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL1BvcHVwL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBEO0FBQ1c7QUFDQztBQUNsQztBQUNGO0FBQ2M7QUFDZTtBQUNuQjtBQUNiO0FBQ0g7QUFDRjtBQUNnQjtBQUMxQyx5QkFBeUIsNkNBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3QkFBd0IsMkNBQWM7QUFDdEMsdUJBQXVCLG9GQUFjO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQSxFQUFFLDRFQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUcsZUFBZSxnREFBbUIsQ0FBQyw4Q0FBSTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CLENBQUMsMERBQWM7QUFDckQ7QUFDQTtBQUNBLEdBQUc7QUFDSCx3QkFBd0IsZ0RBQW1CLENBQUMsaURBQVMsRUFBRSw4RUFBUTtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsZ0JBQWdCLGlEQUFVO0FBQzFCLDBCQUEwQixnREFBbUI7QUFDN0MsYUFBYSwwREFBVTtBQUN2QjtBQUNBLGVBQWUsb0ZBQWEsQ0FBQyxvRkFBYSxDQUFDLG9GQUFhLENBQUMsb0ZBQWE7QUFDdEU7QUFDQTtBQUNBLFNBQVMsNENBQTRDO0FBQ3JEO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sd0JBQXdCLGdEQUFtQixDQUFDLDhDQUFLO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxnQkFBZ0IsZ0RBQW1CLENBQUMsc0RBQVk7QUFDdkQ7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7QUFDSCxDQUFDO0FBQ0QsSUFBSSxJQUFxQztBQUN6QztBQUNBO0FBQ0EsaUVBQWUsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL1BvcHVwL2luZGV4LmpzPzgwYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBDU1NNb3Rpb24gZnJvbSAncmMtbW90aW9uJztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyYy1yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHVzZUxheW91dEVmZmVjdCBmcm9tIFwicmMtdXRpbC9lcy9ob29rcy91c2VMYXlvdXRFZmZlY3RcIjtcbmltcG9ydCB7IGNvbXBvc2VSZWYgfSBmcm9tIFwicmMtdXRpbC9lcy9yZWZcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBBcnJvdyBmcm9tIFwiLi9BcnJvd1wiO1xuaW1wb3J0IE1hc2sgZnJvbSBcIi4vTWFza1wiO1xuaW1wb3J0IFBvcHVwQ29udGVudCBmcm9tIFwiLi9Qb3B1cENvbnRlbnRcIjtcbnZhciBQb3B1cCA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBwb3B1cCA9IHByb3BzLnBvcHVwLFxuICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgc3R5bGUgPSBwcm9wcy5zdHlsZSxcbiAgICB0YXJnZXQgPSBwcm9wcy50YXJnZXQsXG4gICAgX29uVmlzaWJsZUNoYW5nZWQgPSBwcm9wcy5vblZpc2libGVDaGFuZ2VkLFxuICAgIG9wZW4gPSBwcm9wcy5vcGVuLFxuICAgIGtlZXBEb20gPSBwcm9wcy5rZWVwRG9tLFxuICAgIGZyZXNoID0gcHJvcHMuZnJlc2gsXG4gICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgbWFzayA9IHByb3BzLm1hc2ssXG4gICAgYXJyb3cgPSBwcm9wcy5hcnJvdyxcbiAgICBhcnJvd1BvcyA9IHByb3BzLmFycm93UG9zLFxuICAgIGFsaWduID0gcHJvcHMuYWxpZ24sXG4gICAgbW90aW9uID0gcHJvcHMubW90aW9uLFxuICAgIG1hc2tNb3Rpb24gPSBwcm9wcy5tYXNrTW90aW9uLFxuICAgIGZvcmNlUmVuZGVyID0gcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgZ2V0UG9wdXBDb250YWluZXIgPSBwcm9wcy5nZXRQb3B1cENvbnRhaW5lcixcbiAgICBhdXRvRGVzdHJveSA9IHByb3BzLmF1dG9EZXN0cm95LFxuICAgIFBvcnRhbCA9IHByb3BzLnBvcnRhbCxcbiAgICB6SW5kZXggPSBwcm9wcy56SW5kZXgsXG4gICAgb25Nb3VzZUVudGVyID0gcHJvcHMub25Nb3VzZUVudGVyLFxuICAgIG9uTW91c2VMZWF2ZSA9IHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICBvblBvaW50ZXJFbnRlciA9IHByb3BzLm9uUG9pbnRlckVudGVyLFxuICAgIG9uUG9pbnRlckRvd25DYXB0dXJlID0gcHJvcHMub25Qb2ludGVyRG93bkNhcHR1cmUsXG4gICAgcmVhZHkgPSBwcm9wcy5yZWFkeSxcbiAgICBvZmZzZXRYID0gcHJvcHMub2Zmc2V0WCxcbiAgICBvZmZzZXRZID0gcHJvcHMub2Zmc2V0WSxcbiAgICBvZmZzZXRSID0gcHJvcHMub2Zmc2V0UixcbiAgICBvZmZzZXRCID0gcHJvcHMub2Zmc2V0QixcbiAgICBvbkFsaWduID0gcHJvcHMub25BbGlnbixcbiAgICBvblByZXBhcmUgPSBwcm9wcy5vblByZXBhcmUsXG4gICAgc3RyZXRjaCA9IHByb3BzLnN0cmV0Y2gsXG4gICAgdGFyZ2V0V2lkdGggPSBwcm9wcy50YXJnZXRXaWR0aCxcbiAgICB0YXJnZXRIZWlnaHQgPSBwcm9wcy50YXJnZXRIZWlnaHQ7XG4gIHZhciBjaGlsZE5vZGUgPSB0eXBlb2YgcG9wdXAgPT09ICdmdW5jdGlvbicgPyBwb3B1cCgpIDogcG9wdXA7XG5cbiAgLy8gV2UgY2FuIG5vdCByZW1vdmUgaG9sZGVyIG9ubHkgd2hlbiBtb3Rpb24gZmluaXNoZWQuXG4gIHZhciBpc05vZGVWaXNpYmxlID0gb3BlbiB8fCBrZWVwRG9tO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IENvbnRhaW5lciA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIGdldFBvcHVwQ29udGFpbmVyTmVlZFBhcmFtcyA9IChnZXRQb3B1cENvbnRhaW5lciA9PT0gbnVsbCB8fCBnZXRQb3B1cENvbnRhaW5lciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0UG9wdXBDb250YWluZXIubGVuZ3RoKSA+IDA7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZSghZ2V0UG9wdXBDb250YWluZXIgfHwgIWdldFBvcHVwQ29udGFpbmVyTmVlZFBhcmFtcyksXG4gICAgX1JlYWN0JHVzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgc2hvdyA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgc2V0U2hvdyA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgLy8gRGVsYXkgdG8gc2hvdyBzaW5jZSBgZ2V0UG9wdXBDb250YWluZXJgIG5lZWQgdGFyZ2V0IGVsZW1lbnRcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXNob3cgJiYgZ2V0UG9wdXBDb250YWluZXJOZWVkUGFyYW1zICYmIHRhcmdldCkge1xuICAgICAgc2V0U2hvdyh0cnVlKTtcbiAgICB9XG4gIH0sIFtzaG93LCBnZXRQb3B1cENvbnRhaW5lck5lZWRQYXJhbXMsIHRhcmdldF0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gUmVuZGVyID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgaWYgKCFzaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyA+Pj4+PiBPZmZzZXRcbiAgdmFyIEFVVE8gPSAnYXV0byc7XG4gIHZhciBvZmZzZXRTdHlsZSA9IHtcbiAgICBsZWZ0OiAnLTEwMDB2dycsXG4gICAgdG9wOiAnLTEwMDB2aCcsXG4gICAgcmlnaHQ6IEFVVE8sXG4gICAgYm90dG9tOiBBVVRPXG4gIH07XG5cbiAgLy8gU2V0IGFsaWduIHN0eWxlXG4gIGlmIChyZWFkeSB8fCAhb3Blbikge1xuICAgIHZhciBfZXhwZXJpbWVudGFsO1xuICAgIHZhciBwb2ludHMgPSBhbGlnbi5wb2ludHM7XG4gICAgdmFyIGR5bmFtaWNJbnNldCA9IGFsaWduLmR5bmFtaWNJbnNldCB8fCAoKF9leHBlcmltZW50YWwgPSBhbGlnbi5fZXhwZXJpbWVudGFsKSA9PT0gbnVsbCB8fCBfZXhwZXJpbWVudGFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZXhwZXJpbWVudGFsLmR5bmFtaWNJbnNldCk7XG4gICAgdmFyIGFsaWduUmlnaHQgPSBkeW5hbWljSW5zZXQgJiYgcG9pbnRzWzBdWzFdID09PSAncic7XG4gICAgdmFyIGFsaWduQm90dG9tID0gZHluYW1pY0luc2V0ICYmIHBvaW50c1swXVswXSA9PT0gJ2InO1xuICAgIGlmIChhbGlnblJpZ2h0KSB7XG4gICAgICBvZmZzZXRTdHlsZS5yaWdodCA9IG9mZnNldFI7XG4gICAgICBvZmZzZXRTdHlsZS5sZWZ0ID0gQVVUTztcbiAgICB9IGVsc2Uge1xuICAgICAgb2Zmc2V0U3R5bGUubGVmdCA9IG9mZnNldFg7XG4gICAgICBvZmZzZXRTdHlsZS5yaWdodCA9IEFVVE87XG4gICAgfVxuICAgIGlmIChhbGlnbkJvdHRvbSkge1xuICAgICAgb2Zmc2V0U3R5bGUuYm90dG9tID0gb2Zmc2V0QjtcbiAgICAgIG9mZnNldFN0eWxlLnRvcCA9IEFVVE87XG4gICAgfSBlbHNlIHtcbiAgICAgIG9mZnNldFN0eWxlLnRvcCA9IG9mZnNldFk7XG4gICAgICBvZmZzZXRTdHlsZS5ib3R0b20gPSBBVVRPO1xuICAgIH1cbiAgfVxuXG4gIC8vID4+Pj4+IE1pc2NcbiAgdmFyIG1pc2NTdHlsZSA9IHt9O1xuICBpZiAoc3RyZXRjaCkge1xuICAgIGlmIChzdHJldGNoLmluY2x1ZGVzKCdoZWlnaHQnKSAmJiB0YXJnZXRIZWlnaHQpIHtcbiAgICAgIG1pc2NTdHlsZS5oZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgfSBlbHNlIGlmIChzdHJldGNoLmluY2x1ZGVzKCdtaW5IZWlnaHQnKSAmJiB0YXJnZXRIZWlnaHQpIHtcbiAgICAgIG1pc2NTdHlsZS5taW5IZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgfVxuICAgIGlmIChzdHJldGNoLmluY2x1ZGVzKCd3aWR0aCcpICYmIHRhcmdldFdpZHRoKSB7XG4gICAgICBtaXNjU3R5bGUud2lkdGggPSB0YXJnZXRXaWR0aDtcbiAgICB9IGVsc2UgaWYgKHN0cmV0Y2guaW5jbHVkZXMoJ21pbldpZHRoJykgJiYgdGFyZ2V0V2lkdGgpIHtcbiAgICAgIG1pc2NTdHlsZS5taW5XaWR0aCA9IHRhcmdldFdpZHRoO1xuICAgIH1cbiAgfVxuICBpZiAoIW9wZW4pIHtcbiAgICBtaXNjU3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9ydGFsLCB7XG4gICAgb3BlbjogZm9yY2VSZW5kZXIgfHwgaXNOb2RlVmlzaWJsZSxcbiAgICBnZXRDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyICYmIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBnZXRQb3B1cENvbnRhaW5lcih0YXJnZXQpO1xuICAgIH0sXG4gICAgYXV0b0Rlc3Ryb3k6IGF1dG9EZXN0cm95XG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1hc2ssIHtcbiAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICBvcGVuOiBvcGVuLFxuICAgIHpJbmRleDogekluZGV4LFxuICAgIG1hc2s6IG1hc2ssXG4gICAgbW90aW9uOiBtYXNrTW90aW9uXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXNpemVPYnNlcnZlciwge1xuICAgIG9uUmVzaXplOiBvbkFsaWduLFxuICAgIGRpc2FibGVkOiAhb3BlblxuICB9LCBmdW5jdGlvbiAocmVzaXplT2JzZXJ2ZXJSZWYpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTTW90aW9uLCBfZXh0ZW5kcyh7XG4gICAgICBtb3Rpb25BcHBlYXI6IHRydWUsXG4gICAgICBtb3Rpb25FbnRlcjogdHJ1ZSxcbiAgICAgIG1vdGlvbkxlYXZlOiB0cnVlLFxuICAgICAgcmVtb3ZlT25MZWF2ZTogZmFsc2UsXG4gICAgICBmb3JjZVJlbmRlcjogZm9yY2VSZW5kZXIsXG4gICAgICBsZWF2ZWRDbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaGlkZGVuXCIpXG4gICAgfSwgbW90aW9uLCB7XG4gICAgICBvbkFwcGVhclByZXBhcmU6IG9uUHJlcGFyZSxcbiAgICAgIG9uRW50ZXJQcmVwYXJlOiBvblByZXBhcmUsXG4gICAgICB2aXNpYmxlOiBvcGVuLFxuICAgICAgb25WaXNpYmxlQ2hhbmdlZDogZnVuY3Rpb24gb25WaXNpYmxlQ2hhbmdlZChuZXh0VmlzaWJsZSkge1xuICAgICAgICB2YXIgX21vdGlvbiRvblZpc2libGVDaGFuO1xuICAgICAgICBtb3Rpb24gPT09IG51bGwgfHwgbW90aW9uID09PSB2b2lkIDAgfHwgKF9tb3Rpb24kb25WaXNpYmxlQ2hhbiA9IG1vdGlvbi5vblZpc2libGVDaGFuZ2VkKSA9PT0gbnVsbCB8fCBfbW90aW9uJG9uVmlzaWJsZUNoYW4gPT09IHZvaWQgMCB8fCBfbW90aW9uJG9uVmlzaWJsZUNoYW4uY2FsbChtb3Rpb24sIG5leHRWaXNpYmxlKTtcbiAgICAgICAgX29uVmlzaWJsZUNoYW5nZWQobmV4dFZpc2libGUpO1xuICAgICAgfVxuICAgIH0pLCBmdW5jdGlvbiAoX3JlZiwgbW90aW9uUmVmKSB7XG4gICAgICB2YXIgbW90aW9uQ2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgICAgIG1vdGlvblN0eWxlID0gX3JlZi5zdHlsZTtcbiAgICAgIHZhciBjbHMgPSBjbGFzc05hbWVzKHByZWZpeENscywgbW90aW9uQ2xhc3NOYW1lLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgcmVmOiBjb21wb3NlUmVmKHJlc2l6ZU9ic2VydmVyUmVmLCByZWYsIG1vdGlvblJlZiksXG4gICAgICAgIGNsYXNzTmFtZTogY2xzLFxuICAgICAgICBzdHlsZTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgJy0tYXJyb3cteCc6IFwiXCIuY29uY2F0KGFycm93UG9zLnggfHwgMCwgXCJweFwiKSxcbiAgICAgICAgICAnLS1hcnJvdy15JzogXCJcIi5jb25jYXQoYXJyb3dQb3MueSB8fCAwLCBcInB4XCIpXG4gICAgICAgIH0sIG9mZnNldFN0eWxlKSwgbWlzY1N0eWxlKSwgbW90aW9uU3R5bGUpLCB7fSwge1xuICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgIHpJbmRleDogekluZGV4XG4gICAgICAgIH0sIHN0eWxlKSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlLFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogb25Qb2ludGVyRW50ZXIsXG4gICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiBvblBvaW50ZXJEb3duQ2FwdHVyZVxuICAgICAgfSwgYXJyb3cgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQXJyb3csIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGFycm93OiBhcnJvdyxcbiAgICAgICAgYXJyb3dQb3M6IGFycm93UG9zLFxuICAgICAgICBhbGlnbjogYWxpZ25cbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQb3B1cENvbnRlbnQsIHtcbiAgICAgICAgY2FjaGU6ICFvcGVuICYmICFmcmVzaFxuICAgICAgfSwgY2hpbGROb2RlKSk7XG4gICAgfSk7XG4gIH0pKTtcbn0pO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgUG9wdXAuZGlzcGxheU5hbWUgPSAnUG9wdXAnO1xufVxuZXhwb3J0IGRlZmF1bHQgUG9wdXA7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/Popup/index.js\n");
/***/ }),
@@ -1424,7 +2132,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__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 */ useAlign)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rc-util/es/Dom/findDOMNode */ \"./node_modules/rc-util/es/Dom/findDOMNode.js\");\n/* harmony import */ var rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rc-util/es/Dom/isVisible */ \"./node_modules/rc-util/es/Dom/isVisible.js\");\n/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/hooks/useEvent */ \"./node_modules/rc-util/es/hooks/useEvent.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\n\n\n\n\n\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nfunction useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_6__.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef(0);\n var scrollerList = react__WEBPACK_IMPORTED_MODULE_6__.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return (0,_util__WEBPACK_IMPORTED_MODULE_7__.collectScroller)(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getWin)(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var rect = target.getBoundingClientRect();\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getVisibleArea)(scrollRegion, scrollerList);\n var visibleRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getVisibleArea)(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = (0,_util__WEBPACK_IMPORTED_MODULE_7__.toNum)(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = (0,_util__WEBPACK_IMPORTED_MODULE_7__.toNum)(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__.isDOM)(target) && !(0,rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n setOffsetInfo({\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n });\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, ori), {}, {\n ready: false\n });\n });\n };\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(resetReady, [placement]);\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2hvb2tzL3VzZUFsaWduLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFxRTtBQUNDO0FBQ25CO0FBQ0Y7QUFDQTtBQUNjO0FBQ2hDO0FBQzBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG9GQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNlO0FBQ2Ysd0JBQXdCLDJDQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHVCQUF1QixvRkFBYztBQUNyQztBQUNBO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLHFCQUFxQiwwQ0FBYTtBQUNsQztBQUNBO0FBQ0E7QUFDQSxXQUFXLHNEQUFlO0FBQzFCLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlDQUFZLEdBQUc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLHFFQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDZDQUFNO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQixvRkFBYSxDQUFDLG9GQUFhLEdBQUc7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIscURBQWM7QUFDM0MsOEJBQThCLHFEQUFjO0FBQzVDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IsNENBQUs7QUFDekIsb0JBQW9CLDRDQUFLOztBQUV6QjtBQUNBLDRDQUE0QyxpRUFBSyxhQUFhLG9FQUFTO0FBQ3ZFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsb0ZBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLG9GQUFjO0FBQzFDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0Isb0ZBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEJBQTBCLG9GQUFhLEdBQUc7O0FBRTFDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxvRkFBYSxDQUFDLG9GQUFhLEdBQUcsVUFBVTtBQUNyRDtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxFQUFFLDRFQUFlO0FBQ2pCLEVBQUUsNEVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvdHJpZ2dlci9lcy9ob29rcy91c2VBbGlnbi5qcz85NDRjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCB7IGlzRE9NIH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlXCI7XG5pbXBvcnQgaXNWaXNpYmxlIGZyb20gXCJyYy11dGlsL2VzL0RvbS9pc1Zpc2libGVcIjtcbmltcG9ydCB1c2VFdmVudCBmcm9tIFwicmMtdXRpbC9lcy9ob29rcy91c2VFdmVudFwiO1xuaW1wb3J0IHVzZUxheW91dEVmZmVjdCBmcm9tIFwicmMtdXRpbC9lcy9ob29rcy91c2VMYXlvdXRFZmZlY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbGxlY3RTY3JvbGxlciwgZ2V0VmlzaWJsZUFyZWEsIGdldFdpbiwgdG9OdW0gfSBmcm9tIFwiLi4vdXRpbFwiO1xuZnVuY3Rpb24gZ2V0VW5pdE9mZnNldChzaXplKSB7XG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7XG4gIHZhciBvZmZzZXRTdHIgPSBcIlwiLmNvbmNhdChvZmZzZXQpO1xuICB2YXIgY2VsbHMgPSBvZmZzZXRTdHIubWF0Y2goL14oLiopXFwlJC8pO1xuICBpZiAoY2VsbHMpIHtcbiAgICByZXR1cm4gc2l6ZSAqIChwYXJzZUZsb2F0KGNlbGxzWzFdKSAvIDEwMCk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlRmxvYXQob2Zmc2V0U3RyKTtcbn1cbmZ1bmN0aW9uIGdldE51bWJlck9mZnNldChyZWN0LCBvZmZzZXQpIHtcbiAgdmFyIF9yZWYgPSBvZmZzZXQgfHwgW10sXG4gICAgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICBvZmZzZXRYID0gX3JlZjJbMF0sXG4gICAgb2Zmc2V0WSA9IF9yZWYyWzFdO1xuICByZXR1cm4gW2dldFVuaXRPZmZzZXQocmVjdC53aWR0aCwgb2Zmc2V0WCksIGdldFVuaXRPZmZzZXQocmVjdC5oZWlnaHQsIG9mZnNldFkpXTtcbn1cbmZ1bmN0aW9uIHNwbGl0UG9pbnRzKCkge1xuICB2YXIgcG9pbnRzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnJztcbiAgcmV0dXJuIFtwb2ludHNbMF0sIHBvaW50c1sxXV07XG59XG5mdW5jdGlvbiBnZXRBbGlnblBvaW50KHJlY3QsIHBvaW50cykge1xuICB2YXIgdG9wQm90dG9tID0gcG9pbnRzWzBdO1xuICB2YXIgbGVmdFJpZ2h0ID0gcG9pbnRzWzFdO1xuICB2YXIgeDtcbiAgdmFyIHk7XG5cbiAgLy8gVG9wICYgQm90dG9tXG4gIGlmICh0b3BCb3R0b20gPT09ICd0Jykge1xuICAgIHkgPSByZWN0Lnk7XG4gIH0gZWxzZSBpZiAodG9wQm90dG9tID09PSAnYicpIHtcbiAgICB5ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQ7XG4gIH0gZWxzZSB7XG4gICAgeSA9IHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gMjtcbiAgfVxuXG4gIC8vIExlZnQgJiBSaWdodFxuICBpZiAobGVmdFJpZ2h0ID09PSAnbCcpIHtcbiAgICB4ID0gcmVjdC54O1xuICB9IGVsc2UgaWYgKGxlZnRSaWdodCA9PT0gJ3InKSB7XG4gICAgeCA9IHJlY3QueCArIHJlY3Qud2lkdGg7XG4gIH0gZWxzZSB7XG4gICAgeCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICB9XG4gIHJldHVybiB7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59XG5mdW5jdGlvbiByZXZlcnNlUG9pbnRzKHBvaW50cywgaW5kZXgpIHtcbiAgdmFyIHJldmVyc2VNYXAgPSB7XG4gICAgdDogJ2InLFxuICAgIGI6ICd0JyxcbiAgICBsOiAncicsXG4gICAgcjogJ2wnXG4gIH07XG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uIChwb2ludCwgaSkge1xuICAgIGlmIChpID09PSBpbmRleCkge1xuICAgICAgcmV0dXJuIHJldmVyc2VNYXBbcG9pbnRdIHx8ICdjJztcbiAgICB9XG4gICAgcmV0dXJuIHBvaW50O1xuICB9KS5qb2luKCcnKTtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUFsaWduKG9wZW4sIHBvcHVwRWxlLCB0YXJnZXQsIHBsYWNlbWVudCwgYnVpbHRpblBsYWNlbWVudHMsIHBvcHVwQWxpZ24sIG9uUG9wdXBBbGlnbikge1xuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoe1xuICAgICAgcmVhZHk6IGZhbHNlLFxuICAgICAgb2Zmc2V0WDogMCxcbiAgICAgIG9mZnNldFk6IDAsXG4gICAgICBvZmZzZXRSOiAwLFxuICAgICAgb2Zmc2V0QjogMCxcbiAgICAgIGFycm93WDogMCxcbiAgICAgIGFycm93WTogMCxcbiAgICAgIHNjYWxlWDogMSxcbiAgICAgIHNjYWxlWTogMSxcbiAgICAgIGFsaWduOiBidWlsdGluUGxhY2VtZW50c1twbGFjZW1lbnRdIHx8IHt9XG4gICAgfSksXG4gICAgX1JlYWN0JHVzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgb2Zmc2V0SW5mbyA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgc2V0T2Zmc2V0SW5mbyA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG4gIHZhciBhbGlnbkNvdW50UmVmID0gUmVhY3QudXNlUmVmKDApO1xuICB2YXIgc2Nyb2xsZXJMaXN0ID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFwb3B1cEVsZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gY29sbGVjdFNjcm9sbGVyKHBvcHVwRWxlKTtcbiAgfSwgW3BvcHVwRWxlXSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBGbGlwID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFdlIHdpbGwgbWVtbyBmbGlwIGluZm8uXG4gIC8vIElmIHNpemUgY2hhbmdlIHRvIG1ha2UgZmxpcCwgaXQgd2lsbCBtZW1vIHRoZSBmbGlwIGluZm8gYW5kIHVzZSBpdCBpbiBuZXh0IGFsaWduLlxuICB2YXIgcHJldkZsaXBSZWYgPSBSZWFjdC51c2VSZWYoe30pO1xuICB2YXIgcmVzZXRGbGlwQ2FjaGUgPSBmdW5jdGlvbiByZXNldEZsaXBDYWNoZSgpIHtcbiAgICBwcmV2RmxpcFJlZi5jdXJyZW50ID0ge307XG4gIH07XG4gIGlmICghb3Blbikge1xuICAgIHJlc2V0RmxpcENhY2hlKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IEFsaWduID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgdmFyIG9uQWxpZ24gPSB1c2VFdmVudChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHBvcHVwRWxlICYmIHRhcmdldCAmJiBvcGVuKSB7XG4gICAgICB2YXIgX3BvcHVwRWxlbWVudCRwYXJlbnRFLCBfcG9wdXBFbGVtZW50JHBhcmVudEUyO1xuICAgICAgdmFyIHBvcHVwRWxlbWVudCA9IHBvcHVwRWxlO1xuICAgICAgdmFyIGRvYyA9IHBvcHVwRWxlbWVudC5vd25lckRvY3VtZW50O1xuICAgICAgdmFyIHdpbiA9IGdldFdpbihwb3B1cEVsZW1lbnQpO1xuICAgICAgdmFyIF93aW4kZ2V0Q29tcHV0ZWRTdHlsZSA9IHdpbi5nZXRDb21wdXRlZFN0eWxlKHBvcHVwRWxlbWVudCksXG4gICAgICAgIHdpZHRoID0gX3dpbiRnZXRDb21wdXRlZFN0eWxlLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBfd2luJGdldENvbXB1dGVkU3R5bGUuaGVpZ2h0LFxuICAgICAgICBwb3B1cFBvc2l0aW9uID0gX3dpbiRnZXRDb21wdXRlZFN0eWxlLnBvc2l0aW9uO1xuICAgICAgdmFyIG9yaWdpbkxlZnQgPSBwb3B1cEVsZW1lbnQuc3R5bGUubGVmdDtcbiAgICAgIHZhciBvcmlnaW5Ub3AgPSBwb3B1cEVsZW1lbnQuc3R5bGUudG9wO1xuICAgICAgdmFyIG9yaWdpblJpZ2h0ID0gcG9wdXBFbGVtZW50LnN0eWxlLnJpZ2h0O1xuICAgICAgdmFyIG9yaWdpbkJvdHRvbSA9IHBvcHVwRWxlbWVudC5zdHlsZS5ib3R0b207XG4gICAgICB2YXIgb3JpZ2luT3ZlcmZsb3cgPSBwb3B1cEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c7XG5cbiAgICAgIC8vIFBsYWNlbWVudFxuICAgICAgdmFyIHBsYWNlbWVudEluZm8gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGJ1aWx0aW5QbGFjZW1lbnRzW3BsYWNlbWVudF0pLCBwb3B1cEFsaWduKTtcblxuICAgICAgLy8gcGxhY2Vob2xkZXIgZWxlbWVudFxuICAgICAgdmFyIHBsYWNlaG9sZGVyRWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIChfcG9wdXBFbGVtZW50JHBhcmVudEUgPSBwb3B1cEVsZW1lbnQucGFyZW50RWxlbWVudCkgPT09IG51bGwgfHwgX3BvcHVwRWxlbWVudCRwYXJlbnRFID09PSB2b2lkIDAgfHwgX3BvcHVwRWxlbWVudCRwYXJlbnRFLmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUubGVmdCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRMZWZ0LCBcInB4XCIpO1xuICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLnRvcCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRUb3AsIFwicHhcIik7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBwb3B1cFBvc2l0aW9uO1xuICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRIZWlnaHQsIFwicHhcIik7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUud2lkdGggPSBcIlwiLmNvbmNhdChwb3B1cEVsZW1lbnQub2Zmc2V0V2lkdGgsIFwicHhcIik7XG5cbiAgICAgIC8vIFJlc2V0IGZpcnN0XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS50b3AgPSAnMCc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSBhbGlnbiBzdHlsZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIGB0cmFuc2Zvcm1gIGNhc2VcbiAgICAgIHZhciB0YXJnZXRSZWN0O1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgICAgICB0YXJnZXRSZWN0ID0ge1xuICAgICAgICAgIHg6IHRhcmdldFswXSxcbiAgICAgICAgICB5OiB0YXJnZXRbMV0sXG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgaGVpZ2h0OiAwXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGFyZ2V0UmVjdCA9IHtcbiAgICAgICAgICB4OiByZWN0LngsXG4gICAgICAgICAgeTogcmVjdC55LFxuICAgICAgICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgICAgICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHZhciBwb3B1cFJlY3QgPSBwb3B1cEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB2YXIgX2RvYyRkb2N1bWVudEVsZW1lbnQgPSBkb2MuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgICBjbGllbnRXaWR0aCA9IF9kb2MkZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLFxuICAgICAgICBjbGllbnRIZWlnaHQgPSBfZG9jJGRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsXG4gICAgICAgIHNjcm9sbFdpZHRoID0gX2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgsXG4gICAgICAgIHNjcm9sbEhlaWdodCA9IF9kb2MkZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCxcbiAgICAgICAgc2Nyb2xsVG9wID0gX2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLFxuICAgICAgICBzY3JvbGxMZWZ0ID0gX2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICAgIHZhciBwb3B1cEhlaWdodCA9IHBvcHVwUmVjdC5oZWlnaHQ7XG4gICAgICB2YXIgcG9wdXBXaWR0aCA9IHBvcHVwUmVjdC53aWR0aDtcbiAgICAgIHZhciB0YXJnZXRIZWlnaHQgPSB0YXJnZXRSZWN0LmhlaWdodDtcbiAgICAgIHZhciB0YXJnZXRXaWR0aCA9IHRhcmdldFJlY3Qud2lkdGg7XG5cbiAgICAgIC8vIEdldCBib3VuZGluZyBvZiB2aXNpYmxlIGFyZWFcbiAgICAgIHZhciB2aXNpYmxlUmVnaW9uID0ge1xuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIHJpZ2h0OiBjbGllbnRXaWR0aCxcbiAgICAgICAgYm90dG9tOiBjbGllbnRIZWlnaHRcbiAgICAgIH07XG4gICAgICB2YXIgc2Nyb2xsUmVnaW9uID0ge1xuICAgICAgICBsZWZ0OiAtc2Nyb2xsTGVmdCxcbiAgICAgICAgdG9wOiAtc2Nyb2xsVG9wLFxuICAgICAgICByaWdodDogc2Nyb2xsV2lkdGggLSBzY3JvbGxMZWZ0LFxuICAgICAgICBib3R0b206IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcFxuICAgICAgfTtcbiAgICAgIHZhciBodG1sUmVnaW9uID0gcGxhY2VtZW50SW5mby5odG1sUmVnaW9uO1xuICAgICAgdmFyIFZJU0lCTEUgPSAndmlzaWJsZSc7XG4gICAgICB2YXIgVklTSUJMRV9GSVJTVCA9ICd2aXNpYmxlRmlyc3QnO1xuICAgICAgaWYgKGh0bWxSZWdpb24gIT09ICdzY3JvbGwnICYmIGh0bWxSZWdpb24gIT09IFZJU0lCTEVfRklSU1QpIHtcbiAgICAgICAgaHRtbFJlZ2lvbiA9IFZJU0lCTEU7XG4gICAgICB9XG4gICAgICB2YXIgaXNWaXNpYmxlRmlyc3QgPSBodG1sUmVnaW9uID09PSBWSVNJQkxFX0ZJUlNUO1xuICAgICAgdmFyIHNjcm9sbFJlZ2lvbkFyZWEgPSBnZXRWaXNpYmxlQXJlYShzY3JvbGxSZWdpb24sIHNjcm9sbGVyTGlzdCk7XG4gICAgICB2YXIgdmlzaWJsZVJlZ2lvbkFyZWEgPSBnZXRWaXNpYmxlQXJlYSh2aXNpYmxlUmVnaW9uLCBzY3JvbGxlckxpc3QpO1xuICAgICAgdmFyIHZpc2libGVBcmVhID0gaHRtbFJlZ2lvbiA9PT0gVklTSUJMRSA/IHZpc2libGVSZWdpb25BcmVhIDogc2Nyb2xsUmVnaW9uQXJlYTtcblxuICAgICAgLy8gV2hlbiBzZXQgdG8gYHZpc2libGVGaXJzdGAsXG4gICAgICAvLyB0aGUgY2hlY2sgYGFkanVzdGAgbG9naWMgd2lsbCB1c2UgYHZpc2libGVSZWdpb25gIGZvciBjaGVjayBmaXJzdC5cbiAgICAgIHZhciBhZGp1c3RDaGVja1Zpc2libGVBcmVhID0gaXNWaXNpYmxlRmlyc3QgPyB2aXNpYmxlUmVnaW9uQXJlYSA6IHZpc2libGVBcmVhO1xuXG4gICAgICAvLyBSZWNvcmQgcmlnaHQgJiBib3R0b20gYWxpZ24gZGF0YVxuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUudG9wID0gJ2F1dG8nO1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwJztcbiAgICAgIHZhciBwb3B1cE1pcnJvclJlY3QgPSBwb3B1cEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIC8vIFJlc2V0IGJhY2tcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS5sZWZ0ID0gb3JpZ2luTGVmdDtcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS50b3AgPSBvcmlnaW5Ub3A7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUucmlnaHQgPSBvcmlnaW5SaWdodDtcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS5ib3R0b20gPSBvcmlnaW5Cb3R0b207XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSBvcmlnaW5PdmVyZmxvdztcbiAgICAgIChfcG9wdXBFbGVtZW50JHBhcmVudEUyID0gcG9wdXBFbGVtZW50LnBhcmVudEVsZW1lbnQpID09PSBudWxsIHx8IF9wb3B1cEVsZW1lbnQkcGFyZW50RTIgPT09IHZvaWQgMCB8fCBfcG9wdXBFbGVtZW50JHBhcmVudEUyLnJlbW92ZUNoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSBzY2FsZVxuICAgICAgdmFyIF9zY2FsZVggPSB0b051bShNYXRoLnJvdW5kKHBvcHVwV2lkdGggLyBwYXJzZUZsb2F0KHdpZHRoKSAqIDEwMDApIC8gMTAwMCk7XG4gICAgICB2YXIgX3NjYWxlWSA9IHRvTnVtKE1hdGgucm91bmQocG9wdXBIZWlnaHQgLyBwYXJzZUZsb2F0KGhlaWdodCkgKiAxMDAwKSAvIDEwMDApO1xuXG4gICAgICAvLyBObyBuZWVkIHRvIGFsaWduIHNpbmNlIGl0J3Mgbm90IHZpc2libGUgaW4gdmlld1xuICAgICAgaWYgKF9zY2FsZVggPT09IDAgfHwgX3NjYWxlWSA9PT0gMCB8fCBpc0RPTSh0YXJnZXQpICYmICFpc1Zpc2libGUodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldFxuICAgICAgdmFyIG9mZnNldCA9IHBsYWNlbWVudEluZm8ub2Zmc2V0LFxuICAgICAgICB0YXJnZXRPZmZzZXQgPSBwbGFjZW1lbnRJbmZvLnRhcmdldE9mZnNldDtcbiAgICAgIHZhciBfZ2V0TnVtYmVyT2Zmc2V0ID0gZ2V0TnVtYmVyT2Zmc2V0KHBvcHVwUmVjdCwgb2Zmc2V0KSxcbiAgICAgICAgX2dldE51bWJlck9mZnNldDIgPSBfc2xpY2VkVG9BcnJheShfZ2V0TnVtYmVyT2Zmc2V0LCAyKSxcbiAgICAgICAgcG9wdXBPZmZzZXRYID0gX2dldE51bWJlck9mZnNldDJbMF0sXG4gICAgICAgIHBvcHVwT2Zmc2V0WSA9IF9nZXROdW1iZXJPZmZzZXQyWzFdO1xuICAgICAgdmFyIF9nZXROdW1iZXJPZmZzZXQzID0gZ2V0TnVtYmVyT2Zmc2V0KHRhcmdldFJlY3QsIHRhcmdldE9mZnNldCksXG4gICAgICAgIF9nZXROdW1iZXJPZmZzZXQ0ID0gX3NsaWNlZFRvQXJyYXkoX2dldE51bWJlck9mZnNldDMsIDIpLFxuICAgICAgICB0YXJnZXRPZmZzZXRYID0gX2dldE51bWJlck9mZnNldDRbMF0sXG4gICAgICAgIHRhcmdldE9mZnNldFkgPSBfZ2V0TnVtYmVyT2Zmc2V0NFsxXTtcbiAgICAgIHRhcmdldFJlY3QueCAtPSB0YXJnZXRPZmZzZXRYO1xuICAgICAgdGFyZ2V0UmVjdC55IC09IHRhcmdldE9mZnNldFk7XG5cbiAgICAgIC8vIFBvaW50c1xuICAgICAgdmFyIF9yZWYzID0gcGxhY2VtZW50SW5mby5wb2ludHMgfHwgW10sXG4gICAgICAgIF9yZWY0ID0gX3NsaWNlZFRvQXJyYXkoX3JlZjMsIDIpLFxuICAgICAgICBwb3B1cFBvaW50ID0gX3JlZjRbMF0sXG4gICAgICAgIHRhcmdldFBvaW50ID0gX3JlZjRbMV07XG4gICAgICB2YXIgdGFyZ2V0UG9pbnRzID0gc3BsaXRQb2ludHModGFyZ2V0UG9pbnQpO1xuICAgICAgdmFyIHBvcHVwUG9pbnRzID0gc3BsaXRQb2ludHMocG9wdXBQb2ludCk7XG4gICAgICB2YXIgdGFyZ2V0QWxpZ25Qb2ludCA9IGdldEFsaWduUG9pbnQodGFyZ2V0UmVjdCwgdGFyZ2V0UG9pbnRzKTtcbiAgICAgIHZhciBwb3B1cEFsaWduUG9pbnQgPSBnZXRBbGlnblBvaW50KHBvcHVwUmVjdCwgcG9wdXBQb2ludHMpO1xuXG4gICAgICAvLyBSZWFsIGFsaWduIGluZm8gbWF5IG5vdCBzYW1lIGFzIG9yaWdpbiBvbmVcbiAgICAgIHZhciBuZXh0QWxpZ25JbmZvID0gX29iamVjdFNwcmVhZCh7fSwgcGxhY2VtZW50SW5mbyk7XG5cbiAgICAgIC8vIE5leHQgT2Zmc2V0XG4gICAgICB2YXIgbmV4dE9mZnNldFggPSB0YXJnZXRBbGlnblBvaW50LnggLSBwb3B1cEFsaWduUG9pbnQueCArIHBvcHVwT2Zmc2V0WDtcbiAgICAgIHZhciBuZXh0T2Zmc2V0WSA9IHRhcmdldEFsaWduUG9pbnQueSAtIHBvcHVwQWxpZ25Qb2ludC55ICsgcG9wdXBPZmZzZXRZO1xuXG4gICAgICAvLyA9PT09PT09PT09PT09PSBJbnRlcnNlY3Rpb24gPT09PT09PT09PT09PT09XG4gICAgICAvLyBHZXQgYXJlYSBieSBwb3NpdGlvbi4gVXNlZCBmb3IgY2hlY2sgaWYgZmxpcCBhcmVhIGlzIGJldHRlclxuICAgICAgZnVuY3Rpb24gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEob2Zmc2V0WCwgb2Zmc2V0WSkge1xuICAgICAgICB2YXIgYXJlYSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogdmlzaWJsZUFyZWE7XG4gICAgICAgIHZhciBsID0gcG9wdXBSZWN0LnggKyBvZmZzZXRYO1xuICAgICAgICB2YXIgdCA9IHBvcHVwUmVjdC55ICsgb2Zmc2V0WTtcbiAgICAgICAgdmFyIHIgPSBsICsgcG9wdXBXaWR0aDtcbiAgICAgICAgdmFyIGIgPSB0ICsgcG9wdXBIZWlnaHQ7XG4gICAgICAgIHZhciB2aXNpYmxlTCA9IE1hdGgubWF4KGwsIGFyZWEubGVmdCk7XG4gICAgICAgIHZhciB2aXNpYmxlVCA9IE1hdGgubWF4KHQsIGFyZWEudG9wKTtcbiAgICAgICAgdmFyIHZpc2libGVSID0gTWF0aC5taW4ociwgYXJlYS5yaWdodCk7XG4gICAgICAgIHZhciB2aXNpYmxlQiA9IE1hdGgubWluKGIsIGFyZWEuYm90dG9tKTtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsICh2aXNpYmxlUiAtIHZpc2libGVMKSAqICh2aXNpYmxlQiAtIHZpc2libGVUKSk7XG4gICAgICB9XG4gICAgICB2YXIgb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgbmV4dE9mZnNldFkpO1xuXG4gICAgICAvLyBBcyBgdmlzaWJsZUZpcnN0YCwgd2UgcHJlcGFyZSB0aGlzIGZvciBjaGVja1xuICAgICAgdmFyIG9yaWdpbkludGVyc2VjdGlvblJlY29tbWVuZEFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgbmV4dE9mZnNldFksIHZpc2libGVSZWdpb25BcmVhKTtcblxuICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gT3ZlcmZsb3cgPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICB2YXIgdGFyZ2V0QWxpZ25Qb2ludFRMID0gZ2V0QWxpZ25Qb2ludCh0YXJnZXRSZWN0LCBbJ3QnLCAnbCddKTtcbiAgICAgIHZhciBwb3B1cEFsaWduUG9pbnRUTCA9IGdldEFsaWduUG9pbnQocG9wdXBSZWN0LCBbJ3QnLCAnbCddKTtcbiAgICAgIHZhciB0YXJnZXRBbGlnblBvaW50QlIgPSBnZXRBbGlnblBvaW50KHRhcmdldFJlY3QsIFsnYicsICdyJ10pO1xuICAgICAgdmFyIHBvcHVwQWxpZ25Qb2ludEJSID0gZ2V0QWxpZ25Qb2ludChwb3B1cFJlY3QsIFsnYicsICdyJ10pO1xuICAgICAgdmFyIG92ZXJmbG93ID0gcGxhY2VtZW50SW5mby5vdmVyZmxvdyB8fCB7fTtcbiAgICAgIHZhciBhZGp1c3RYID0gb3ZlcmZsb3cuYWRqdXN0WCxcbiAgICAgICAgYWRqdXN0WSA9IG92ZXJmbG93LmFkanVzdFksXG4gICAgICAgIHNoaWZ0WCA9IG92ZXJmbG93LnNoaWZ0WCxcbiAgICAgICAgc2hpZnRZID0gb3ZlcmZsb3cuc2hpZnRZO1xuICAgICAgdmFyIHN1cHBvcnRBZGp1c3QgPSBmdW5jdGlvbiBzdXBwb3J0QWRqdXN0KHZhbCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsID49IDA7XG4gICAgICB9O1xuXG4gICAgICAvLyBQcmVwYXJlIHBvc2l0aW9uXG4gICAgICB2YXIgbmV4dFBvcHVwWTtcbiAgICAgIHZhciBuZXh0UG9wdXBCb3R0b207XG4gICAgICB2YXIgbmV4dFBvcHVwWDtcbiAgICAgIHZhciBuZXh0UG9wdXBSaWdodDtcbiAgICAgIGZ1bmN0aW9uIHN5bmNOZXh0UG9wdXBQb3NpdGlvbigpIHtcbiAgICAgICAgbmV4dFBvcHVwWSA9IHBvcHVwUmVjdC55ICsgbmV4dE9mZnNldFk7XG4gICAgICAgIG5leHRQb3B1cEJvdHRvbSA9IG5leHRQb3B1cFkgKyBwb3B1cEhlaWdodDtcbiAgICAgICAgbmV4dFBvcHVwWCA9IHBvcHVwUmVjdC54ICsgbmV4dE9mZnNldFg7XG4gICAgICAgIG5leHRQb3B1cFJpZ2h0ID0gbmV4dFBvcHVwWCArIHBvcHVwV2lkdGg7XG4gICAgICB9XG4gICAgICBzeW5jTmV4dFBvcHVwUG9zaXRpb24oKTtcblxuICAgICAgLy8gPj4+Pj4+Pj4+PiBUb3AgJiBCb3R0b21cbiAgICAgIHZhciBuZWVkQWRqdXN0WSA9IHN1cHBvcnRBZGp1c3QoYWRqdXN0WSk7XG4gICAgICB2YXIgc2FtZVRCID0gcG9wdXBQb2ludHNbMF0gPT09IHRhcmdldFBvaW50c1swXTtcblxuICAgICAgLy8gQm90dG9tIHRvIFRvcFxuICAgICAgaWYgKG5lZWRBZGp1c3RZICYmIHBvcHVwUG9pbnRzWzBdID09PSAndCcgJiYgKG5leHRQb3B1cEJvdHRvbSA+IGFkanVzdENoZWNrVmlzaWJsZUFyZWEuYm90dG9tIHx8IHByZXZGbGlwUmVmLmN1cnJlbnQuYnQpKSB7XG4gICAgICAgIHZhciB0bXBOZXh0T2Zmc2V0WSA9IG5leHRPZmZzZXRZO1xuICAgICAgICBpZiAoc2FtZVRCKSB7XG4gICAgICAgICAgdG1wTmV4dE9mZnNldFkgLT0gcG9wdXBIZWlnaHQgLSB0YXJnZXRIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG1wTmV4dE9mZnNldFkgPSB0YXJnZXRBbGlnblBvaW50VEwueSAtIHBvcHVwQWxpZ25Qb2ludEJSLnkgLSBwb3B1cE9mZnNldFk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5ld1Zpc2libGVBcmVhID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEobmV4dE9mZnNldFgsIHRtcE5leHRPZmZzZXRZKTtcbiAgICAgICAgdmFyIG5ld1Zpc2libGVSZWNvbW1lbmRBcmVhID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEobmV4dE9mZnNldFgsIHRtcE5leHRPZmZzZXRZLCB2aXNpYmxlUmVnaW9uQXJlYSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gT2YgY291cnNlIHVzZSBsYXJnZXIgb25lXG4gICAgICAgIG5ld1Zpc2libGVBcmVhID4gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgfHwgbmV3VmlzaWJsZUFyZWEgPT09IG9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhICYmICghaXNWaXNpYmxlRmlyc3QgfHxcbiAgICAgICAgLy8gQ2hvb3NlIHJlY29tbWVuZCBvbmVcbiAgICAgICAgbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEgPj0gb3JpZ2luSW50ZXJzZWN0aW9uUmVjb21tZW5kQXJlYSkpIHtcbiAgICAgICAgICBwcmV2RmxpcFJlZi5jdXJyZW50LmJ0ID0gdHJ1ZTtcbiAgICAgICAgICBuZXh0T2Zmc2V0WSA9IHRtcE5leHRPZmZzZXRZO1xuICAgICAgICAgIHBvcHVwT2Zmc2V0WSA9IC1wb3B1cE9mZnNldFk7XG4gICAgICAgICAgbmV4dEFsaWduSW5mby5wb2ludHMgPSBbcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywgMCksIHJldmVyc2VQb2ludHModGFyZ2V0UG9pbnRzLCAwKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC5idCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvcCB0byBCb3R0b21cbiAgICAgIGlmIChuZWVkQWRqdXN0WSAmJiBwb3B1cFBvaW50c1swXSA9PT0gJ2InICYmIChuZXh0UG9wdXBZIDwgYWRqdXN0Q2hlY2tWaXNpYmxlQXJlYS50b3AgfHwgcHJldkZsaXBSZWYuY3VycmVudC50YikpIHtcbiAgICAgICAgdmFyIF90bXBOZXh0T2Zmc2V0WSA9IG5leHRPZmZzZXRZO1xuICAgICAgICBpZiAoc2FtZVRCKSB7XG4gICAgICAgICAgX3RtcE5leHRPZmZzZXRZICs9IHBvcHVwSGVpZ2h0IC0gdGFyZ2V0SGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90bXBOZXh0T2Zmc2V0WSA9IHRhcmdldEFsaWduUG9pbnRCUi55IC0gcG9wdXBBbGlnblBvaW50VEwueSAtIHBvcHVwT2Zmc2V0WTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX25ld1Zpc2libGVBcmVhID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEobmV4dE9mZnNldFgsIF90bXBOZXh0T2Zmc2V0WSk7XG4gICAgICAgIHZhciBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgX3RtcE5leHRPZmZzZXRZLCB2aXNpYmxlUmVnaW9uQXJlYSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gT2YgY291cnNlIHVzZSBsYXJnZXIgb25lXG4gICAgICAgIF9uZXdWaXNpYmxlQXJlYSA+IG9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhIHx8IF9uZXdWaXNpYmxlQXJlYSA9PT0gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgJiYgKCFpc1Zpc2libGVGaXJzdCB8fFxuICAgICAgICAvLyBDaG9vc2UgcmVjb21tZW5kIG9uZVxuICAgICAgICBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEgPj0gb3JpZ2luSW50ZXJzZWN0aW9uUmVjb21tZW5kQXJlYSkpIHtcbiAgICAgICAgICBwcmV2RmxpcFJlZi5jdXJyZW50LnRiID0gdHJ1ZTtcbiAgICAgICAgICBuZXh0T2Zmc2V0WSA9IF90bXBOZXh0T2Zmc2V0WTtcbiAgICAgICAgICBwb3B1cE9mZnNldFkgPSAtcG9wdXBPZmZzZXRZO1xuICAgICAgICAgIG5leHRBbGlnbkluZm8ucG9pbnRzID0gW3JldmVyc2VQb2ludHMocG9wdXBQb2ludHMsIDApLCByZXZlcnNlUG9pbnRzKHRhcmdldFBvaW50cywgMCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZGbGlwUmVmLmN1cnJlbnQudGIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyA+Pj4+Pj4+Pj4+IExlZnQgJiBSaWdodFxuICAgICAgdmFyIG5lZWRBZGp1c3RYID0gc3VwcG9ydEFkanVzdChhZGp1c3RYKTtcblxuICAgICAgLy8gPj4+Pj4gRmxpcFxuICAgICAgdmFyIHNhbWVMUiA9IHBvcHVwUG9pbnRzWzFdID09PSB0YXJnZXRQb2ludHNbMV07XG5cbiAgICAgIC8vIFJpZ2h0IHRvIExlZnRcbiAgICAgIGlmIChuZWVkQWRqdXN0WCAmJiBwb3B1cFBvaW50c1sxXSA9PT0gJ2wnICYmIChuZXh0UG9wdXBSaWdodCA+IGFkanVzdENoZWNrVmlzaWJsZUFyZWEucmlnaHQgfHwgcHJldkZsaXBSZWYuY3VycmVudC5ybCkpIHtcbiAgICAgICAgdmFyIHRtcE5leHRPZmZzZXRYID0gbmV4dE9mZnNldFg7XG4gICAgICAgIGlmIChzYW1lTFIpIHtcbiAgICAgICAgICB0bXBOZXh0T2Zmc2V0WCAtPSBwb3B1cFdpZHRoIC0gdGFyZ2V0V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG1wTmV4dE9mZnNldFggPSB0YXJnZXRBbGlnblBvaW50VEwueCAtIHBvcHVwQWxpZ25Qb2ludEJSLnggLSBwb3B1cE9mZnNldFg7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9uZXdWaXNpYmxlQXJlYTIgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSh0bXBOZXh0T2Zmc2V0WCwgbmV4dE9mZnNldFkpO1xuICAgICAgICB2YXIgX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMiA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKHRtcE5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSwgdmlzaWJsZVJlZ2lvbkFyZWEpO1xuICAgICAgICBpZiAoXG4gICAgICAgIC8vIE9mIGNvdXJzZSB1c2UgbGFyZ2VyIG9uZVxuICAgICAgICBfbmV3VmlzaWJsZUFyZWEyID4gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgfHwgX25ld1Zpc2libGVBcmVhMiA9PT0gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgJiYgKCFpc1Zpc2libGVGaXJzdCB8fFxuICAgICAgICAvLyBDaG9vc2UgcmVjb21tZW5kIG9uZVxuICAgICAgICBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEyID49IG9yaWdpbkludGVyc2VjdGlvblJlY29tbWVuZEFyZWEpKSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC5ybCA9IHRydWU7XG4gICAgICAgICAgbmV4dE9mZnNldFggPSB0bXBOZXh0T2Zmc2V0WDtcbiAgICAgICAgICBwb3B1cE9mZnNldFggPSAtcG9wdXBPZmZzZXRYO1xuICAgICAgICAgIG5leHRBbGlnbkluZm8ucG9pbnRzID0gW3JldmVyc2VQb2ludHMocG9wdXBQb2ludHMsIDEpLCByZXZlcnNlUG9pbnRzKHRhcmdldFBvaW50cywgMSldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZGbGlwUmVmLmN1cnJlbnQucmwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBMZWZ0IHRvIFJpZ2h0XG4gICAgICBpZiAobmVlZEFkanVzdFggJiYgcG9wdXBQb2ludHNbMV0gPT09ICdyJyAmJiAobmV4dFBvcHVwWCA8IGFkanVzdENoZWNrVmlzaWJsZUFyZWEubGVmdCB8fCBwcmV2RmxpcFJlZi5jdXJyZW50LmxyKSkge1xuICAgICAgICB2YXIgX3RtcE5leHRPZmZzZXRYID0gbmV4dE9mZnNldFg7XG4gICAgICAgIGlmIChzYW1lTFIpIHtcbiAgICAgICAgICBfdG1wTmV4dE9mZnNldFggKz0gcG9wdXBXaWR0aCAtIHRhcmdldFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90bXBOZXh0T2Zmc2V0WCA9IHRhcmdldEFsaWduUG9pbnRCUi54IC0gcG9wdXBBbGlnblBvaW50VEwueCAtIHBvcHVwT2Zmc2V0WDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX25ld1Zpc2libGVBcmVhMyA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKF90bXBOZXh0T2Zmc2V0WCwgbmV4dE9mZnNldFkpO1xuICAgICAgICB2YXIgX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMyA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKF90bXBOZXh0T2Zmc2V0WCwgbmV4dE9mZnNldFksIHZpc2libGVSZWdpb25BcmVhKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAvLyBPZiBjb3Vyc2UgdXNlIGxhcmdlciBvbmVcbiAgICAgICAgX25ld1Zpc2libGVBcmVhMyA+IG9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhIHx8IF9uZXdWaXNpYmxlQXJlYTMgPT09IG9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhICYmICghaXNWaXNpYmxlRmlyc3QgfHxcbiAgICAgICAgLy8gQ2hvb3NlIHJlY29tbWVuZCBvbmVcbiAgICAgICAgX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMyA+PSBvcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKSkge1xuICAgICAgICAgIHByZXZGbGlwUmVmLmN1cnJlbnQubHIgPSB0cnVlO1xuICAgICAgICAgIG5leHRPZmZzZXRYID0gX3RtcE5leHRPZmZzZXRYO1xuICAgICAgICAgIHBvcHVwT2Zmc2V0WCA9IC1wb3B1cE9mZnNldFg7XG4gICAgICAgICAgbmV4dEFsaWduSW5mby5wb2ludHMgPSBbcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywgMSksIHJldmVyc2VQb2ludHModGFyZ2V0UG9pbnRzLCAxKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC5sciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2hpZnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgc3luY05leHRQb3B1cFBvc2l0aW9uKCk7XG4gICAgICB2YXIgbnVtU2hpZnRYID0gc2hpZnRYID09PSB0cnVlID8gMCA6IHNoaWZ0WDtcbiAgICAgIGlmICh0eXBlb2YgbnVtU2hpZnRYID09PSAnbnVtYmVyJykge1xuICAgICAgICAvLyBMZWZ0XG4gICAgICAgIGlmIChuZXh0UG9wdXBYIDwgdmlzaWJsZVJlZ2lvbkFyZWEubGVmdCkge1xuICAgICAgICAgIG5leHRPZmZzZXRYIC09IG5leHRQb3B1cFggLSB2aXNpYmxlUmVnaW9uQXJlYS5sZWZ0IC0gcG9wdXBPZmZzZXRYO1xuICAgICAgICAgIGlmICh0YXJnZXRSZWN0LnggKyB0YXJnZXRXaWR0aCA8IHZpc2libGVSZWdpb25BcmVhLmxlZnQgKyBudW1TaGlmdFgpIHtcbiAgICAgICAgICAgIG5leHRPZmZzZXRYICs9IHRhcmdldFJlY3QueCAtIHZpc2libGVSZWdpb25BcmVhLmxlZnQgKyB0YXJnZXRXaWR0aCAtIG51bVNoaWZ0WDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSaWdodFxuICAgICAgICBpZiAobmV4dFBvcHVwUmlnaHQgPiB2aXNpYmxlUmVnaW9uQXJlYS5yaWdodCkge1xuICAgICAgICAgIG5leHRPZmZzZXRYIC09IG5leHRQb3B1cFJpZ2h0IC0gdmlzaWJsZVJlZ2lvbkFyZWEucmlnaHQgLSBwb3B1cE9mZnNldFg7XG4gICAgICAgICAgaWYgKHRhcmdldFJlY3QueCA+IHZpc2libGVSZWdpb25BcmVhLnJpZ2h0IC0gbnVtU2hpZnRYKSB7XG4gICAgICAgICAgICBuZXh0T2Zmc2V0WCArPSB0YXJnZXRSZWN0LnggLSB2aXNpYmxlUmVnaW9uQXJlYS5yaWdodCArIG51bVNoaWZ0WDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBudW1TaGlmdFkgPSBzaGlmdFkgPT09IHRydWUgPyAwIDogc2hpZnRZO1xuICAgICAgaWYgKHR5cGVvZiBudW1TaGlmdFkgPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vIFRvcFxuICAgICAgICBpZiAobmV4dFBvcHVwWSA8IHZpc2libGVSZWdpb25BcmVhLnRvcCkge1xuICAgICAgICAgIG5leHRPZmZzZXRZIC09IG5leHRQb3B1cFkgLSB2aXNpYmxlUmVnaW9uQXJlYS50b3AgLSBwb3B1cE9mZnNldFk7XG5cbiAgICAgICAgICAvLyBXaGVuIHRhcmdldCBpZiBmYXIgYXdheSBmcm9tIHZpc2libGUgYXJlYVxuICAgICAgICAgIC8vIFN0b3Agc2hpZnRcbiAgICAgICAgICBpZiAodGFyZ2V0UmVjdC55ICsgdGFyZ2V0SGVpZ2h0IDwgdmlzaWJsZVJlZ2lvbkFyZWEudG9wICsgbnVtU2hpZnRZKSB7XG4gICAgICAgICAgICBuZXh0T2Zmc2V0WSArPSB0YXJnZXRSZWN0LnkgLSB2aXNpYmxlUmVnaW9uQXJlYS50b3AgKyB0YXJnZXRIZWlnaHQgLSBudW1TaGlmdFk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQm90dG9tXG4gICAgICAgIGlmIChuZXh0UG9wdXBCb3R0b20gPiB2aXNpYmxlUmVnaW9uQXJlYS5ib3R0b20pIHtcbiAgICAgICAgICBuZXh0T2Zmc2V0WSAtPSBuZXh0UG9wdXBCb3R0b20gLSB2aXNpYmxlUmVnaW9uQXJlYS5ib3R0b20gLSBwb3B1cE9mZnNldFk7XG4gICAgICAgICAgaWYgKHRhcmdldFJlY3QueSA+IHZpc2libGVSZWdpb25BcmVhLmJvdHRvbSAtIG51bVNoaWZ0WSkge1xuICAgICAgICAgICAgbmV4dE9mZnNldFkgKz0gdGFyZ2V0UmVjdC55IC0gdmlzaWJsZVJlZ2lvbkFyZWEuYm90dG9tICsgbnVtU2hpZnRZO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEFycm93ID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIEFycm93IGNlbnRlciBhbGlnblxuICAgICAgdmFyIHBvcHVwTGVmdCA9IHBvcHVwUmVjdC54ICsgbmV4dE9mZnNldFg7XG4gICAgICB2YXIgcG9wdXBSaWdodCA9IHBvcHVwTGVmdCArIHBvcHVwV2lkdGg7XG4gICAgICB2YXIgcG9wdXBUb3AgPSBwb3B1cFJlY3QueSArIG5leHRPZmZzZXRZO1xuICAgICAgdmFyIHBvcHVwQm90dG9tID0gcG9wdXBUb3AgKyBwb3B1cEhlaWdodDtcbiAgICAgIHZhciB0YXJnZXRMZWZ0ID0gdGFyZ2V0UmVjdC54O1xuICAgICAgdmFyIHRhcmdldFJpZ2h0ID0gdGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoO1xuICAgICAgdmFyIHRhcmdldFRvcCA9IHRhcmdldFJlY3QueTtcbiAgICAgIHZhciB0YXJnZXRCb3R0b20gPSB0YXJnZXRUb3AgKyB0YXJnZXRIZWlnaHQ7XG4gICAgICB2YXIgbWF4TGVmdCA9IE1hdGgubWF4KHBvcHVwTGVmdCwgdGFyZ2V0TGVmdCk7XG4gICAgICB2YXIgbWluUmlnaHQgPSBNYXRoLm1pbihwb3B1cFJpZ2h0LCB0YXJnZXRSaWdodCk7XG4gICAgICB2YXIgeENlbnRlciA9IChtYXhMZWZ0ICsgbWluUmlnaHQpIC8gMjtcbiAgICAgIHZhciBuZXh0QXJyb3dYID0geENlbnRlciAtIHBvcHVwTGVmdDtcbiAgICAgIHZhciBtYXhUb3AgPSBNYXRoLm1heChwb3B1cFRvcCwgdGFyZ2V0VG9wKTtcbiAgICAgIHZhciBtaW5Cb3R0b20gPSBNYXRoLm1pbihwb3B1cEJvdHRvbSwgdGFyZ2V0Qm90dG9tKTtcbiAgICAgIHZhciB5Q2VudGVyID0gKG1heFRvcCArIG1pbkJvdHRvbSkgLyAyO1xuICAgICAgdmFyIG5leHRBcnJvd1kgPSB5Q2VudGVyIC0gcG9wdXBUb3A7XG4gICAgICBvblBvcHVwQWxpZ24gPT09IG51bGwgfHwgb25Qb3B1cEFsaWduID09PSB2b2lkIDAgfHwgb25Qb3B1cEFsaWduKHBvcHVwRWxlLCBuZXh0QWxpZ25JbmZvKTtcblxuICAgICAgLy8gQWRkaXRpb25hbCBjYWxjdWxhdGUgcmlnaHQgJiBib3R0b20gcG9zaXRpb25cbiAgICAgIHZhciBvZmZzZXRYNFJpZ2h0ID0gcG9wdXBNaXJyb3JSZWN0LnJpZ2h0IC0gcG9wdXBSZWN0LnggLSAobmV4dE9mZnNldFggKyBwb3B1cFJlY3Qud2lkdGgpO1xuICAgICAgdmFyIG9mZnNldFk0Qm90dG9tID0gcG9wdXBNaXJyb3JSZWN0LmJvdHRvbSAtIHBvcHVwUmVjdC55IC0gKG5leHRPZmZzZXRZICsgcG9wdXBSZWN0LmhlaWdodCk7XG4gICAgICBzZXRPZmZzZXRJbmZvKHtcbiAgICAgICAgcmVhZHk6IHRydWUsXG4gICAgICAgIG9mZnNldFg6IG5leHRPZmZzZXRYIC8gX3NjYWxlWCxcbiAgICAgICAgb2Zmc2V0WTogbmV4dE9mZnNldFkgLyBfc2NhbGVZLFxuICAgICAgICBvZmZzZXRSOiBvZmZzZXRYNFJpZ2h0IC8gX3NjYWxlWCxcbiAgICAgICAgb2Zmc2V0Qjogb2Zmc2V0WTRCb3R0b20gLyBfc2NhbGVZLFxuICAgICAgICBhcnJvd1g6IG5leHRBcnJvd1ggLyBfc2NhbGVYLFxuICAgICAgICBhcnJvd1k6IG5leHRBcnJvd1kgLyBfc2NhbGVZLFxuICAgICAgICBzY2FsZVg6IF9zY2FsZVgsXG4gICAgICAgIHNjYWxlWTogX3NjYWxlWSxcbiAgICAgICAgYWxpZ246IG5leHRBbGlnbkluZm9cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIHZhciB0cmlnZ2VyQWxpZ24gPSBmdW5jdGlvbiB0cmlnZ2VyQWxpZ24oKSB7XG4gICAgYWxpZ25Db3VudFJlZi5jdXJyZW50ICs9IDE7XG4gICAgdmFyIGlkID0gYWxpZ25Db3VudFJlZi5jdXJyZW50O1xuXG4gICAgLy8gTWVyZ2UgYWxsIGFsaWduIHJlcXVpcmVtZW50IGludG8gb25lIGZyYW1lXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoYWxpZ25Db3VudFJlZi5jdXJyZW50ID09PSBpZCkge1xuICAgICAgICBvbkFsaWduKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLy8gUmVzZXQgcmVhZHkgc3RhdHVzIHdoZW4gcGxhY2VtZW50ICYgb3BlbiBjaGFuZ2VkXG4gIHZhciByZXNldFJlYWR5ID0gZnVuY3Rpb24gcmVzZXRSZWFkeSgpIHtcbiAgICBzZXRPZmZzZXRJbmZvKGZ1bmN0aW9uIChvcmkpIHtcbiAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG9yaSksIHt9LCB7XG4gICAgICAgIHJlYWR5OiBmYWxzZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIHVzZUxheW91dEVmZmVjdChyZXNldFJlYWR5LCBbcGxhY2VtZW50XSk7XG4gIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICByZXNldFJlYWR5KCk7XG4gICAgfVxuICB9LCBbb3Blbl0pO1xuICByZXR1cm4gW29mZnNldEluZm8ucmVhZHksIG9mZnNldEluZm8ub2Zmc2V0WCwgb2Zmc2V0SW5mby5vZmZzZXRZLCBvZmZzZXRJbmZvLm9mZnNldFIsIG9mZnNldEluZm8ub2Zmc2V0Qiwgb2Zmc2V0SW5mby5hcnJvd1gsIG9mZnNldEluZm8uYXJyb3dZLCBvZmZzZXRJbmZvLnNjYWxlWCwgb2Zmc2V0SW5mby5zY2FsZVksIG9mZnNldEluZm8uYWxpZ24sIHRyaWdnZXJBbGlnbl07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/hooks/useAlign.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ useAlign)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rc-util/es/Dom/findDOMNode */ \"./node_modules/rc-util/es/Dom/findDOMNode.js\");\n/* harmony import */ var rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rc-util/es/Dom/isVisible */ \"./node_modules/rc-util/es/Dom/isVisible.js\");\n/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/hooks/useEvent */ \"./node_modules/rc-util/es/hooks/useEvent.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\n\n\n\n\n\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nfunction useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_6__.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef(0);\n var scrollerList = react__WEBPACK_IMPORTED_MODULE_6__.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return (0,_util__WEBPACK_IMPORTED_MODULE_7__.collectScroller)(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getWin)(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var _rect$x, _rect$y;\n var rect = target.getBoundingClientRect();\n rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getVisibleArea)(scrollRegion, scrollerList);\n var visibleRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__.getVisibleArea)(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = (0,_util__WEBPACK_IMPORTED_MODULE_7__.toNum)(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = (0,_util__WEBPACK_IMPORTED_MODULE_7__.toNum)(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__.isDOM)(target) && !(0,rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n if (_scaleX === 1) {\n nextOffsetX = Math.round(nextOffsetX);\n offsetX4Right = Math.round(offsetX4Right);\n }\n if (_scaleY === 1) {\n nextOffsetY = Math.round(nextOffsetY);\n offsetY4Bottom = Math.round(offsetY4Bottom);\n }\n var nextOffsetInfo = {\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n };\n setOffsetInfo(nextOffsetInfo);\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, ori), {}, {\n ready: false\n });\n });\n };\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(resetReady, [placement]);\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2hvb2tzL3VzZUFsaWduLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFxRTtBQUNDO0FBQ25CO0FBQ0Y7QUFDQTtBQUNjO0FBQ2hDO0FBQzBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG9GQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNlO0FBQ2Ysd0JBQXdCLDJDQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHVCQUF1QixvRkFBYztBQUNyQztBQUNBO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLHFCQUFxQiwwQ0FBYTtBQUNsQztBQUNBO0FBQ0E7QUFDQSxXQUFXLHNEQUFlO0FBQzFCLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlDQUFZLEdBQUc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLHFFQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDZDQUFNO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQixvRkFBYSxDQUFDLG9GQUFhLEdBQUc7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHFEQUFjO0FBQzNDLDhCQUE4QixxREFBYztBQUM1Qzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDRDQUFLO0FBQ3pCLG9CQUFvQiw0Q0FBSzs7QUFFekI7QUFDQSw0Q0FBNEMsaUVBQUssYUFBYSxvRUFBUztBQUN2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLG9GQUFjO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixvRkFBYztBQUMxQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCLG9GQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQixvRkFBYSxHQUFHOztBQUUxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG9GQUFhLENBQUMsb0ZBQWEsR0FBRyxVQUFVO0FBQ3JEO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLEVBQUUsNEVBQWU7QUFDakIsRUFBRSw0RUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2hvb2tzL3VzZUFsaWduLmpzPzk0NGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IHsgaXNET00gfSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vZmluZERPTU5vZGVcIjtcbmltcG9ydCBpc1Zpc2libGUgZnJvbSBcInJjLXV0aWwvZXMvRG9tL2lzVmlzaWJsZVwiO1xuaW1wb3J0IHVzZUV2ZW50IGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUV2ZW50XCI7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUxheW91dEVmZmVjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29sbGVjdFNjcm9sbGVyLCBnZXRWaXNpYmxlQXJlYSwgZ2V0V2luLCB0b051bSB9IGZyb20gXCIuLi91dGlsXCI7XG5mdW5jdGlvbiBnZXRVbml0T2Zmc2V0KHNpemUpIHtcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMDtcbiAgdmFyIG9mZnNldFN0ciA9IFwiXCIuY29uY2F0KG9mZnNldCk7XG4gIHZhciBjZWxscyA9IG9mZnNldFN0ci5tYXRjaCgvXiguKilcXCUkLyk7XG4gIGlmIChjZWxscykge1xuICAgIHJldHVybiBzaXplICogKHBhcnNlRmxvYXQoY2VsbHNbMV0pIC8gMTAwKTtcbiAgfVxuICByZXR1cm4gcGFyc2VGbG9hdChvZmZzZXRTdHIpO1xufVxuZnVuY3Rpb24gZ2V0TnVtYmVyT2Zmc2V0KHJlY3QsIG9mZnNldCkge1xuICB2YXIgX3JlZiA9IG9mZnNldCB8fCBbXSxcbiAgICBfcmVmMiA9IF9zbGljZWRUb0FycmF5KF9yZWYsIDIpLFxuICAgIG9mZnNldFggPSBfcmVmMlswXSxcbiAgICBvZmZzZXRZID0gX3JlZjJbMV07XG4gIHJldHVybiBbZ2V0VW5pdE9mZnNldChyZWN0LndpZHRoLCBvZmZzZXRYKSwgZ2V0VW5pdE9mZnNldChyZWN0LmhlaWdodCwgb2Zmc2V0WSldO1xufVxuZnVuY3Rpb24gc3BsaXRQb2ludHMoKSB7XG4gIHZhciBwb2ludHMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnO1xuICByZXR1cm4gW3BvaW50c1swXSwgcG9pbnRzWzFdXTtcbn1cbmZ1bmN0aW9uIGdldEFsaWduUG9pbnQocmVjdCwgcG9pbnRzKSB7XG4gIHZhciB0b3BCb3R0b20gPSBwb2ludHNbMF07XG4gIHZhciBsZWZ0UmlnaHQgPSBwb2ludHNbMV07XG4gIHZhciB4O1xuICB2YXIgeTtcblxuICAvLyBUb3AgJiBCb3R0b21cbiAgaWYgKHRvcEJvdHRvbSA9PT0gJ3QnKSB7XG4gICAgeSA9IHJlY3QueTtcbiAgfSBlbHNlIGlmICh0b3BCb3R0b20gPT09ICdiJykge1xuICAgIHkgPSByZWN0LnkgKyByZWN0LmhlaWdodDtcbiAgfSBlbHNlIHtcbiAgICB5ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuICB9XG5cbiAgLy8gTGVmdCAmIFJpZ2h0XG4gIGlmIChsZWZ0UmlnaHQgPT09ICdsJykge1xuICAgIHggPSByZWN0Lng7XG4gIH0gZWxzZSBpZiAobGVmdFJpZ2h0ID09PSAncicpIHtcbiAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aDtcbiAgfSBlbHNlIHtcbiAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvIDI7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcbn1cbmZ1bmN0aW9uIHJldmVyc2VQb2ludHMocG9pbnRzLCBpbmRleCkge1xuICB2YXIgcmV2ZXJzZU1hcCA9IHtcbiAgICB0OiAnYicsXG4gICAgYjogJ3QnLFxuICAgIGw6ICdyJyxcbiAgICByOiAnbCdcbiAgfTtcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24gKHBvaW50LCBpKSB7XG4gICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICByZXR1cm4gcmV2ZXJzZU1hcFtwb2ludF0gfHwgJ2MnO1xuICAgIH1cbiAgICByZXR1cm4gcG9pbnQ7XG4gIH0pLmpvaW4oJycpO1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlQWxpZ24ob3BlbiwgcG9wdXBFbGUsIHRhcmdldCwgcGxhY2VtZW50LCBidWlsdGluUGxhY2VtZW50cywgcG9wdXBBbGlnbiwgb25Qb3B1cEFsaWduKSB7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgICByZWFkeTogZmFsc2UsXG4gICAgICBvZmZzZXRYOiAwLFxuICAgICAgb2Zmc2V0WTogMCxcbiAgICAgIG9mZnNldFI6IDAsXG4gICAgICBvZmZzZXRCOiAwLFxuICAgICAgYXJyb3dYOiAwLFxuICAgICAgYXJyb3dZOiAwLFxuICAgICAgc2NhbGVYOiAxLFxuICAgICAgc2NhbGVZOiAxLFxuICAgICAgYWxpZ246IGJ1aWx0aW5QbGFjZW1lbnRzW3BsYWNlbWVudF0gfHwge31cbiAgICB9KSxcbiAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICBvZmZzZXRJbmZvID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICBzZXRPZmZzZXRJbmZvID0gX1JlYWN0JHVzZVN0YXRlMlsxXTtcbiAgdmFyIGFsaWduQ291bnRSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gIHZhciBzY3JvbGxlckxpc3QgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXBvcHVwRWxlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBjb2xsZWN0U2Nyb2xsZXIocG9wdXBFbGUpO1xuICB9LCBbcG9wdXBFbGVdKTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IEZsaXAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2Ugd2lsbCBtZW1vIGZsaXAgaW5mby5cbiAgLy8gSWYgc2l6ZSBjaGFuZ2UgdG8gbWFrZSBmbGlwLCBpdCB3aWxsIG1lbW8gdGhlIGZsaXAgaW5mbyBhbmQgdXNlIGl0IGluIG5leHQgYWxpZ24uXG4gIHZhciBwcmV2RmxpcFJlZiA9IFJlYWN0LnVzZVJlZih7fSk7XG4gIHZhciByZXNldEZsaXBDYWNoZSA9IGZ1bmN0aW9uIHJlc2V0RmxpcENhY2hlKCkge1xuICAgIHByZXZGbGlwUmVmLmN1cnJlbnQgPSB7fTtcbiAgfTtcbiAgaWYgKCFvcGVuKSB7XG4gICAgcmVzZXRGbGlwQ2FjaGUoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gQWxpZ24gPT09PT09PT09PT09PT09PT09PT09PT09PVxuICB2YXIgb25BbGlnbiA9IHVzZUV2ZW50KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAocG9wdXBFbGUgJiYgdGFyZ2V0ICYmIG9wZW4pIHtcbiAgICAgIHZhciBfcG9wdXBFbGVtZW50JHBhcmVudEUsIF9wb3B1cFJlY3QkeCwgX3BvcHVwUmVjdCR5LCBfcG9wdXBFbGVtZW50JHBhcmVudEUyO1xuICAgICAgdmFyIHBvcHVwRWxlbWVudCA9IHBvcHVwRWxlO1xuICAgICAgdmFyIGRvYyA9IHBvcHVwRWxlbWVudC5vd25lckRvY3VtZW50O1xuICAgICAgdmFyIHdpbiA9IGdldFdpbihwb3B1cEVsZW1lbnQpO1xuICAgICAgdmFyIF93aW4kZ2V0Q29tcHV0ZWRTdHlsZSA9IHdpbi5nZXRDb21wdXRlZFN0eWxlKHBvcHVwRWxlbWVudCksXG4gICAgICAgIHdpZHRoID0gX3dpbiRnZXRDb21wdXRlZFN0eWxlLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBfd2luJGdldENvbXB1dGVkU3R5bGUuaGVpZ2h0LFxuICAgICAgICBwb3B1cFBvc2l0aW9uID0gX3dpbiRnZXRDb21wdXRlZFN0eWxlLnBvc2l0aW9uO1xuICAgICAgdmFyIG9yaWdpbkxlZnQgPSBwb3B1cEVsZW1lbnQuc3R5bGUubGVmdDtcbiAgICAgIHZhciBvcmlnaW5Ub3AgPSBwb3B1cEVsZW1lbnQuc3R5bGUudG9wO1xuICAgICAgdmFyIG9yaWdpblJpZ2h0ID0gcG9wdXBFbGVtZW50LnN0eWxlLnJpZ2h0O1xuICAgICAgdmFyIG9yaWdpbkJvdHRvbSA9IHBvcHVwRWxlbWVudC5zdHlsZS5ib3R0b207XG4gICAgICB2YXIgb3JpZ2luT3ZlcmZsb3cgPSBwb3B1cEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c7XG5cbiAgICAgIC8vIFBsYWNlbWVudFxuICAgICAgdmFyIHBsYWNlbWVudEluZm8gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGJ1aWx0aW5QbGFjZW1lbnRzW3BsYWNlbWVudF0pLCBwb3B1cEFsaWduKTtcblxuICAgICAgLy8gcGxhY2Vob2xkZXIgZWxlbWVudFxuICAgICAgdmFyIHBsYWNlaG9sZGVyRWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIChfcG9wdXBFbGVtZW50JHBhcmVudEUgPSBwb3B1cEVsZW1lbnQucGFyZW50RWxlbWVudCkgPT09IG51bGwgfHwgX3BvcHVwRWxlbWVudCRwYXJlbnRFID09PSB2b2lkIDAgfHwgX3BvcHVwRWxlbWVudCRwYXJlbnRFLmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUubGVmdCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRMZWZ0LCBcInB4XCIpO1xuICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLnRvcCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRUb3AsIFwicHhcIik7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBwb3B1cFBvc2l0aW9uO1xuICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRIZWlnaHQsIFwicHhcIik7XG4gICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUud2lkdGggPSBcIlwiLmNvbmNhdChwb3B1cEVsZW1lbnQub2Zmc2V0V2lkdGgsIFwicHhcIik7XG5cbiAgICAgIC8vIFJlc2V0IGZpcnN0XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS50b3AgPSAnMCc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSBhbGlnbiBzdHlsZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIGB0cmFuc2Zvcm1gIGNhc2VcbiAgICAgIHZhciB0YXJnZXRSZWN0O1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgICAgICB0YXJnZXRSZWN0ID0ge1xuICAgICAgICAgIHg6IHRhcmdldFswXSxcbiAgICAgICAgICB5OiB0YXJnZXRbMV0sXG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgaGVpZ2h0OiAwXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX3JlY3QkeCwgX3JlY3QkeTtcbiAgICAgICAgdmFyIHJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJlY3QueCA9IChfcmVjdCR4ID0gcmVjdC54KSAhPT0gbnVsbCAmJiBfcmVjdCR4ICE9PSB2b2lkIDAgPyBfcmVjdCR4IDogcmVjdC5sZWZ0O1xuICAgICAgICByZWN0LnkgPSAoX3JlY3QkeSA9IHJlY3QueSkgIT09IG51bGwgJiYgX3JlY3QkeSAhPT0gdm9pZCAwID8gX3JlY3QkeSA6IHJlY3QudG9wO1xuICAgICAgICB0YXJnZXRSZWN0ID0ge1xuICAgICAgICAgIHg6IHJlY3QueCxcbiAgICAgICAgICB5OiByZWN0LnksXG4gICAgICAgICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmFyIHBvcHVwUmVjdCA9IHBvcHVwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHBvcHVwUmVjdC54ID0gKF9wb3B1cFJlY3QkeCA9IHBvcHVwUmVjdC54KSAhPT0gbnVsbCAmJiBfcG9wdXBSZWN0JHggIT09IHZvaWQgMCA/IF9wb3B1cFJlY3QkeCA6IHBvcHVwUmVjdC5sZWZ0O1xuICAgICAgcG9wdXBSZWN0LnkgPSAoX3BvcHVwUmVjdCR5ID0gcG9wdXBSZWN0LnkpICE9PSBudWxsICYmIF9wb3B1cFJlY3QkeSAhPT0gdm9pZCAwID8gX3BvcHVwUmVjdCR5IDogcG9wdXBSZWN0LnRvcDtcbiAgICAgIHZhciBfZG9jJGRvY3VtZW50RWxlbWVudCA9IGRvYy5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIGNsaWVudFdpZHRoID0gX2RvYyRkb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsXG4gICAgICAgIGNsaWVudEhlaWdodCA9IF9kb2MkZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgc2Nyb2xsV2lkdGggPSBfZG9jJGRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCxcbiAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gX2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICBzY3JvbGxUb3AgPSBfZG9jJGRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsXG4gICAgICAgIHNjcm9sbExlZnQgPSBfZG9jJGRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgdmFyIHBvcHVwSGVpZ2h0ID0gcG9wdXBSZWN0LmhlaWdodDtcbiAgICAgIHZhciBwb3B1cFdpZHRoID0gcG9wdXBSZWN0LndpZHRoO1xuICAgICAgdmFyIHRhcmdldEhlaWdodCA9IHRhcmdldFJlY3QuaGVpZ2h0O1xuICAgICAgdmFyIHRhcmdldFdpZHRoID0gdGFyZ2V0UmVjdC53aWR0aDtcblxuICAgICAgLy8gR2V0IGJvdW5kaW5nIG9mIHZpc2libGUgYXJlYVxuICAgICAgdmFyIHZpc2libGVSZWdpb24gPSB7XG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoLFxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodFxuICAgICAgfTtcbiAgICAgIHZhciBzY3JvbGxSZWdpb24gPSB7XG4gICAgICAgIGxlZnQ6IC1zY3JvbGxMZWZ0LFxuICAgICAgICB0b3A6IC1zY3JvbGxUb3AsXG4gICAgICAgIHJpZ2h0OiBzY3JvbGxXaWR0aCAtIHNjcm9sbExlZnQsXG4gICAgICAgIGJvdHRvbTogc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wXG4gICAgICB9O1xuICAgICAgdmFyIGh0bWxSZWdpb24gPSBwbGFjZW1lbnRJbmZvLmh0bWxSZWdpb247XG4gICAgICB2YXIgVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgICAgIHZhciBWSVNJQkxFX0ZJUlNUID0gJ3Zpc2libGVGaXJzdCc7XG4gICAgICBpZiAoaHRtbFJlZ2lvbiAhPT0gJ3Njcm9sbCcgJiYgaHRtbFJlZ2lvbiAhPT0gVklTSUJMRV9GSVJTVCkge1xuICAgICAgICBodG1sUmVnaW9uID0gVklTSUJMRTtcbiAgICAgIH1cbiAgICAgIHZhciBpc1Zpc2libGVGaXJzdCA9IGh0bWxSZWdpb24gPT09IFZJU0lCTEVfRklSU1Q7XG4gICAgICB2YXIgc2Nyb2xsUmVnaW9uQXJlYSA9IGdldFZpc2libGVBcmVhKHNjcm9sbFJlZ2lvbiwgc2Nyb2xsZXJMaXN0KTtcbiAgICAgIHZhciB2aXNpYmxlUmVnaW9uQXJlYSA9IGdldFZpc2libGVBcmVhKHZpc2libGVSZWdpb24sIHNjcm9sbGVyTGlzdCk7XG4gICAgICB2YXIgdmlzaWJsZUFyZWEgPSBodG1sUmVnaW9uID09PSBWSVNJQkxFID8gdmlzaWJsZVJlZ2lvbkFyZWEgOiBzY3JvbGxSZWdpb25BcmVhO1xuXG4gICAgICAvLyBXaGVuIHNldCB0byBgdmlzaWJsZUZpcnN0YCxcbiAgICAgIC8vIHRoZSBjaGVjayBgYWRqdXN0YCBsb2dpYyB3aWxsIHVzZSBgdmlzaWJsZVJlZ2lvbmAgZm9yIGNoZWNrIGZpcnN0LlxuICAgICAgdmFyIGFkanVzdENoZWNrVmlzaWJsZUFyZWEgPSBpc1Zpc2libGVGaXJzdCA/IHZpc2libGVSZWdpb25BcmVhIDogdmlzaWJsZUFyZWE7XG5cbiAgICAgIC8vIFJlY29yZCByaWdodCAmIGJvdHRvbSBhbGlnbiBkYXRhXG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS50b3AgPSAnYXV0byc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICBwb3B1cEVsZW1lbnQuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgdmFyIHBvcHVwTWlycm9yUmVjdCA9IHBvcHVwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgLy8gUmVzZXQgYmFja1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLmxlZnQgPSBvcmlnaW5MZWZ0O1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLnRvcCA9IG9yaWdpblRvcDtcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS5yaWdodCA9IG9yaWdpblJpZ2h0O1xuICAgICAgcG9wdXBFbGVtZW50LnN0eWxlLmJvdHRvbSA9IG9yaWdpbkJvdHRvbTtcbiAgICAgIHBvcHVwRWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IG9yaWdpbk92ZXJmbG93O1xuICAgICAgKF9wb3B1cEVsZW1lbnQkcGFyZW50RTIgPSBwb3B1cEVsZW1lbnQucGFyZW50RWxlbWVudCkgPT09IG51bGwgfHwgX3BvcHVwRWxlbWVudCRwYXJlbnRFMiA9PT0gdm9pZCAwIHx8IF9wb3B1cEVsZW1lbnQkcGFyZW50RTIucmVtb3ZlQ2hpbGQocGxhY2Vob2xkZXJFbGVtZW50KTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHNjYWxlXG4gICAgICB2YXIgX3NjYWxlWCA9IHRvTnVtKE1hdGgucm91bmQocG9wdXBXaWR0aCAvIHBhcnNlRmxvYXQod2lkdGgpICogMTAwMCkgLyAxMDAwKTtcbiAgICAgIHZhciBfc2NhbGVZID0gdG9OdW0oTWF0aC5yb3VuZChwb3B1cEhlaWdodCAvIHBhcnNlRmxvYXQoaGVpZ2h0KSAqIDEwMDApIC8gMTAwMCk7XG5cbiAgICAgIC8vIE5vIG5lZWQgdG8gYWxpZ24gc2luY2UgaXQncyBub3QgdmlzaWJsZSBpbiB2aWV3XG4gICAgICBpZiAoX3NjYWxlWCA9PT0gMCB8fCBfc2NhbGVZID09PSAwIHx8IGlzRE9NKHRhcmdldCkgJiYgIWlzVmlzaWJsZSh0YXJnZXQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0XG4gICAgICB2YXIgb2Zmc2V0ID0gcGxhY2VtZW50SW5mby5vZmZzZXQsXG4gICAgICAgIHRhcmdldE9mZnNldCA9IHBsYWNlbWVudEluZm8udGFyZ2V0T2Zmc2V0O1xuICAgICAgdmFyIF9nZXROdW1iZXJPZmZzZXQgPSBnZXROdW1iZXJPZmZzZXQocG9wdXBSZWN0LCBvZmZzZXQpLFxuICAgICAgICBfZ2V0TnVtYmVyT2Zmc2V0MiA9IF9zbGljZWRUb0FycmF5KF9nZXROdW1iZXJPZmZzZXQsIDIpLFxuICAgICAgICBwb3B1cE9mZnNldFggPSBfZ2V0TnVtYmVyT2Zmc2V0MlswXSxcbiAgICAgICAgcG9wdXBPZmZzZXRZID0gX2dldE51bWJlck9mZnNldDJbMV07XG4gICAgICB2YXIgX2dldE51bWJlck9mZnNldDMgPSBnZXROdW1iZXJPZmZzZXQodGFyZ2V0UmVjdCwgdGFyZ2V0T2Zmc2V0KSxcbiAgICAgICAgX2dldE51bWJlck9mZnNldDQgPSBfc2xpY2VkVG9BcnJheShfZ2V0TnVtYmVyT2Zmc2V0MywgMiksXG4gICAgICAgIHRhcmdldE9mZnNldFggPSBfZ2V0TnVtYmVyT2Zmc2V0NFswXSxcbiAgICAgICAgdGFyZ2V0T2Zmc2V0WSA9IF9nZXROdW1iZXJPZmZzZXQ0WzFdO1xuICAgICAgdGFyZ2V0UmVjdC54IC09IHRhcmdldE9mZnNldFg7XG4gICAgICB0YXJnZXRSZWN0LnkgLT0gdGFyZ2V0T2Zmc2V0WTtcblxuICAgICAgLy8gUG9pbnRzXG4gICAgICB2YXIgX3JlZjMgPSBwbGFjZW1lbnRJbmZvLnBvaW50cyB8fCBbXSxcbiAgICAgICAgX3JlZjQgPSBfc2xpY2VkVG9BcnJheShfcmVmMywgMiksXG4gICAgICAgIHBvcHVwUG9pbnQgPSBfcmVmNFswXSxcbiAgICAgICAgdGFyZ2V0UG9pbnQgPSBfcmVmNFsxXTtcbiAgICAgIHZhciB0YXJnZXRQb2ludHMgPSBzcGxpdFBvaW50cyh0YXJnZXRQb2ludCk7XG4gICAgICB2YXIgcG9wdXBQb2ludHMgPSBzcGxpdFBvaW50cyhwb3B1cFBvaW50KTtcbiAgICAgIHZhciB0YXJnZXRBbGlnblBvaW50ID0gZ2V0QWxpZ25Qb2ludCh0YXJnZXRSZWN0LCB0YXJnZXRQb2ludHMpO1xuICAgICAgdmFyIHBvcHVwQWxpZ25Qb2ludCA9IGdldEFsaWduUG9pbnQocG9wdXBSZWN0LCBwb3B1cFBvaW50cyk7XG5cbiAgICAgIC8vIFJlYWwgYWxpZ24gaW5mbyBtYXkgbm90IHNhbWUgYXMgb3JpZ2luIG9uZVxuICAgICAgdmFyIG5leHRBbGlnbkluZm8gPSBfb2JqZWN0U3ByZWFkKHt9LCBwbGFjZW1lbnRJbmZvKTtcblxuICAgICAgLy8gTmV4dCBPZmZzZXRcbiAgICAgIHZhciBuZXh0T2Zmc2V0WCA9IHRhcmdldEFsaWduUG9pbnQueCAtIHBvcHVwQWxpZ25Qb2ludC54ICsgcG9wdXBPZmZzZXRYO1xuICAgICAgdmFyIG5leHRPZmZzZXRZID0gdGFyZ2V0QWxpZ25Qb2ludC55IC0gcG9wdXBBbGlnblBvaW50LnkgKyBwb3B1cE9mZnNldFk7XG5cbiAgICAgIC8vID09PT09PT09PT09PT09IEludGVyc2VjdGlvbiA9PT09PT09PT09PT09PT1cbiAgICAgIC8vIEdldCBhcmVhIGJ5IHBvc2l0aW9uLiBVc2VkIGZvciBjaGVjayBpZiBmbGlwIGFyZWEgaXMgYmV0dGVyXG4gICAgICBmdW5jdGlvbiBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShvZmZzZXRYLCBvZmZzZXRZKSB7XG4gICAgICAgIHZhciBhcmVhID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB2aXNpYmxlQXJlYTtcbiAgICAgICAgdmFyIGwgPSBwb3B1cFJlY3QueCArIG9mZnNldFg7XG4gICAgICAgIHZhciB0ID0gcG9wdXBSZWN0LnkgKyBvZmZzZXRZO1xuICAgICAgICB2YXIgciA9IGwgKyBwb3B1cFdpZHRoO1xuICAgICAgICB2YXIgYiA9IHQgKyBwb3B1cEhlaWdodDtcbiAgICAgICAgdmFyIHZpc2libGVMID0gTWF0aC5tYXgobCwgYXJlYS5sZWZ0KTtcbiAgICAgICAgdmFyIHZpc2libGVUID0gTWF0aC5tYXgodCwgYXJlYS50b3ApO1xuICAgICAgICB2YXIgdmlzaWJsZVIgPSBNYXRoLm1pbihyLCBhcmVhLnJpZ2h0KTtcbiAgICAgICAgdmFyIHZpc2libGVCID0gTWF0aC5taW4oYiwgYXJlYS5ib3R0b20pO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgKHZpc2libGVSIC0gdmlzaWJsZUwpICogKHZpc2libGVCIC0gdmlzaWJsZVQpKTtcbiAgICAgIH1cbiAgICAgIHZhciBvcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSk7XG5cbiAgICAgIC8vIEFzIGB2aXNpYmxlRmlyc3RgLCB3ZSBwcmVwYXJlIHRoaXMgZm9yIGNoZWNrXG4gICAgICB2YXIgb3JpZ2luSW50ZXJzZWN0aW9uUmVjb21tZW5kQXJlYSA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSwgdmlzaWJsZVJlZ2lvbkFyZWEpO1xuXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBPdmVyZmxvdyA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIHZhciB0YXJnZXRBbGlnblBvaW50VEwgPSBnZXRBbGlnblBvaW50KHRhcmdldFJlY3QsIFsndCcsICdsJ10pO1xuICAgICAgdmFyIHBvcHVwQWxpZ25Qb2ludFRMID0gZ2V0QWxpZ25Qb2ludChwb3B1cFJlY3QsIFsndCcsICdsJ10pO1xuICAgICAgdmFyIHRhcmdldEFsaWduUG9pbnRCUiA9IGdldEFsaWduUG9pbnQodGFyZ2V0UmVjdCwgWydiJywgJ3InXSk7XG4gICAgICB2YXIgcG9wdXBBbGlnblBvaW50QlIgPSBnZXRBbGlnblBvaW50KHBvcHVwUmVjdCwgWydiJywgJ3InXSk7XG4gICAgICB2YXIgb3ZlcmZsb3cgPSBwbGFjZW1lbnRJbmZvLm92ZXJmbG93IHx8IHt9O1xuICAgICAgdmFyIGFkanVzdFggPSBvdmVyZmxvdy5hZGp1c3RYLFxuICAgICAgICBhZGp1c3RZID0gb3ZlcmZsb3cuYWRqdXN0WSxcbiAgICAgICAgc2hpZnRYID0gb3ZlcmZsb3cuc2hpZnRYLFxuICAgICAgICBzaGlmdFkgPSBvdmVyZmxvdy5zaGlmdFk7XG4gICAgICB2YXIgc3VwcG9ydEFkanVzdCA9IGZ1bmN0aW9uIHN1cHBvcnRBZGp1c3QodmFsKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwgPj0gMDtcbiAgICAgIH07XG5cbiAgICAgIC8vIFByZXBhcmUgcG9zaXRpb25cbiAgICAgIHZhciBuZXh0UG9wdXBZO1xuICAgICAgdmFyIG5leHRQb3B1cEJvdHRvbTtcbiAgICAgIHZhciBuZXh0UG9wdXBYO1xuICAgICAgdmFyIG5leHRQb3B1cFJpZ2h0O1xuICAgICAgZnVuY3Rpb24gc3luY05leHRQb3B1cFBvc2l0aW9uKCkge1xuICAgICAgICBuZXh0UG9wdXBZID0gcG9wdXBSZWN0LnkgKyBuZXh0T2Zmc2V0WTtcbiAgICAgICAgbmV4dFBvcHVwQm90dG9tID0gbmV4dFBvcHVwWSArIHBvcHVwSGVpZ2h0O1xuICAgICAgICBuZXh0UG9wdXBYID0gcG9wdXBSZWN0LnggKyBuZXh0T2Zmc2V0WDtcbiAgICAgICAgbmV4dFBvcHVwUmlnaHQgPSBuZXh0UG9wdXBYICsgcG9wdXBXaWR0aDtcbiAgICAgIH1cbiAgICAgIHN5bmNOZXh0UG9wdXBQb3NpdGlvbigpO1xuXG4gICAgICAvLyA+Pj4+Pj4+Pj4+IFRvcCAmIEJvdHRvbVxuICAgICAgdmFyIG5lZWRBZGp1c3RZID0gc3VwcG9ydEFkanVzdChhZGp1c3RZKTtcbiAgICAgIHZhciBzYW1lVEIgPSBwb3B1cFBvaW50c1swXSA9PT0gdGFyZ2V0UG9pbnRzWzBdO1xuXG4gICAgICAvLyBCb3R0b20gdG8gVG9wXG4gICAgICBpZiAobmVlZEFkanVzdFkgJiYgcG9wdXBQb2ludHNbMF0gPT09ICd0JyAmJiAobmV4dFBvcHVwQm90dG9tID4gYWRqdXN0Q2hlY2tWaXNpYmxlQXJlYS5ib3R0b20gfHwgcHJldkZsaXBSZWYuY3VycmVudC5idCkpIHtcbiAgICAgICAgdmFyIHRtcE5leHRPZmZzZXRZID0gbmV4dE9mZnNldFk7XG4gICAgICAgIGlmIChzYW1lVEIpIHtcbiAgICAgICAgICB0bXBOZXh0T2Zmc2V0WSAtPSBwb3B1cEhlaWdodCAtIHRhcmdldEhlaWdodDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0bXBOZXh0T2Zmc2V0WSA9IHRhcmdldEFsaWduUG9pbnRUTC55IC0gcG9wdXBBbGlnblBvaW50QlIueSAtIHBvcHVwT2Zmc2V0WTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3VmlzaWJsZUFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgdG1wTmV4dE9mZnNldFkpO1xuICAgICAgICB2YXIgbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgdG1wTmV4dE9mZnNldFksIHZpc2libGVSZWdpb25BcmVhKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAvLyBPZiBjb3Vyc2UgdXNlIGxhcmdlciBvbmVcbiAgICAgICAgbmV3VmlzaWJsZUFyZWEgPiBvcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSB8fCBuZXdWaXNpYmxlQXJlYSA9PT0gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgJiYgKCFpc1Zpc2libGVGaXJzdCB8fFxuICAgICAgICAvLyBDaG9vc2UgcmVjb21tZW5kIG9uZVxuICAgICAgICBuZXdWaXNpYmxlUmVjb21tZW5kQXJlYSA+PSBvcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKSkge1xuICAgICAgICAgIHByZXZGbGlwUmVmLmN1cnJlbnQuYnQgPSB0cnVlO1xuICAgICAgICAgIG5leHRPZmZzZXRZID0gdG1wTmV4dE9mZnNldFk7XG4gICAgICAgICAgcG9wdXBPZmZzZXRZID0gLXBvcHVwT2Zmc2V0WTtcbiAgICAgICAgICBuZXh0QWxpZ25JbmZvLnBvaW50cyA9IFtyZXZlcnNlUG9pbnRzKHBvcHVwUG9pbnRzLCAwKSwgcmV2ZXJzZVBvaW50cyh0YXJnZXRQb2ludHMsIDApXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2RmxpcFJlZi5jdXJyZW50LmJ0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVG9wIHRvIEJvdHRvbVxuICAgICAgaWYgKG5lZWRBZGp1c3RZICYmIHBvcHVwUG9pbnRzWzBdID09PSAnYicgJiYgKG5leHRQb3B1cFkgPCBhZGp1c3RDaGVja1Zpc2libGVBcmVhLnRvcCB8fCBwcmV2RmxpcFJlZi5jdXJyZW50LnRiKSkge1xuICAgICAgICB2YXIgX3RtcE5leHRPZmZzZXRZID0gbmV4dE9mZnNldFk7XG4gICAgICAgIGlmIChzYW1lVEIpIHtcbiAgICAgICAgICBfdG1wTmV4dE9mZnNldFkgKz0gcG9wdXBIZWlnaHQgLSB0YXJnZXRIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RtcE5leHRPZmZzZXRZID0gdGFyZ2V0QWxpZ25Qb2ludEJSLnkgLSBwb3B1cEFsaWduUG9pbnRUTC55IC0gcG9wdXBPZmZzZXRZO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfbmV3VmlzaWJsZUFyZWEgPSBnZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCwgX3RtcE5leHRPZmZzZXRZKTtcbiAgICAgICAgdmFyIF9uZXdWaXNpYmxlUmVjb21tZW5kQXJlYSA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLCBfdG1wTmV4dE9mZnNldFksIHZpc2libGVSZWdpb25BcmVhKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAvLyBPZiBjb3Vyc2UgdXNlIGxhcmdlciBvbmVcbiAgICAgICAgX25ld1Zpc2libGVBcmVhID4gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgfHwgX25ld1Zpc2libGVBcmVhID09PSBvcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSAmJiAoIWlzVmlzaWJsZUZpcnN0IHx8XG4gICAgICAgIC8vIENob29zZSByZWNvbW1lbmQgb25lXG4gICAgICAgIF9uZXdWaXNpYmxlUmVjb21tZW5kQXJlYSA+PSBvcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKSkge1xuICAgICAgICAgIHByZXZGbGlwUmVmLmN1cnJlbnQudGIgPSB0cnVlO1xuICAgICAgICAgIG5leHRPZmZzZXRZID0gX3RtcE5leHRPZmZzZXRZO1xuICAgICAgICAgIHBvcHVwT2Zmc2V0WSA9IC1wb3B1cE9mZnNldFk7XG4gICAgICAgICAgbmV4dEFsaWduSW5mby5wb2ludHMgPSBbcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywgMCksIHJldmVyc2VQb2ludHModGFyZ2V0UG9pbnRzLCAwKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC50YiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vID4+Pj4+Pj4+Pj4gTGVmdCAmIFJpZ2h0XG4gICAgICB2YXIgbmVlZEFkanVzdFggPSBzdXBwb3J0QWRqdXN0KGFkanVzdFgpO1xuXG4gICAgICAvLyA+Pj4+PiBGbGlwXG4gICAgICB2YXIgc2FtZUxSID0gcG9wdXBQb2ludHNbMV0gPT09IHRhcmdldFBvaW50c1sxXTtcblxuICAgICAgLy8gUmlnaHQgdG8gTGVmdFxuICAgICAgaWYgKG5lZWRBZGp1c3RYICYmIHBvcHVwUG9pbnRzWzFdID09PSAnbCcgJiYgKG5leHRQb3B1cFJpZ2h0ID4gYWRqdXN0Q2hlY2tWaXNpYmxlQXJlYS5yaWdodCB8fCBwcmV2RmxpcFJlZi5jdXJyZW50LnJsKSkge1xuICAgICAgICB2YXIgdG1wTmV4dE9mZnNldFggPSBuZXh0T2Zmc2V0WDtcbiAgICAgICAgaWYgKHNhbWVMUikge1xuICAgICAgICAgIHRtcE5leHRPZmZzZXRYIC09IHBvcHVwV2lkdGggLSB0YXJnZXRXaWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0bXBOZXh0T2Zmc2V0WCA9IHRhcmdldEFsaWduUG9pbnRUTC54IC0gcG9wdXBBbGlnblBvaW50QlIueCAtIHBvcHVwT2Zmc2V0WDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX25ld1Zpc2libGVBcmVhMiA9IGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKHRtcE5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSk7XG4gICAgICAgIHZhciBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEyID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEodG1wTmV4dE9mZnNldFgsIG5leHRPZmZzZXRZLCB2aXNpYmxlUmVnaW9uQXJlYSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gT2YgY291cnNlIHVzZSBsYXJnZXIgb25lXG4gICAgICAgIF9uZXdWaXNpYmxlQXJlYTIgPiBvcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSB8fCBfbmV3VmlzaWJsZUFyZWEyID09PSBvcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSAmJiAoIWlzVmlzaWJsZUZpcnN0IHx8XG4gICAgICAgIC8vIENob29zZSByZWNvbW1lbmQgb25lXG4gICAgICAgIF9uZXdWaXNpYmxlUmVjb21tZW5kQXJlYTIgPj0gb3JpZ2luSW50ZXJzZWN0aW9uUmVjb21tZW5kQXJlYSkpIHtcbiAgICAgICAgICBwcmV2RmxpcFJlZi5jdXJyZW50LnJsID0gdHJ1ZTtcbiAgICAgICAgICBuZXh0T2Zmc2V0WCA9IHRtcE5leHRPZmZzZXRYO1xuICAgICAgICAgIHBvcHVwT2Zmc2V0WCA9IC1wb3B1cE9mZnNldFg7XG4gICAgICAgICAgbmV4dEFsaWduSW5mby5wb2ludHMgPSBbcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywgMSksIHJldmVyc2VQb2ludHModGFyZ2V0UG9pbnRzLCAxKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC5ybCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIExlZnQgdG8gUmlnaHRcbiAgICAgIGlmIChuZWVkQWRqdXN0WCAmJiBwb3B1cFBvaW50c1sxXSA9PT0gJ3InICYmIChuZXh0UG9wdXBYIDwgYWRqdXN0Q2hlY2tWaXNpYmxlQXJlYS5sZWZ0IHx8IHByZXZGbGlwUmVmLmN1cnJlbnQubHIpKSB7XG4gICAgICAgIHZhciBfdG1wTmV4dE9mZnNldFggPSBuZXh0T2Zmc2V0WDtcbiAgICAgICAgaWYgKHNhbWVMUikge1xuICAgICAgICAgIF90bXBOZXh0T2Zmc2V0WCArPSBwb3B1cFdpZHRoIC0gdGFyZ2V0V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RtcE5leHRPZmZzZXRYID0gdGFyZ2V0QWxpZ25Qb2ludEJSLnggLSBwb3B1cEFsaWduUG9pbnRUTC54IC0gcG9wdXBPZmZzZXRYO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfbmV3VmlzaWJsZUFyZWEzID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEoX3RtcE5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSk7XG4gICAgICAgIHZhciBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEzID0gZ2V0SW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEoX3RtcE5leHRPZmZzZXRYLCBuZXh0T2Zmc2V0WSwgdmlzaWJsZVJlZ2lvbkFyZWEpO1xuICAgICAgICBpZiAoXG4gICAgICAgIC8vIE9mIGNvdXJzZSB1c2UgbGFyZ2VyIG9uZVxuICAgICAgICBfbmV3VmlzaWJsZUFyZWEzID4gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgfHwgX25ld1Zpc2libGVBcmVhMyA9PT0gb3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEgJiYgKCFpc1Zpc2libGVGaXJzdCB8fFxuICAgICAgICAvLyBDaG9vc2UgcmVjb21tZW5kIG9uZVxuICAgICAgICBfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEzID49IG9yaWdpbkludGVyc2VjdGlvblJlY29tbWVuZEFyZWEpKSB7XG4gICAgICAgICAgcHJldkZsaXBSZWYuY3VycmVudC5sciA9IHRydWU7XG4gICAgICAgICAgbmV4dE9mZnNldFggPSBfdG1wTmV4dE9mZnNldFg7XG4gICAgICAgICAgcG9wdXBPZmZzZXRYID0gLXBvcHVwT2Zmc2V0WDtcbiAgICAgICAgICBuZXh0QWxpZ25JbmZvLnBvaW50cyA9IFtyZXZlcnNlUG9pbnRzKHBvcHVwUG9pbnRzLCAxKSwgcmV2ZXJzZVBvaW50cyh0YXJnZXRQb2ludHMsIDEpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2RmxpcFJlZi5jdXJyZW50LmxyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTaGlmdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICBzeW5jTmV4dFBvcHVwUG9zaXRpb24oKTtcbiAgICAgIHZhciBudW1TaGlmdFggPSBzaGlmdFggPT09IHRydWUgPyAwIDogc2hpZnRYO1xuICAgICAgaWYgKHR5cGVvZiBudW1TaGlmdFggPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vIExlZnRcbiAgICAgICAgaWYgKG5leHRQb3B1cFggPCB2aXNpYmxlUmVnaW9uQXJlYS5sZWZ0KSB7XG4gICAgICAgICAgbmV4dE9mZnNldFggLT0gbmV4dFBvcHVwWCAtIHZpc2libGVSZWdpb25BcmVhLmxlZnQgLSBwb3B1cE9mZnNldFg7XG4gICAgICAgICAgaWYgKHRhcmdldFJlY3QueCArIHRhcmdldFdpZHRoIDwgdmlzaWJsZVJlZ2lvbkFyZWEubGVmdCArIG51bVNoaWZ0WCkge1xuICAgICAgICAgICAgbmV4dE9mZnNldFggKz0gdGFyZ2V0UmVjdC54IC0gdmlzaWJsZVJlZ2lvbkFyZWEubGVmdCArIHRhcmdldFdpZHRoIC0gbnVtU2hpZnRYO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJpZ2h0XG4gICAgICAgIGlmIChuZXh0UG9wdXBSaWdodCA+IHZpc2libGVSZWdpb25BcmVhLnJpZ2h0KSB7XG4gICAgICAgICAgbmV4dE9mZnNldFggLT0gbmV4dFBvcHVwUmlnaHQgLSB2aXNpYmxlUmVnaW9uQXJlYS5yaWdodCAtIHBvcHVwT2Zmc2V0WDtcbiAgICAgICAgICBpZiAodGFyZ2V0UmVjdC54ID4gdmlzaWJsZVJlZ2lvbkFyZWEucmlnaHQgLSBudW1TaGlmdFgpIHtcbiAgICAgICAgICAgIG5leHRPZmZzZXRYICs9IHRhcmdldFJlY3QueCAtIHZpc2libGVSZWdpb25BcmVhLnJpZ2h0ICsgbnVtU2hpZnRYO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIG51bVNoaWZ0WSA9IHNoaWZ0WSA9PT0gdHJ1ZSA/IDAgOiBzaGlmdFk7XG4gICAgICBpZiAodHlwZW9mIG51bVNoaWZ0WSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy8gVG9wXG4gICAgICAgIGlmIChuZXh0UG9wdXBZIDwgdmlzaWJsZVJlZ2lvbkFyZWEudG9wKSB7XG4gICAgICAgICAgbmV4dE9mZnNldFkgLT0gbmV4dFBvcHVwWSAtIHZpc2libGVSZWdpb25BcmVhLnRvcCAtIHBvcHVwT2Zmc2V0WTtcblxuICAgICAgICAgIC8vIFdoZW4gdGFyZ2V0IGlmIGZhciBhd2F5IGZyb20gdmlzaWJsZSBhcmVhXG4gICAgICAgICAgLy8gU3RvcCBzaGlmdFxuICAgICAgICAgIGlmICh0YXJnZXRSZWN0LnkgKyB0YXJnZXRIZWlnaHQgPCB2aXNpYmxlUmVnaW9uQXJlYS50b3AgKyBudW1TaGlmdFkpIHtcbiAgICAgICAgICAgIG5leHRPZmZzZXRZICs9IHRhcmdldFJlY3QueSAtIHZpc2libGVSZWdpb25BcmVhLnRvcCArIHRhcmdldEhlaWdodCAtIG51bVNoaWZ0WTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb3R0b21cbiAgICAgICAgaWYgKG5leHRQb3B1cEJvdHRvbSA+IHZpc2libGVSZWdpb25BcmVhLmJvdHRvbSkge1xuICAgICAgICAgIG5leHRPZmZzZXRZIC09IG5leHRQb3B1cEJvdHRvbSAtIHZpc2libGVSZWdpb25BcmVhLmJvdHRvbSAtIHBvcHVwT2Zmc2V0WTtcbiAgICAgICAgICBpZiAodGFyZ2V0UmVjdC55ID4gdmlzaWJsZVJlZ2lvbkFyZWEuYm90dG9tIC0gbnVtU2hpZnRZKSB7XG4gICAgICAgICAgICBuZXh0T2Zmc2V0WSArPSB0YXJnZXRSZWN0LnkgLSB2aXNpYmxlUmVnaW9uQXJlYS5ib3R0b20gKyBudW1TaGlmdFk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQXJyb3cgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gQXJyb3cgY2VudGVyIGFsaWduXG4gICAgICB2YXIgcG9wdXBMZWZ0ID0gcG9wdXBSZWN0LnggKyBuZXh0T2Zmc2V0WDtcbiAgICAgIHZhciBwb3B1cFJpZ2h0ID0gcG9wdXBMZWZ0ICsgcG9wdXBXaWR0aDtcbiAgICAgIHZhciBwb3B1cFRvcCA9IHBvcHVwUmVjdC55ICsgbmV4dE9mZnNldFk7XG4gICAgICB2YXIgcG9wdXBCb3R0b20gPSBwb3B1cFRvcCArIHBvcHVwSGVpZ2h0O1xuICAgICAgdmFyIHRhcmdldExlZnQgPSB0YXJnZXRSZWN0Lng7XG4gICAgICB2YXIgdGFyZ2V0UmlnaHQgPSB0YXJnZXRMZWZ0ICsgdGFyZ2V0V2lkdGg7XG4gICAgICB2YXIgdGFyZ2V0VG9wID0gdGFyZ2V0UmVjdC55O1xuICAgICAgdmFyIHRhcmdldEJvdHRvbSA9IHRhcmdldFRvcCArIHRhcmdldEhlaWdodDtcbiAgICAgIHZhciBtYXhMZWZ0ID0gTWF0aC5tYXgocG9wdXBMZWZ0LCB0YXJnZXRMZWZ0KTtcbiAgICAgIHZhciBtaW5SaWdodCA9IE1hdGgubWluKHBvcHVwUmlnaHQsIHRhcmdldFJpZ2h0KTtcbiAgICAgIHZhciB4Q2VudGVyID0gKG1heExlZnQgKyBtaW5SaWdodCkgLyAyO1xuICAgICAgdmFyIG5leHRBcnJvd1ggPSB4Q2VudGVyIC0gcG9wdXBMZWZ0O1xuICAgICAgdmFyIG1heFRvcCA9IE1hdGgubWF4KHBvcHVwVG9wLCB0YXJnZXRUb3ApO1xuICAgICAgdmFyIG1pbkJvdHRvbSA9IE1hdGgubWluKHBvcHVwQm90dG9tLCB0YXJnZXRCb3R0b20pO1xuICAgICAgdmFyIHlDZW50ZXIgPSAobWF4VG9wICsgbWluQm90dG9tKSAvIDI7XG4gICAgICB2YXIgbmV4dEFycm93WSA9IHlDZW50ZXIgLSBwb3B1cFRvcDtcbiAgICAgIG9uUG9wdXBBbGlnbiA9PT0gbnVsbCB8fCBvblBvcHVwQWxpZ24gPT09IHZvaWQgMCB8fCBvblBvcHVwQWxpZ24ocG9wdXBFbGUsIG5leHRBbGlnbkluZm8pO1xuXG4gICAgICAvLyBBZGRpdGlvbmFsIGNhbGN1bGF0ZSByaWdodCAmIGJvdHRvbSBwb3NpdGlvblxuICAgICAgdmFyIG9mZnNldFg0UmlnaHQgPSBwb3B1cE1pcnJvclJlY3QucmlnaHQgLSBwb3B1cFJlY3QueCAtIChuZXh0T2Zmc2V0WCArIHBvcHVwUmVjdC53aWR0aCk7XG4gICAgICB2YXIgb2Zmc2V0WTRCb3R0b20gPSBwb3B1cE1pcnJvclJlY3QuYm90dG9tIC0gcG9wdXBSZWN0LnkgLSAobmV4dE9mZnNldFkgKyBwb3B1cFJlY3QuaGVpZ2h0KTtcbiAgICAgIGlmIChfc2NhbGVYID09PSAxKSB7XG4gICAgICAgIG5leHRPZmZzZXRYID0gTWF0aC5yb3VuZChuZXh0T2Zmc2V0WCk7XG4gICAgICAgIG9mZnNldFg0UmlnaHQgPSBNYXRoLnJvdW5kKG9mZnNldFg0UmlnaHQpO1xuICAgICAgfVxuICAgICAgaWYgKF9zY2FsZVkgPT09IDEpIHtcbiAgICAgICAgbmV4dE9mZnNldFkgPSBNYXRoLnJvdW5kKG5leHRPZmZzZXRZKTtcbiAgICAgICAgb2Zmc2V0WTRCb3R0b20gPSBNYXRoLnJvdW5kKG9mZnNldFk0Qm90dG9tKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXh0T2Zmc2V0SW5mbyA9IHtcbiAgICAgICAgcmVhZHk6IHRydWUsXG4gICAgICAgIG9mZnNldFg6IG5leHRPZmZzZXRYIC8gX3NjYWxlWCxcbiAgICAgICAgb2Zmc2V0WTogbmV4dE9mZnNldFkgLyBfc2NhbGVZLFxuICAgICAgICBvZmZzZXRSOiBvZmZzZXRYNFJpZ2h0IC8gX3NjYWxlWCxcbiAgICAgICAgb2Zmc2V0Qjogb2Zmc2V0WTRCb3R0b20gLyBfc2NhbGVZLFxuICAgICAgICBhcnJvd1g6IG5leHRBcnJvd1ggLyBfc2NhbGVYLFxuICAgICAgICBhcnJvd1k6IG5leHRBcnJvd1kgLyBfc2NhbGVZLFxuICAgICAgICBzY2FsZVg6IF9zY2FsZVgsXG4gICAgICAgIHNjYWxlWTogX3NjYWxlWSxcbiAgICAgICAgYWxpZ246IG5leHRBbGlnbkluZm9cbiAgICAgIH07XG4gICAgICBzZXRPZmZzZXRJbmZvKG5leHRPZmZzZXRJbmZvKTtcbiAgICB9XG4gIH0pO1xuICB2YXIgdHJpZ2dlckFsaWduID0gZnVuY3Rpb24gdHJpZ2dlckFsaWduKCkge1xuICAgIGFsaWduQ291bnRSZWYuY3VycmVudCArPSAxO1xuICAgIHZhciBpZCA9IGFsaWduQ291bnRSZWYuY3VycmVudDtcblxuICAgIC8vIE1lcmdlIGFsbCBhbGlnbiByZXF1aXJlbWVudCBpbnRvIG9uZSBmcmFtZVxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGFsaWduQ291bnRSZWYuY3VycmVudCA9PT0gaWQpIHtcbiAgICAgICAgb25BbGlnbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8vIFJlc2V0IHJlYWR5IHN0YXR1cyB3aGVuIHBsYWNlbWVudCAmIG9wZW4gY2hhbmdlZFxuICB2YXIgcmVzZXRSZWFkeSA9IGZ1bmN0aW9uIHJlc2V0UmVhZHkoKSB7XG4gICAgc2V0T2Zmc2V0SW5mbyhmdW5jdGlvbiAob3JpKSB7XG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBvcmkpLCB7fSwge1xuICAgICAgICByZWFkeTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICB1c2VMYXlvdXRFZmZlY3QocmVzZXRSZWFkeSwgW3BsYWNlbWVudF0pO1xuICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghb3Blbikge1xuICAgICAgcmVzZXRSZWFkeSgpO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgcmV0dXJuIFtvZmZzZXRJbmZvLnJlYWR5LCBvZmZzZXRJbmZvLm9mZnNldFgsIG9mZnNldEluZm8ub2Zmc2V0WSwgb2Zmc2V0SW5mby5vZmZzZXRSLCBvZmZzZXRJbmZvLm9mZnNldEIsIG9mZnNldEluZm8uYXJyb3dYLCBvZmZzZXRJbmZvLmFycm93WSwgb2Zmc2V0SW5mby5zY2FsZVgsIG9mZnNldEluZm8uc2NhbGVZLCBvZmZzZXRJbmZvLmFsaWduLCB0cmlnZ2VyQWxpZ25dO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/hooks/useAlign.js\n");
/***/ }),
@@ -1446,7 +2154,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__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 */ useWinClick)\n/* harmony export */ });\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rc-util/es/warning */ \"./node_modules/rc-util/es/warning.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\n\nfunction useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(open);\n openRef.current = open;\n\n // Click to hide is special action since click popup element should not hide\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onTriggerClose = function onTriggerClose(_ref) {\n var target = _ref.target;\n if (openRef.current && !inPopupOrChild(target)) {\n triggerOpen(false);\n }\n };\n var win = (0,_util__WEBPACK_IMPORTED_MODULE_3__.getWin)(popupEle);\n win.addEventListener('mousedown', onTriggerClose, true);\n win.addEventListener('contextmenu', onTriggerClose, true);\n\n // shadow root\n var targetShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__.getShadowRoot)(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n }\n\n // Warning if target and popup not in same root\n if (true) {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n (0,rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__.warning)(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('mousedown', onTriggerClose, true);\n win.removeEventListener('contextmenu', onTriggerClose, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2hvb2tzL3VzZVdpbkNsaWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ1Q7QUFDZDtBQUNFO0FBQ2xCO0FBQ2YsZ0JBQWdCLHlDQUFZO0FBQzVCOztBQUVBO0FBQ0EsRUFBRSw0Q0FBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBTTtBQUN0QjtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLG9FQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQSxRQUFRLDJEQUFPO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvdHJpZ2dlci9lcy9ob29rcy91c2VXaW5DbGljay5qcz8xN2E1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFNoYWRvd1Jvb3QgfSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vc2hhZG93XCI7XG5pbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSBcInJjLXV0aWwvZXMvd2FybmluZ1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0V2luIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVdpbkNsaWNrKG9wZW4sIGNsaWNrVG9IaWRlLCB0YXJnZXRFbGUsIHBvcHVwRWxlLCBtYXNrLCBtYXNrQ2xvc2FibGUsIGluUG9wdXBPckNoaWxkLCB0cmlnZ2VyT3Blbikge1xuICB2YXIgb3BlblJlZiA9IFJlYWN0LnVzZVJlZihvcGVuKTtcbiAgb3BlblJlZi5jdXJyZW50ID0gb3BlbjtcblxuICAvLyBDbGljayB0byBoaWRlIGlzIHNwZWNpYWwgYWN0aW9uIHNpbmNlIGNsaWNrIHBvcHVwIGVsZW1lbnQgc2hvdWxkIG5vdCBoaWRlXG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNsaWNrVG9IaWRlICYmIHBvcHVwRWxlICYmICghbWFzayB8fCBtYXNrQ2xvc2FibGUpKSB7XG4gICAgICB2YXIgb25UcmlnZ2VyQ2xvc2UgPSBmdW5jdGlvbiBvblRyaWdnZXJDbG9zZShfcmVmKSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSBfcmVmLnRhcmdldDtcbiAgICAgICAgaWYgKG9wZW5SZWYuY3VycmVudCAmJiAhaW5Qb3B1cE9yQ2hpbGQodGFyZ2V0KSkge1xuICAgICAgICAgIHRyaWdnZXJPcGVuKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHZhciB3aW4gPSBnZXRXaW4ocG9wdXBFbGUpO1xuICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcblxuICAgICAgLy8gc2hhZG93IHJvb3RcbiAgICAgIHZhciB0YXJnZXRTaGFkb3dSb290ID0gZ2V0U2hhZG93Um9vdCh0YXJnZXRFbGUpO1xuICAgICAgaWYgKHRhcmdldFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgdGFyZ2V0U2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICAgIHRhcmdldFNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm5pbmcgaWYgdGFyZ2V0IGFuZCBwb3B1cCBub3QgaW4gc2FtZSByb290XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgX3RhcmdldEVsZSRnZXRSb290Tm9kLCBfcG9wdXBFbGUkZ2V0Um9vdE5vZGU7XG4gICAgICAgIHZhciB0YXJnZXRSb290ID0gdGFyZ2V0RWxlID09PSBudWxsIHx8IHRhcmdldEVsZSA9PT0gdm9pZCAwIHx8IChfdGFyZ2V0RWxlJGdldFJvb3ROb2QgPSB0YXJnZXRFbGUuZ2V0Um9vdE5vZGUpID09PSBudWxsIHx8IF90YXJnZXRFbGUkZ2V0Um9vdE5vZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RhcmdldEVsZSRnZXRSb290Tm9kLmNhbGwodGFyZ2V0RWxlKTtcbiAgICAgICAgdmFyIHBvcHVwUm9vdCA9IChfcG9wdXBFbGUkZ2V0Um9vdE5vZGUgPSBwb3B1cEVsZS5nZXRSb290Tm9kZSkgPT09IG51bGwgfHwgX3BvcHVwRWxlJGdldFJvb3ROb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcG9wdXBFbGUkZ2V0Um9vdE5vZGUuY2FsbChwb3B1cEVsZSk7XG4gICAgICAgIHdhcm5pbmcodGFyZ2V0Um9vdCA9PT0gcG9wdXBSb290LCBcInRyaWdnZXIgZWxlbWVudCBhbmQgcG9wdXAgZWxlbWVudCBzaG91bGQgaW4gc2FtZSBzaGFkb3cgcm9vdC5cIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25UcmlnZ2VyQ2xvc2UsIHRydWUpO1xuICAgICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICAgIGlmICh0YXJnZXRTaGFkb3dSb290KSB7XG4gICAgICAgICAgdGFyZ2V0U2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICAgICAgdGFyZ2V0U2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjbGlja1RvSGlkZSwgdGFyZ2V0RWxlLCBwb3B1cEVsZSwgbWFzaywgbWFza0Nsb3NhYmxlXSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/hooks/useWinClick.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ useWinClick)\n/* harmony export */ });\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rc-util/es/warning */ \"./node_modules/rc-util/es/warning.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\n\nfunction useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(open);\n openRef.current = open;\n var popupPointerDownRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);\n\n // Click to hide is special action since click popup element should not hide\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onPointerDown = function onPointerDown() {\n popupPointerDownRef.current = false;\n };\n var onTriggerClose = function onTriggerClose(e) {\n var _e$composedPath;\n if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {\n triggerOpen(false);\n }\n };\n var win = (0,_util__WEBPACK_IMPORTED_MODULE_3__.getWin)(popupEle);\n win.addEventListener('pointerdown', onPointerDown, true);\n win.addEventListener('mousedown', onTriggerClose, true);\n win.addEventListener('contextmenu', onTriggerClose, true);\n\n // shadow root\n var targetShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__.getShadowRoot)(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n }\n\n // Warning if target and popup not in same root\n if (true) {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n (0,rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__.warning)(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('pointerdown', onPointerDown, true);\n win.removeEventListener('mousedown', onTriggerClose, true);\n win.removeEventListener('contextmenu', onTriggerClose, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n function onPopupPointerDown() {\n popupPointerDownRef.current = true;\n }\n return onPopupPointerDown;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2hvb2tzL3VzZVdpbkNsaWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ1Q7QUFDZDtBQUNFO0FBQ2xCO0FBQ2YsZ0JBQWdCLHlDQUFZO0FBQzVCO0FBQ0EsNEJBQTRCLHlDQUFZOztBQUV4QztBQUNBLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQU07QUFDdEI7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCLG9FQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQSxRQUFRLDJEQUFPO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFpY3Mvd2ViLTNkLXZpZXdlci8uL25vZGVfbW9kdWxlcy9AcmMtY29tcG9uZW50L3RyaWdnZXIvZXMvaG9va3MvdXNlV2luQ2xpY2suanM/MTdhNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTaGFkb3dSb290IH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL3NoYWRvd1wiO1xuaW1wb3J0IHsgd2FybmluZyB9IGZyb20gXCJyYy11dGlsL2VzL3dhcm5pbmdcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFdpbiB9IGZyb20gXCIuLi91dGlsXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VXaW5DbGljayhvcGVuLCBjbGlja1RvSGlkZSwgdGFyZ2V0RWxlLCBwb3B1cEVsZSwgbWFzaywgbWFza0Nsb3NhYmxlLCBpblBvcHVwT3JDaGlsZCwgdHJpZ2dlck9wZW4pIHtcbiAgdmFyIG9wZW5SZWYgPSBSZWFjdC51c2VSZWYob3Blbik7XG4gIG9wZW5SZWYuY3VycmVudCA9IG9wZW47XG4gIHZhciBwb3B1cFBvaW50ZXJEb3duUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAvLyBDbGljayB0byBoaWRlIGlzIHNwZWNpYWwgYWN0aW9uIHNpbmNlIGNsaWNrIHBvcHVwIGVsZW1lbnQgc2hvdWxkIG5vdCBoaWRlXG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNsaWNrVG9IaWRlICYmIHBvcHVwRWxlICYmICghbWFzayB8fCBtYXNrQ2xvc2FibGUpKSB7XG4gICAgICB2YXIgb25Qb2ludGVyRG93biA9IGZ1bmN0aW9uIG9uUG9pbnRlckRvd24oKSB7XG4gICAgICAgIHBvcHVwUG9pbnRlckRvd25SZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfTtcbiAgICAgIHZhciBvblRyaWdnZXJDbG9zZSA9IGZ1bmN0aW9uIG9uVHJpZ2dlckNsb3NlKGUpIHtcbiAgICAgICAgdmFyIF9lJGNvbXBvc2VkUGF0aDtcbiAgICAgICAgaWYgKG9wZW5SZWYuY3VycmVudCAmJiAhaW5Qb3B1cE9yQ2hpbGQoKChfZSRjb21wb3NlZFBhdGggPSBlLmNvbXBvc2VkUGF0aCkgPT09IG51bGwgfHwgX2UkY29tcG9zZWRQYXRoID09PSB2b2lkIDAgfHwgKF9lJGNvbXBvc2VkUGF0aCA9IF9lJGNvbXBvc2VkUGF0aC5jYWxsKGUpKSA9PT0gbnVsbCB8fCBfZSRjb21wb3NlZFBhdGggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lJGNvbXBvc2VkUGF0aFswXSkgfHwgZS50YXJnZXQpICYmICFwb3B1cFBvaW50ZXJEb3duUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICB0cmlnZ2VyT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB2YXIgd2luID0gZ2V0V2luKHBvcHVwRWxlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIG9uUG9pbnRlckRvd24sIHRydWUpO1xuICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcblxuICAgICAgLy8gc2hhZG93IHJvb3RcbiAgICAgIHZhciB0YXJnZXRTaGFkb3dSb290ID0gZ2V0U2hhZG93Um9vdCh0YXJnZXRFbGUpO1xuICAgICAgaWYgKHRhcmdldFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgdGFyZ2V0U2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICAgIHRhcmdldFNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm5pbmcgaWYgdGFyZ2V0IGFuZCBwb3B1cCBub3QgaW4gc2FtZSByb290XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgX3RhcmdldEVsZSRnZXRSb290Tm9kLCBfcG9wdXBFbGUkZ2V0Um9vdE5vZGU7XG4gICAgICAgIHZhciB0YXJnZXRSb290ID0gdGFyZ2V0RWxlID09PSBudWxsIHx8IHRhcmdldEVsZSA9PT0gdm9pZCAwIHx8IChfdGFyZ2V0RWxlJGdldFJvb3ROb2QgPSB0YXJnZXRFbGUuZ2V0Um9vdE5vZGUpID09PSBudWxsIHx8IF90YXJnZXRFbGUkZ2V0Um9vdE5vZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RhcmdldEVsZSRnZXRSb290Tm9kLmNhbGwodGFyZ2V0RWxlKTtcbiAgICAgICAgdmFyIHBvcHVwUm9vdCA9IChfcG9wdXBFbGUkZ2V0Um9vdE5vZGUgPSBwb3B1cEVsZS5nZXRSb290Tm9kZSkgPT09IG51bGwgfHwgX3BvcHVwRWxlJGdldFJvb3ROb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcG9wdXBFbGUkZ2V0Um9vdE5vZGUuY2FsbChwb3B1cEVsZSk7XG4gICAgICAgIHdhcm5pbmcodGFyZ2V0Um9vdCA9PT0gcG9wdXBSb290LCBcInRyaWdnZXIgZWxlbWVudCBhbmQgcG9wdXAgZWxlbWVudCBzaG91bGQgaW4gc2FtZSBzaGFkb3cgcm9vdC5cIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBvblBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICAgICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uVHJpZ2dlckNsb3NlLCB0cnVlKTtcbiAgICAgICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51Jywgb25UcmlnZ2VyQ2xvc2UsIHRydWUpO1xuICAgICAgICBpZiAodGFyZ2V0U2hhZG93Um9vdCkge1xuICAgICAgICAgIHRhcmdldFNoYWRvd1Jvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25UcmlnZ2VyQ2xvc2UsIHRydWUpO1xuICAgICAgICAgIHRhcmdldFNoYWRvd1Jvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvblRyaWdnZXJDbG9zZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9LCBbY2xpY2tUb0hpZGUsIHRhcmdldEVsZSwgcG9wdXBFbGUsIG1hc2ssIG1hc2tDbG9zYWJsZV0pO1xuICBmdW5jdGlvbiBvblBvcHVwUG9pbnRlckRvd24oKSB7XG4gICAgcG9wdXBQb2ludGVyRG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gb25Qb3B1cFBvaW50ZXJEb3duO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/hooks/useWinClick.js\n");
/***/ }),
@@ -1457,7 +2165,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__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 */ generateTrigger: () => (/* binding */ generateTrigger)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @rc-component/portal */ \"./node_modules/@rc-component/portal/es/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-resize-observer */ \"./node_modules/rc-resize-observer/es/index.js\");\n/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/Dom/findDOMNode */ \"./node_modules/rc-util/es/Dom/findDOMNode.js\");\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rc-util/es/hooks/useEvent */ \"./node_modules/rc-util/es/hooks/useEvent.js\");\n/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rc-util/es/hooks/useId */ \"./node_modules/rc-util/es/hooks/useId.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rc-util/es/isMobile */ \"./node_modules/rc-util/es/isMobile.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Popup */ \"./node_modules/@rc-component/trigger/es/Popup/index.js\");\n/* harmony import */ var _TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./TriggerWrapper */ \"./node_modules/@rc-component/trigger/es/TriggerWrapper.js\");\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./context */ \"./node_modules/@rc-component/trigger/es/context.js\");\n/* harmony import */ var _hooks_useAction__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./hooks/useAction */ \"./node_modules/@rc-component/trigger/es/hooks/useAction.js\");\n/* harmony import */ var _hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hooks/useAlign */ \"./node_modules/@rc-component/trigger/es/hooks/useAlign.js\");\n/* harmony import */ var _hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./hooks/useWatch */ \"./node_modules/@rc-component/trigger/es/hooks/useWatch.js\");\n/* harmony import */ var _hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./hooks/useWinClick */ \"./node_modules/@rc-component/trigger/es/hooks/useWinClick.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nfunction generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n var Trigger = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n setMobile((0,rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__[\"default\"])());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = react__WEBPACK_IMPORTED_MODULE_12__.useRef({});\n var parentContext = react__WEBPACK_IMPORTED_MODULE_12__.useContext(_context__WEBPACK_IMPORTED_MODULE_15__[\"default\"]);\n var context = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__[\"default\"])();\n var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n\n // Used for forwardRef popup. Not use internal\n var externalPopupRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);\n var setPopupRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (node) {\n externalPopupRef.current = node;\n if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__.isDOM)(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);\n var setTargetRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (node) {\n if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__.isDOM)(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = react__WEBPACK_IMPORTED_MODULE_12__.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__.getShadowRoot)(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__.getShadowRoot)(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getMotion)(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getMotion)(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_12__.useState(defaultPopupVisible || false),\n _React$useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n react__WEBPACK_IMPORTED_MODULE_12__.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),\n _React$useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_12__.useState([0, 0]),\n _React$useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = (0,_hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(mergedOpen, popupEle, alignPoint ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = (0,_hooks_useAction__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(mobile, action, showAction, hideAction),\n _useAction2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n (0,_hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {\n var baseClassName = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getAlignPopupClassName)(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classnames__WEBPACK_IMPORTED_MODULE_4___default()(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n react__WEBPACK_IMPORTED_MODULE_12__.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n popupElement: externalPopupRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),\n _React$useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),\n _React$useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n (0,_hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classnames__WEBPACK_IMPORTED_MODULE_4___default()(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.cloneElement(child, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(react__WEBPACK_IMPORTED_MODULE_12__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_context__WEBPACK_IMPORTED_MODULE_15__[\"default\"].Provider, {\n value: context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (true) {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (generateTrigger(_rc_component_portal__WEBPACK_IMPORTED_MODULE_3__[\"default\"]));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRTtBQUNDO0FBQ29CO0FBQzFGO0FBQzBDO0FBQ047QUFDWTtBQUNHO0FBQ0c7QUFDTDtBQUNOO0FBQ29CO0FBQ3BCO0FBQ1o7QUFDSDtBQUNrQjtBQUNQO0FBQ0c7QUFDRjtBQUNBO0FBQ007QUFDYTs7QUFFM0Q7QUFDQTtBQUNBOztBQUVBOztBQUVPO0FBQ1AsNEZBQTRGLDREQUFNO0FBQ2xHLDZCQUE2Qiw4Q0FBZ0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw4RkFBd0I7QUFDMUM7O0FBRUE7QUFDQSwwQkFBMEIsNENBQWM7QUFDeEMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7QUFDQSxJQUFJLDZFQUFlO0FBQ25CLGdCQUFnQixnRUFBUTtBQUN4QixLQUFLOztBQUVMO0FBQ0EsMkJBQTJCLDBDQUFZLEdBQUc7QUFDMUMsd0JBQXdCLDhDQUFnQixDQUFDLGlEQUFjO0FBQ3ZELGtCQUFrQiwyQ0FBYTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsYUFBYSxrRUFBSztBQUNsQiwyQkFBMkIsNENBQWM7QUFDekMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIsMENBQVk7QUFDdkMsc0JBQXNCLHFFQUFRO0FBQzlCO0FBQ0EsVUFBVSxpRUFBSztBQUNmO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLDJCQUEyQiw0Q0FBYztBQUN6Qyx5QkFBeUIsb0ZBQWM7QUFDdkM7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QiwwQ0FBWTtBQUN6Qyx1QkFBdUIscUVBQVE7QUFDL0IsVUFBVSxpRUFBSztBQUNmO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxnQkFBZ0IsNENBQWM7QUFDOUI7QUFDQTtBQUNBLHlCQUF5QixxRUFBUTtBQUNqQztBQUNBO0FBQ0EsZ0hBQWdILG9FQUFhLHFOQUFxTixvRUFBYTtBQUMvVjtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0EsMkJBQTJCLGlEQUFTO0FBQ3BDLDBCQUEwQixpREFBUzs7QUFFbkM7QUFDQSwyQkFBMkIsNENBQWM7QUFDekMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHdCQUF3QixxRUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSw2RUFBZTtBQUNuQjtBQUNBLEtBQUs7QUFDTCxrQkFBa0IsMENBQVk7QUFDOUI7QUFDQSx5QkFBeUIsMENBQVk7QUFDckM7QUFDQSw4QkFBOEIscUVBQVE7QUFDdEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxtQkFBbUIsMENBQVk7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxJQUFJLDZDQUFlO0FBQ25CO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDJCQUEyQiw0Q0FBYztBQUN6QywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBLElBQUksNkVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTs7QUFFQTtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0REFBUTtBQUM1QixtQkFBbUIsb0ZBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiw2REFBUztBQUM5QixvQkFBb0Isb0ZBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIscUVBQVE7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDREQUFRO0FBQ1osSUFBSSw2RUFBZTtBQUNuQjtBQUNBLEtBQUs7O0FBRUw7QUFDQSxJQUFJLDZFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwyQkFBMkIsMkNBQWE7QUFDeEMsMEJBQTBCLDhEQUFzQjtBQUNoRCxhQUFhLGlEQUFVO0FBQ3ZCLEtBQUs7O0FBRUw7QUFDQSxJQUFJLHVEQUF5QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSxJQUFJLDZFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtGQUErRixhQUFhO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1HQUFtRyxlQUFlO0FBQ2xIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJLCtEQUFXOztBQUVmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtR0FBbUcsZUFBZTtBQUNsSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsaURBQVU7QUFDdkM7O0FBRUE7QUFDQSw4QkFBOEIsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRixlQUFlO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxtQ0FBbUMsZ0RBQWtCLFFBQVEsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9GQUFhLEdBQUcsNkJBQTZCOztBQUUxRTtBQUNBLHdCQUF3QixpREFBbUIsQ0FBQyw0Q0FBYyxxQkFBcUIsaURBQW1CLENBQUMsMERBQWM7QUFDakg7QUFDQTtBQUNBO0FBQ0EsS0FBSyxlQUFlLGlEQUFtQixDQUFDLHdEQUFjO0FBQ3REO0FBQ0EsS0FBSyw4QkFBOEIsaURBQW1CLENBQUMsaURBQWM7QUFDckU7QUFDQSxLQUFLLGVBQWUsaURBQW1CLENBQUMsK0NBQUs7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaURBQVU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWUsZ0JBQWdCLDREQUFNLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYWljcy93ZWItM2Qtdmlld2VyLy4vbm9kZV9tb2R1bGVzL0ByYy1jb21wb25lbnQvdHJpZ2dlci9lcy9pbmRleC5qcz9iZjZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzXCI7XG52YXIgX2V4Y2x1ZGVkID0gW1wicHJlZml4Q2xzXCIsIFwiY2hpbGRyZW5cIiwgXCJhY3Rpb25cIiwgXCJzaG93QWN0aW9uXCIsIFwiaGlkZUFjdGlvblwiLCBcInBvcHVwVmlzaWJsZVwiLCBcImRlZmF1bHRQb3B1cFZpc2libGVcIiwgXCJvblBvcHVwVmlzaWJsZUNoYW5nZVwiLCBcImFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlXCIsIFwibW91c2VFbnRlckRlbGF5XCIsIFwibW91c2VMZWF2ZURlbGF5XCIsIFwiZm9jdXNEZWxheVwiLCBcImJsdXJEZWxheVwiLCBcIm1hc2tcIiwgXCJtYXNrQ2xvc2FibGVcIiwgXCJnZXRQb3B1cENvbnRhaW5lclwiLCBcImZvcmNlUmVuZGVyXCIsIFwiYXV0b0Rlc3Ryb3lcIiwgXCJkZXN0cm95UG9wdXBPbkhpZGVcIiwgXCJwb3B1cFwiLCBcInBvcHVwQ2xhc3NOYW1lXCIsIFwicG9wdXBTdHlsZVwiLCBcInBvcHVwUGxhY2VtZW50XCIsIFwiYnVpbHRpblBsYWNlbWVudHNcIiwgXCJwb3B1cEFsaWduXCIsIFwiekluZGV4XCIsIFwic3RyZXRjaFwiLCBcImdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduXCIsIFwiZnJlc2hcIiwgXCJhbGlnblBvaW50XCIsIFwib25Qb3B1cENsaWNrXCIsIFwib25Qb3B1cEFsaWduXCIsIFwiYXJyb3dcIiwgXCJwb3B1cE1vdGlvblwiLCBcIm1hc2tNb3Rpb25cIiwgXCJwb3B1cFRyYW5zaXRpb25OYW1lXCIsIFwicG9wdXBBbmltYXRpb25cIiwgXCJtYXNrVHJhbnNpdGlvbk5hbWVcIiwgXCJtYXNrQW5pbWF0aW9uXCIsIFwiY2xhc3NOYW1lXCIsIFwiZ2V0VHJpZ2dlckRPTU5vZGVcIl07XG5pbXBvcnQgUG9ydGFsIGZyb20gJ0ByYy1jb21wb25lbnQvcG9ydGFsJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3JjLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgeyBpc0RPTSB9IGZyb20gXCJyYy11dGlsL2VzL0RvbS9maW5kRE9NTm9kZVwiO1xuaW1wb3J0IHsgZ2V0U2hhZG93Um9vdCB9IGZyb20gXCJyYy11dGlsL2VzL0RvbS9zaGFkb3dcIjtcbmltcG9ydCB1c2VFdmVudCBmcm9tIFwicmMtdXRpbC9lcy9ob29rcy91c2VFdmVudFwiO1xuaW1wb3J0IHVzZUlkIGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUlkXCI7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUxheW91dEVmZmVjdFwiO1xuaW1wb3J0IGlzTW9iaWxlIGZyb20gXCJyYy11dGlsL2VzL2lzTW9iaWxlXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUG9wdXAgZnJvbSBcIi4vUG9wdXBcIjtcbmltcG9ydCBUcmlnZ2VyV3JhcHBlciBmcm9tIFwiLi9UcmlnZ2VyV3JhcHBlclwiO1xuaW1wb3J0IFRyaWdnZXJDb250ZXh0IGZyb20gXCIuL2NvbnRleHRcIjtcbmltcG9ydCB1c2VBY3Rpb24gZnJvbSBcIi4vaG9va3MvdXNlQWN0aW9uXCI7XG5pbXBvcnQgdXNlQWxpZ24gZnJvbSBcIi4vaG9va3MvdXNlQWxpZ25cIjtcbmltcG9ydCB1c2VXYXRjaCBmcm9tIFwiLi9ob29rcy91c2VXYXRjaFwiO1xuaW1wb3J0IHVzZVdpbkNsaWNrIGZyb20gXCIuL2hvb2tzL3VzZVdpbkNsaWNrXCI7XG5pbXBvcnQgeyBnZXRBbGlnblBvcHVwQ2xhc3NOYW1lLCBnZXRNb3Rpb24gfSBmcm9tIFwiLi91dGlsXCI7XG5cbi8vIFJlbW92ZWQgUHJvcHMgTGlzdFxuLy8gU2VlbXMgdGhpcyBjYW4gYmUgYXV0b1xuLy8gZ2V0RG9jdW1lbnQ/OiAoZWxlbWVudD86IEhUTUxFbGVtZW50KSA9PiBEb2N1bWVudDtcblxuLy8gTmV3IHZlcnNpb24gd2lsbCBub3Qgd3JhcCBwb3B1cCB3aXRoIGByYy10cmlnZ2VyLXBvcHVwLWNvbnRlbnRgIHdoZW4gbXVsdGlwbGUgY2hpbGRyZW5cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVHJpZ2dlcigpIHtcbiAgdmFyIFBvcnRhbENvbXBvbmVudCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogUG9ydGFsO1xuICB2YXIgVHJpZ2dlciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gICAgdmFyIF9wcm9wcyRwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICBwcmVmaXhDbHMgPSBfcHJvcHMkcHJlZml4Q2xzID09PSB2b2lkIDAgPyAncmMtdHJpZ2dlci1wb3B1cCcgOiBfcHJvcHMkcHJlZml4Q2xzLFxuICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgIF9wcm9wcyRhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICBhY3Rpb24gPSBfcHJvcHMkYWN0aW9uID09PSB2b2lkIDAgPyAnaG92ZXInIDogX3Byb3BzJGFjdGlvbixcbiAgICAgIHNob3dBY3Rpb24gPSBwcm9wcy5zaG93QWN0aW9uLFxuICAgICAgaGlkZUFjdGlvbiA9IHByb3BzLmhpZGVBY3Rpb24sXG4gICAgICBwb3B1cFZpc2libGUgPSBwcm9wcy5wb3B1cFZpc2libGUsXG4gICAgICBkZWZhdWx0UG9wdXBWaXNpYmxlID0gcHJvcHMuZGVmYXVsdFBvcHVwVmlzaWJsZSxcbiAgICAgIG9uUG9wdXBWaXNpYmxlQ2hhbmdlID0gcHJvcHMub25Qb3B1cFZpc2libGVDaGFuZ2UsXG4gICAgICBhZnRlclBvcHVwVmlzaWJsZUNoYW5nZSA9IHByb3BzLmFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlLFxuICAgICAgbW91c2VFbnRlckRlbGF5ID0gcHJvcHMubW91c2VFbnRlckRlbGF5LFxuICAgICAgX3Byb3BzJG1vdXNlTGVhdmVEZWxhID0gcHJvcHMubW91c2VMZWF2ZURlbGF5LFxuICAgICAgbW91c2VMZWF2ZURlbGF5ID0gX3Byb3BzJG1vdXNlTGVhdmVEZWxhID09PSB2b2lkIDAgPyAwLjEgOiBfcHJvcHMkbW91c2VMZWF2ZURlbGEsXG4gICAgICBmb2N1c0RlbGF5ID0gcHJvcHMuZm9jdXNEZWxheSxcbiAgICAgIGJsdXJEZWxheSA9IHByb3BzLmJsdXJEZWxheSxcbiAgICAgIG1hc2sgPSBwcm9wcy5tYXNrLFxuICAgICAgX3Byb3BzJG1hc2tDbG9zYWJsZSA9IHByb3BzLm1hc2tDbG9zYWJsZSxcbiAgICAgIG1hc2tDbG9zYWJsZSA9IF9wcm9wcyRtYXNrQ2xvc2FibGUgPT09IHZvaWQgMCA/IHRydWUgOiBfcHJvcHMkbWFza0Nsb3NhYmxlLFxuICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBwcm9wcy5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgIGZvcmNlUmVuZGVyID0gcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICBhdXRvRGVzdHJveSA9IHByb3BzLmF1dG9EZXN0cm95LFxuICAgICAgZGVzdHJveVBvcHVwT25IaWRlID0gcHJvcHMuZGVzdHJveVBvcHVwT25IaWRlLFxuICAgICAgcG9wdXAgPSBwcm9wcy5wb3B1cCxcbiAgICAgIHBvcHVwQ2xhc3NOYW1lID0gcHJvcHMucG9wdXBDbGFzc05hbWUsXG4gICAgICBwb3B1cFN0eWxlID0gcHJvcHMucG9wdXBTdHlsZSxcbiAgICAgIHBvcHVwUGxhY2VtZW50ID0gcHJvcHMucG9wdXBQbGFjZW1lbnQsXG4gICAgICBfcHJvcHMkYnVpbHRpblBsYWNlbWUgPSBwcm9wcy5idWlsdGluUGxhY2VtZW50cyxcbiAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzID0gX3Byb3BzJGJ1aWx0aW5QbGFjZW1lID09PSB2b2lkIDAgPyB7fSA6IF9wcm9wcyRidWlsdGluUGxhY2VtZSxcbiAgICAgIHBvcHVwQWxpZ24gPSBwcm9wcy5wb3B1cEFsaWduLFxuICAgICAgekluZGV4ID0gcHJvcHMuekluZGV4LFxuICAgICAgc3RyZXRjaCA9IHByb3BzLnN0cmV0Y2gsXG4gICAgICBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9IHByb3BzLmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduLFxuICAgICAgZnJlc2ggPSBwcm9wcy5mcmVzaCxcbiAgICAgIGFsaWduUG9pbnQgPSBwcm9wcy5hbGlnblBvaW50LFxuICAgICAgb25Qb3B1cENsaWNrID0gcHJvcHMub25Qb3B1cENsaWNrLFxuICAgICAgb25Qb3B1cEFsaWduID0gcHJvcHMub25Qb3B1cEFsaWduLFxuICAgICAgYXJyb3cgPSBwcm9wcy5hcnJvdyxcbiAgICAgIHBvcHVwTW90aW9uID0gcHJvcHMucG9wdXBNb3Rpb24sXG4gICAgICBtYXNrTW90aW9uID0gcHJvcHMubWFza01vdGlvbixcbiAgICAgIHBvcHVwVHJhbnNpdGlvbk5hbWUgPSBwcm9wcy5wb3B1cFRyYW5zaXRpb25OYW1lLFxuICAgICAgcG9wdXBBbmltYXRpb24gPSBwcm9wcy5wb3B1cEFuaW1hdGlvbixcbiAgICAgIG1hc2tUcmFuc2l0aW9uTmFtZSA9IHByb3BzLm1hc2tUcmFuc2l0aW9uTmFtZSxcbiAgICAgIG1hc2tBbmltYXRpb24gPSBwcm9wcy5tYXNrQW5pbWF0aW9uLFxuICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgZ2V0VHJpZ2dlckRPTU5vZGUgPSBwcm9wcy5nZXRUcmlnZ2VyRE9NTm9kZSxcbiAgICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkKTtcbiAgICB2YXIgbWVyZ2VkQXV0b0Rlc3Ryb3kgPSBhdXRvRGVzdHJveSB8fCBkZXN0cm95UG9wdXBPbkhpZGUgfHwgZmFsc2U7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gTW9iaWxlID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICAgIG1vYmlsZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRNb2JpbGUgPSBfUmVhY3QkdXNlU3RhdGUyWzFdO1xuICAgIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBzZXRNb2JpbGUoaXNNb2JpbGUoKSk7XG4gICAgfSwgW10pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29udGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgc3ViUG9wdXBFbGVtZW50cyA9IFJlYWN0LnVzZVJlZih7fSk7XG4gICAgdmFyIHBhcmVudENvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFRyaWdnZXJDb250ZXh0KTtcbiAgICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVnaXN0ZXJTdWJQb3B1cDogZnVuY3Rpb24gcmVnaXN0ZXJTdWJQb3B1cChpZCwgc3ViUG9wdXBFbGUpIHtcbiAgICAgICAgICBzdWJQb3B1cEVsZW1lbnRzLmN1cnJlbnRbaWRdID0gc3ViUG9wdXBFbGU7XG4gICAgICAgICAgcGFyZW50Q29udGV4dCA9PT0gbnVsbCB8fCBwYXJlbnRDb250ZXh0ID09PSB2b2lkIDAgfHwgcGFyZW50Q29udGV4dC5yZWdpc3RlclN1YlBvcHVwKGlkLCBzdWJQb3B1cEVsZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW3BhcmVudENvbnRleHRdKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBQb3B1cCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIGlkID0gdXNlSWQoKTtcbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlMyA9IFJlYWN0LnVzZVN0YXRlKG51bGwpLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlNCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgICAgcG9wdXBFbGUgPSBfUmVhY3QkdXNlU3RhdGU0WzBdLFxuICAgICAgc2V0UG9wdXBFbGUgPSBfUmVhY3QkdXNlU3RhdGU0WzFdO1xuXG4gICAgLy8gVXNlZCBmb3IgZm9yd2FyZFJlZiBwb3B1cC4gTm90IHVzZSBpbnRlcm5hbFxuICAgIHZhciBleHRlcm5hbFBvcHVwUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBzZXRQb3B1cFJlZiA9IHVzZUV2ZW50KGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBleHRlcm5hbFBvcHVwUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgaWYgKGlzRE9NKG5vZGUpICYmIHBvcHVwRWxlICE9PSBub2RlKSB7XG4gICAgICAgIHNldFBvcHVwRWxlKG5vZGUpO1xuICAgICAgfVxuICAgICAgcGFyZW50Q29udGV4dCA9PT0gbnVsbCB8fCBwYXJlbnRDb250ZXh0ID09PSB2b2lkIDAgfHwgcGFyZW50Q29udGV4dC5yZWdpc3RlclN1YlBvcHVwKGlkLCBub2RlKTtcbiAgICB9KTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBUYXJnZXQgPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVXNlIHN0YXRlIHRvIGNvbnRyb2wgaGVyZSBzaW5jZSBgdXNlUmVmYCB1cGRhdGUgbm90IHRyaWdnZXIgcmVuZGVyXG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTUgPSBSZWFjdC51c2VTdGF0ZShudWxsKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGU1LCAyKSxcbiAgICAgIHRhcmdldEVsZSA9IF9SZWFjdCR1c2VTdGF0ZTZbMF0sXG4gICAgICBzZXRUYXJnZXRFbGUgPSBfUmVhY3QkdXNlU3RhdGU2WzFdO1xuXG4gICAgLy8gVXNlZCBmb3IgZm9yd2FyZFJlZiB0YXJnZXQuIE5vdCB1c2UgaW50ZXJuYWxcbiAgICB2YXIgZXh0ZXJuYWxGb3J3YXJkUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBzZXRUYXJnZXRSZWYgPSB1c2VFdmVudChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKGlzRE9NKG5vZGUpICYmIHRhcmdldEVsZSAhPT0gbm9kZSkge1xuICAgICAgICBzZXRUYXJnZXRFbGUobm9kZSk7XG4gICAgICAgIGV4dGVybmFsRm9yd2FyZFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IENoaWxkcmVuID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgdmFyIG9yaWdpbkNoaWxkUHJvcHMgPSAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnByb3BzKSB8fCB7fTtcbiAgICB2YXIgY2xvbmVQcm9wcyA9IHt9O1xuICAgIHZhciBpblBvcHVwT3JDaGlsZCA9IHVzZUV2ZW50KGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgIHZhciBfZ2V0U2hhZG93Um9vdCwgX2dldFNoYWRvd1Jvb3QyO1xuICAgICAgdmFyIGNoaWxkRE9NID0gdGFyZ2V0RWxlO1xuICAgICAgcmV0dXJuIChjaGlsZERPTSA9PT0gbnVsbCB8fCBjaGlsZERPTSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRET00uY29udGFpbnMoZWxlKSkgfHwgKChfZ2V0U2hhZG93Um9vdCA9IGdldFNoYWRvd1Jvb3QoY2hpbGRET00pKSA9PT0gbnVsbCB8fCBfZ2V0U2hhZG93Um9vdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2dldFNoYWRvd1Jvb3QuaG9zdCkgPT09IGVsZSB8fCBlbGUgPT09IGNoaWxkRE9NIHx8IChwb3B1cEVsZSA9PT0gbnVsbCB8fCBwb3B1cEVsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9wdXBFbGUuY29udGFpbnMoZWxlKSkgfHwgKChfZ2V0U2hhZG93Um9vdDIgPSBnZXRTaGFkb3dSb290KHBvcHVwRWxlKSkgPT09IG51bGwgfHwgX2dldFNoYWRvd1Jvb3QyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZ2V0U2hhZG93Um9vdDIuaG9zdCkgPT09IGVsZSB8fCBlbGUgPT09IHBvcHVwRWxlIHx8IE9iamVjdC52YWx1ZXMoc3ViUG9wdXBFbGVtZW50cy5jdXJyZW50KS5zb21lKGZ1bmN0aW9uIChzdWJQb3B1cEVsZSkge1xuICAgICAgICByZXR1cm4gKHN1YlBvcHVwRWxlID09PSBudWxsIHx8IHN1YlBvcHVwRWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJQb3B1cEVsZS5jb250YWlucyhlbGUpKSB8fCBlbGUgPT09IHN1YlBvcHVwRWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gTW90aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIHZhciBtZXJnZVBvcHVwTW90aW9uID0gZ2V0TW90aW9uKHByZWZpeENscywgcG9wdXBNb3Rpb24sIHBvcHVwQW5pbWF0aW9uLCBwb3B1cFRyYW5zaXRpb25OYW1lKTtcbiAgICB2YXIgbWVyZ2VNYXNrTW90aW9uID0gZ2V0TW90aW9uKHByZWZpeENscywgbWFza01vdGlvbiwgbWFza0FuaW1hdGlvbiwgbWFza1RyYW5zaXRpb25OYW1lKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gT3BlbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTcgPSBSZWFjdC51c2VTdGF0ZShkZWZhdWx0UG9wdXBWaXNpYmxlIHx8IGZhbHNlKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTggPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGU3LCAyKSxcbiAgICAgIGludGVybmFsT3BlbiA9IF9SZWFjdCR1c2VTdGF0ZThbMF0sXG4gICAgICBzZXRJbnRlcm5hbE9wZW4gPSBfUmVhY3QkdXNlU3RhdGU4WzFdO1xuXG4gICAgLy8gUmVuZGVyIHN0aWxsIHVzZSBwcm9wcyBhcyBmaXJzdCBwcmlvcml0eVxuICAgIHZhciBtZXJnZWRPcGVuID0gcG9wdXBWaXNpYmxlICE9PSBudWxsICYmIHBvcHVwVmlzaWJsZSAhPT0gdm9pZCAwID8gcG9wdXBWaXNpYmxlIDogaW50ZXJuYWxPcGVuO1xuXG4gICAgLy8gV2UgdXNlIGVmZmVjdCBzeW5jIGhlcmUgaW4gY2FzZSBgcG9wdXBWaXNpYmxlYCBiYWNrIHRvIGB1bmRlZmluZWRgXG4gICAgdmFyIHNldE1lcmdlZE9wZW4gPSB1c2VFdmVudChmdW5jdGlvbiAobmV4dE9wZW4pIHtcbiAgICAgIGlmIChwb3B1cFZpc2libGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZXRJbnRlcm5hbE9wZW4obmV4dE9wZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBzZXRJbnRlcm5hbE9wZW4ocG9wdXBWaXNpYmxlIHx8IGZhbHNlKTtcbiAgICB9LCBbcG9wdXBWaXNpYmxlXSk7XG4gICAgdmFyIG9wZW5SZWYgPSBSZWFjdC51c2VSZWYobWVyZ2VkT3Blbik7XG4gICAgb3BlblJlZi5jdXJyZW50ID0gbWVyZ2VkT3BlbjtcbiAgICB2YXIgbGFzdFRyaWdnZXJSZWYgPSBSZWFjdC51c2VSZWYoW10pO1xuICAgIGxhc3RUcmlnZ2VyUmVmLmN1cnJlbnQgPSBbXTtcbiAgICB2YXIgaW50ZXJuYWxUcmlnZ2VyT3BlbiA9IHVzZUV2ZW50KGZ1bmN0aW9uIChuZXh0T3Blbikge1xuICAgICAgdmFyIF9sYXN0VHJpZ2dlclJlZiRjdXJyZTtcbiAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuXG4gICAgICAvLyBFbnRlciBvciBQb2ludGVyIHdpbGwgYm90aCB0cmlnZ2VyIG9wZW4gc3RhdGUgY2hhbmdlXG4gICAgICAvLyBXZSBvbmx5IG5lZWQgdGFrZSBvbmUgdG8gYXZvaWQgZHVwbGljYXRlZCBjaGFuZ2UgZXZlbnQgdHJpZ2dlclxuICAgICAgLy8gVXNlIGBsYXN0VHJpZ2dlclJlZmAgdG8gcmVjb3JkIGxhc3Qgb3BlbiB0eXBlXG4gICAgICBpZiAoKChfbGFzdFRyaWdnZXJSZWYkY3VycmUgPSBsYXN0VHJpZ2dlclJlZi5jdXJyZW50W2xhc3RUcmlnZ2VyUmVmLmN1cnJlbnQubGVuZ3RoIC0gMV0pICE9PSBudWxsICYmIF9sYXN0VHJpZ2dlclJlZiRjdXJyZSAhPT0gdm9pZCAwID8gX2xhc3RUcmlnZ2VyUmVmJGN1cnJlIDogbWVyZ2VkT3BlbikgIT09IG5leHRPcGVuKSB7XG4gICAgICAgIGxhc3RUcmlnZ2VyUmVmLmN1cnJlbnQucHVzaChuZXh0T3Blbik7XG4gICAgICAgIG9uUG9wdXBWaXNpYmxlQ2hhbmdlID09PSBudWxsIHx8IG9uUG9wdXBWaXNpYmxlQ2hhbmdlID09PSB2b2lkIDAgfHwgb25Qb3B1cFZpc2libGVDaGFuZ2UobmV4dE9wZW4pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVHJpZ2dlciBmb3IgZGVsYXlcbiAgICB2YXIgZGVsYXlSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgICB2YXIgY2xlYXJEZWxheSA9IGZ1bmN0aW9uIGNsZWFyRGVsYXkoKSB7XG4gICAgICBjbGVhclRpbWVvdXQoZGVsYXlSZWYuY3VycmVudCk7XG4gICAgfTtcbiAgICB2YXIgdHJpZ2dlck9wZW4gPSBmdW5jdGlvbiB0cmlnZ2VyT3BlbihuZXh0T3Blbikge1xuICAgICAgdmFyIGRlbGF5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAwO1xuICAgICAgY2xlYXJEZWxheSgpO1xuICAgICAgaWYgKGRlbGF5ID09PSAwKSB7XG4gICAgICAgIGludGVybmFsVHJpZ2dlck9wZW4obmV4dE9wZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsYXlSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGludGVybmFsVHJpZ2dlck9wZW4obmV4dE9wZW4pO1xuICAgICAgICB9LCBkZWxheSAqIDEwMDApO1xuICAgICAgfVxuICAgIH07XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjbGVhckRlbGF5O1xuICAgIH0sIFtdKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IE1vdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTkgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUxMCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTksIDIpLFxuICAgICAgaW5Nb3Rpb24gPSBfUmVhY3QkdXNlU3RhdGUxMFswXSxcbiAgICAgIHNldEluTW90aW9uID0gX1JlYWN0JHVzZVN0YXRlMTBbMV07XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uIChmaXJzdE1vdW50KSB7XG4gICAgICBpZiAoIWZpcnN0TW91bnQgfHwgbWVyZ2VkT3Blbikge1xuICAgICAgICBzZXRJbk1vdGlvbih0cnVlKTtcbiAgICAgIH1cbiAgICB9LCBbbWVyZ2VkT3Blbl0pO1xuICAgIHZhciBfUmVhY3QkdXNlU3RhdGUxMSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlMTIgPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGUxMSwgMiksXG4gICAgICBtb3Rpb25QcmVwYXJlUmVzb2x2ZSA9IF9SZWFjdCR1c2VTdGF0ZTEyWzBdLFxuICAgICAgc2V0TW90aW9uUHJlcGFyZVJlc29sdmUgPSBfUmVhY3QkdXNlU3RhdGUxMlsxXTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBBbGlnbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTEzID0gUmVhY3QudXNlU3RhdGUoWzAsIDBdKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTE0ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlMTMsIDIpLFxuICAgICAgbW91c2VQb3MgPSBfUmVhY3QkdXNlU3RhdGUxNFswXSxcbiAgICAgIHNldE1vdXNlUG9zID0gX1JlYWN0JHVzZVN0YXRlMTRbMV07XG4gICAgdmFyIHNldE1vdXNlUG9zQnlFdmVudCA9IGZ1bmN0aW9uIHNldE1vdXNlUG9zQnlFdmVudChldmVudCkge1xuICAgICAgc2V0TW91c2VQb3MoW2V2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFldKTtcbiAgICB9O1xuICAgIHZhciBfdXNlQWxpZ24gPSB1c2VBbGlnbihtZXJnZWRPcGVuLCBwb3B1cEVsZSwgYWxpZ25Qb2ludCA/IG1vdXNlUG9zIDogdGFyZ2V0RWxlLCBwb3B1cFBsYWNlbWVudCwgYnVpbHRpblBsYWNlbWVudHMsIHBvcHVwQWxpZ24sIG9uUG9wdXBBbGlnbiksXG4gICAgICBfdXNlQWxpZ24yID0gX3NsaWNlZFRvQXJyYXkoX3VzZUFsaWduLCAxMSksXG4gICAgICByZWFkeSA9IF91c2VBbGlnbjJbMF0sXG4gICAgICBvZmZzZXRYID0gX3VzZUFsaWduMlsxXSxcbiAgICAgIG9mZnNldFkgPSBfdXNlQWxpZ24yWzJdLFxuICAgICAgb2Zmc2V0UiA9IF91c2VBbGlnbjJbM10sXG4gICAgICBvZmZzZXRCID0gX3VzZUFsaWduMls0XSxcbiAgICAgIGFycm93WCA9IF91c2VBbGlnbjJbNV0sXG4gICAgICBhcnJvd1kgPSBfdXNlQWxpZ24yWzZdLFxuICAgICAgc2NhbGVYID0gX3VzZUFsaWduMls3XSxcbiAgICAgIHNjYWxlWSA9IF91c2VBbGlnbjJbOF0sXG4gICAgICBhbGlnbkluZm8gPSBfdXNlQWxpZ24yWzldLFxuICAgICAgb25BbGlnbiA9IF91c2VBbGlnbjJbMTBdO1xuICAgIHZhciBfdXNlQWN0aW9uID0gdXNlQWN0aW9uKG1vYmlsZSwgYWN0aW9uLCBzaG93QWN0aW9uLCBoaWRlQWN0aW9uKSxcbiAgICAgIF91c2VBY3Rpb24yID0gX3NsaWNlZFRvQXJyYXkoX3VzZUFjdGlvbiwgMiksXG4gICAgICBzaG93QWN0aW9ucyA9IF91c2VBY3Rpb24yWzBdLFxuICAgICAgaGlkZUFjdGlvbnMgPSBfdXNlQWN0aW9uMlsxXTtcbiAgICB2YXIgY2xpY2tUb1Nob3cgPSBzaG93QWN0aW9ucy5oYXMoJ2NsaWNrJyk7XG4gICAgdmFyIGNsaWNrVG9IaWRlID0gaGlkZUFjdGlvbnMuaGFzKCdjbGljaycpIHx8IGhpZGVBY3Rpb25zLmhhcygnY29udGV4dE1lbnUnKTtcbiAgICB2YXIgdHJpZ2dlckFsaWduID0gdXNlRXZlbnQoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFpbk1vdGlvbikge1xuICAgICAgICBvbkFsaWduKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIG9uU2Nyb2xsID0gZnVuY3Rpb24gb25TY3JvbGwoKSB7XG4gICAgICBpZiAob3BlblJlZi5jdXJyZW50ICYmIGFsaWduUG9pbnQgJiYgY2xpY2tUb0hpZGUpIHtcbiAgICAgICAgdHJpZ2dlck9wZW4oZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgdXNlV2F0Y2gobWVyZ2VkT3BlbiwgdGFyZ2V0RWxlLCBwb3B1cEVsZSwgdHJpZ2dlckFsaWduLCBvblNjcm9sbCk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyaWdnZXJBbGlnbigpO1xuICAgIH0sIFttb3VzZVBvcywgcG9wdXBQbGFjZW1lbnRdKTtcblxuICAgIC8vIFdoZW4gbm8gYnVpbHRpblBsYWNlbWVudHMgYW5kIHBvcHVwQWxpZ24gY2hhbmdlZFxuICAgIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAobWVyZ2VkT3BlbiAmJiAhKGJ1aWx0aW5QbGFjZW1lbnRzICE9PSBudWxsICYmIGJ1aWx0aW5QbGFjZW1lbnRzICE9PSB2b2lkIDAgJiYgYnVpbHRpblBsYWNlbWVudHNbcG9wdXBQbGFjZW1lbnRdKSkge1xuICAgICAgICB0cmlnZ2VyQWxpZ24oKTtcbiAgICAgIH1cbiAgICB9LCBbSlNPTi5zdHJpbmdpZnkocG9wdXBBbGlnbildKTtcbiAgICB2YXIgYWxpZ25lZENsYXNzTmFtZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGJhc2VDbGFzc05hbWUgPSBnZXRBbGlnblBvcHVwQ2xhc3NOYW1lKGJ1aWx0aW5QbGFjZW1lbnRzLCBwcmVmaXhDbHMsIGFsaWduSW5mbywgYWxpZ25Qb2ludCk7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcyhiYXNlQ2xhc3NOYW1lLCBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9PT0gbnVsbCB8fCBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24oYWxpZ25JbmZvKSk7XG4gICAgfSwgW2FsaWduSW5mbywgZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24sIGJ1aWx0aW5QbGFjZW1lbnRzLCBwcmVmaXhDbHMsIGFsaWduUG9pbnRdKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IGV4dGVybmFsRm9yd2FyZFJlZi5jdXJyZW50LFxuICAgICAgICBwb3B1cEVsZW1lbnQ6IGV4dGVybmFsUG9wdXBSZWYuY3VycmVudCxcbiAgICAgICAgZm9yY2VBbGlnbjogdHJpZ2dlckFsaWduXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gU3RyZXRjaCA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlMTUgPSBSZWFjdC51c2VTdGF0ZSgwKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTE2ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlMTUsIDIpLFxuICAgICAgdGFyZ2V0V2lkdGggPSBfUmVhY3QkdXNlU3RhdGUxNlswXSxcbiAgICAgIHNldFRhcmdldFdpZHRoID0gX1JlYWN0JHVzZVN0YXRlMTZbMV07XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTE3ID0gUmVhY3QudXNlU3RhdGUoMCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUxOCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTE3LCAyKSxcbiAgICAgIHRhcmdldEhlaWdodCA9IF9SZWFjdCR1c2VTdGF0ZTE4WzBdLFxuICAgICAgc2V0VGFyZ2V0SGVpZ2h0ID0gX1JlYWN0JHVzZVN0YXRlMThbMV07XG4gICAgdmFyIHN5bmNUYXJnZXRTaXplID0gZnVuY3Rpb24gc3luY1RhcmdldFNpemUoKSB7XG4gICAgICBpZiAoc3RyZXRjaCAmJiB0YXJnZXRFbGUpIHtcbiAgICAgICAgdmFyIHJlY3QgPSB0YXJnZXRFbGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHNldFRhcmdldFdpZHRoKHJlY3Qud2lkdGgpO1xuICAgICAgICBzZXRUYXJnZXRIZWlnaHQocmVjdC5oZWlnaHQpO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIG9uVGFyZ2V0UmVzaXplID0gZnVuY3Rpb24gb25UYXJnZXRSZXNpemUoKSB7XG4gICAgICBzeW5jVGFyZ2V0U2l6ZSgpO1xuICAgICAgdHJpZ2dlckFsaWduKCk7XG4gICAgfTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IE1vdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIG9uVmlzaWJsZUNoYW5nZWQgPSBmdW5jdGlvbiBvblZpc2libGVDaGFuZ2VkKHZpc2libGUpIHtcbiAgICAgIHNldEluTW90aW9uKGZhbHNlKTtcbiAgICAgIG9uQWxpZ24oKTtcbiAgICAgIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID09PSBudWxsIHx8IGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID09PSB2b2lkIDAgfHwgYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2UodmlzaWJsZSk7XG4gICAgfTtcblxuICAgIC8vIFdlIHdpbGwgdHJpZ2dlciBhbGlnbiB3aGVuIG1vdGlvbiBpcyBpbiBwcmVwYXJlXG4gICAgdmFyIG9uUHJlcGFyZSA9IGZ1bmN0aW9uIG9uUHJlcGFyZSgpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBzeW5jVGFyZ2V0U2l6ZSgpO1xuICAgICAgICBzZXRNb3Rpb25QcmVwYXJlUmVzb2x2ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmU7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKG1vdGlvblByZXBhcmVSZXNvbHZlKSB7XG4gICAgICAgIG9uQWxpZ24oKTtcbiAgICAgICAgbW90aW9uUHJlcGFyZVJlc29sdmUoKTtcbiAgICAgICAgc2V0TW90aW9uUHJlcGFyZVJlc29sdmUobnVsbCk7XG4gICAgICB9XG4gICAgfSwgW21vdGlvblByZXBhcmVSZXNvbHZlXSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gQWN0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8qKlxuICAgICAqIFV0aWwgd3JhcHBlciBmb3IgdHJpZ2dlciBhY3Rpb25cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQWN0aW9uKGV2ZW50TmFtZSwgbmV4dE9wZW4sIGRlbGF5LCBwcmVFdmVudCkge1xuICAgICAgY2xvbmVQcm9wc1tldmVudE5hbWVdID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHZhciBfb3JpZ2luQ2hpbGRQcm9wcyRldmU7XG4gICAgICAgIHByZUV2ZW50ID09PSBudWxsIHx8IHByZUV2ZW50ID09PSB2b2lkIDAgfHwgcHJlRXZlbnQoZXZlbnQpO1xuICAgICAgICB0cmlnZ2VyT3BlbihuZXh0T3BlbiwgZGVsYXkpO1xuXG4gICAgICAgIC8vIFBhc3MgdG8gb3JpZ2luXG4gICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgfVxuICAgICAgICAoX29yaWdpbkNoaWxkUHJvcHMkZXZlID0gb3JpZ2luQ2hpbGRQcm9wc1tldmVudE5hbWVdKSA9PT0gbnVsbCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRldmUgPT09IHZvaWQgMCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRldmUuY2FsbC5hcHBseShfb3JpZ2luQ2hpbGRQcm9wcyRldmUsIFtvcmlnaW5DaGlsZFByb3BzLCBldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gQWN0aW9uOiBDbGljayA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAoY2xpY2tUb1Nob3cgfHwgY2xpY2tUb0hpZGUpIHtcbiAgICAgIGNsb25lUHJvcHMub25DbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB2YXIgX29yaWdpbkNoaWxkUHJvcHMkb25DO1xuICAgICAgICBpZiAob3BlblJlZi5jdXJyZW50ICYmIGNsaWNrVG9IaWRlKSB7XG4gICAgICAgICAgdHJpZ2dlck9wZW4oZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKCFvcGVuUmVmLmN1cnJlbnQgJiYgY2xpY2tUb1Nob3cpIHtcbiAgICAgICAgICBzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIHRyaWdnZXJPcGVuKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFzcyB0byBvcmlnaW5cbiAgICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgICB9XG4gICAgICAgIChfb3JpZ2luQ2hpbGRQcm9wcyRvbkMgPSBvcmlnaW5DaGlsZFByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uQyA9PT0gdm9pZCAwIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uQy5jYWxsLmFwcGx5KF9vcmlnaW5DaGlsZFByb3BzJG9uQywgW29yaWdpbkNoaWxkUHJvcHMsIGV2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBDbGljayB0byBoaWRlIGlzIHNwZWNpYWwgYWN0aW9uIHNpbmNlIGNsaWNrIHBvcHVwIGVsZW1lbnQgc2hvdWxkIG5vdCBoaWRlXG4gICAgdXNlV2luQ2xpY2sobWVyZ2VkT3BlbiwgY2xpY2tUb0hpZGUsIHRhcmdldEVsZSwgcG9wdXBFbGUsIG1hc2ssIG1hc2tDbG9zYWJsZSwgaW5Qb3B1cE9yQ2hpbGQsIHRyaWdnZXJPcGVuKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IEFjdGlvbjogSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIGhvdmVyVG9TaG93ID0gc2hvd0FjdGlvbnMuaGFzKCdob3ZlcicpO1xuICAgIHZhciBob3ZlclRvSGlkZSA9IGhpZGVBY3Rpb25zLmhhcygnaG92ZXInKTtcbiAgICB2YXIgb25Qb3B1cE1vdXNlRW50ZXI7XG4gICAgdmFyIG9uUG9wdXBNb3VzZUxlYXZlO1xuICAgIGlmIChob3ZlclRvU2hvdykge1xuICAgICAgLy8gQ29tcGF0aWJsZSB3aXRoIG9sZCBicm93c2VyIHdoaWNoIG5vdCBzdXBwb3J0IHBvaW50ZXIgZXZlbnRcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uTW91c2VFbnRlcicsIHRydWUsIG1vdXNlRW50ZXJEZWxheSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHNldE1vdXNlUG9zQnlFdmVudChldmVudCk7XG4gICAgICB9KTtcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uUG9pbnRlckVudGVyJywgdHJ1ZSwgbW91c2VFbnRlckRlbGF5LCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgc2V0TW91c2VQb3NCeUV2ZW50KGV2ZW50KTtcbiAgICAgIH0pO1xuICAgICAgb25Qb3B1cE1vdXNlRW50ZXIgPSBmdW5jdGlvbiBvblBvcHVwTW91c2VFbnRlcihldmVudCkge1xuICAgICAgICAvLyBPbmx5IHRyaWdnZXIgcmUtb3BlbiB3aGVuIHBvcHVwIGlzIHZpc2libGVcbiAgICAgICAgaWYgKChtZXJnZWRPcGVuIHx8IGluTW90aW9uKSAmJiBwb3B1cEVsZSAhPT0gbnVsbCAmJiBwb3B1cEVsZSAhPT0gdm9pZCAwICYmIHBvcHVwRWxlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICB0cmlnZ2VyT3Blbih0cnVlLCBtb3VzZUVudGVyRGVsYXkpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICAvLyBBbGlnbiBQb2ludFxuICAgICAgaWYgKGFsaWduUG9pbnQpIHtcbiAgICAgICAgY2xvbmVQcm9wcy5vbk1vdXNlTW92ZSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHZhciBfb3JpZ2luQ2hpbGRQcm9wcyRvbk07XG4gICAgICAgICAgLy8gc2V0TW91c2VQb3NCeUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAoX29yaWdpbkNoaWxkUHJvcHMkb25NID0gb3JpZ2luQ2hpbGRQcm9wcy5vbk1vdXNlTW92ZSkgPT09IG51bGwgfHwgX29yaWdpbkNoaWxkUHJvcHMkb25NID09PSB2b2lkIDAgfHwgX29yaWdpbkNoaWxkUHJvcHMkb25NLmNhbGwob3JpZ2luQ2hpbGRQcm9wcywgZXZlbnQpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaG92ZXJUb0hpZGUpIHtcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uTW91c2VMZWF2ZScsIGZhbHNlLCBtb3VzZUxlYXZlRGVsYXkpO1xuICAgICAgd3JhcHBlckFjdGlvbignb25Qb2ludGVyTGVhdmUnLCBmYWxzZSwgbW91c2VMZWF2ZURlbGF5KTtcbiAgICAgIG9uUG9wdXBNb3VzZUxlYXZlID0gZnVuY3Rpb24gb25Qb3B1cE1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRyaWdnZXJPcGVuKGZhbHNlLCBtb3VzZUxlYXZlRGVsYXkpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PSBBY3Rpb246IEZvY3VzID09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChzaG93QWN0aW9ucy5oYXMoJ2ZvY3VzJykpIHtcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uRm9jdXMnLCB0cnVlLCBmb2N1c0RlbGF5KTtcbiAgICB9XG4gICAgaWYgKGhpZGVBY3Rpb25zLmhhcygnZm9jdXMnKSkge1xuICAgICAgd3JhcHBlckFjdGlvbignb25CbHVyJywgZmFsc2UsIGJsdXJEZWxheSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQWN0aW9uOiBDb250ZXh0TWVudSA9PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAoc2hvd0FjdGlvbnMuaGFzKCdjb250ZXh0TWVudScpKSB7XG4gICAgICBjbG9uZVByb3BzLm9uQ29udGV4dE1lbnUgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdmFyIF9vcmlnaW5DaGlsZFByb3BzJG9uQzI7XG4gICAgICAgIGlmIChvcGVuUmVmLmN1cnJlbnQgJiYgaGlkZUFjdGlvbnMuaGFzKCdjb250ZXh0TWVudScpKSB7XG4gICAgICAgICAgdHJpZ2dlck9wZW4oZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldE1vdXNlUG9zQnlFdmVudChldmVudCk7XG4gICAgICAgICAgdHJpZ2dlck9wZW4odHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBQYXNzIHRvIG9yaWdpblxuICAgICAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMgPiAxID8gX2xlbjMgLSAxIDogMCksIF9rZXkzID0gMTsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgICAgIGFyZ3NbX2tleTMgLSAxXSA9IGFyZ3VtZW50c1tfa2V5M107XG4gICAgICAgIH1cbiAgICAgICAgKF9vcmlnaW5DaGlsZFByb3BzJG9uQzIgPSBvcmlnaW5DaGlsZFByb3BzLm9uQ29udGV4dE1lbnUpID09PSBudWxsIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uQzIgPT09IHZvaWQgMCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyLmNhbGwuYXBwbHkoX29yaWdpbkNoaWxkUHJvcHMkb25DMiwgW29yaWdpbkNoaWxkUHJvcHMsIGV2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IENsYXNzTmFtZSA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIGNsb25lUHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lcyhvcmlnaW5DaGlsZFByb3BzLmNsYXNzTmFtZSwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVuZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIHZhciBtZXJnZWRDaGlsZHJlblByb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBvcmlnaW5DaGlsZFByb3BzKSwgY2xvbmVQcm9wcyk7XG5cbiAgICAvLyBQYXNzIHByb3BzIGludG8gY2xvbmVQcm9wcyBmb3IgbmVzdCB1c2FnZVxuICAgIHZhciBwYXNzZWRQcm9wcyA9IHt9O1xuICAgIHZhciBwYXNzZWRFdmVudExpc3QgPSBbJ29uQ29udGV4dE1lbnUnLCAnb25DbGljaycsICdvbk1vdXNlRG93bicsICdvblRvdWNoU3RhcnQnLCAnb25Nb3VzZUVudGVyJywgJ29uTW91c2VMZWF2ZScsICdvbkZvY3VzJywgJ29uQmx1ciddO1xuICAgIHBhc3NlZEV2ZW50TGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChldmVudE5hbWUpIHtcbiAgICAgIGlmIChyZXN0UHJvcHNbZXZlbnROYW1lXSkge1xuICAgICAgICBwYXNzZWRQcm9wc1tldmVudE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQ7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICAgICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgICAgICAgfVxuICAgICAgICAgIChfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQgPSBtZXJnZWRDaGlsZHJlblByb3BzW2V2ZW50TmFtZV0pID09PSBudWxsIHx8IF9tZXJnZWRDaGlsZHJlblByb3BzJCA9PT0gdm9pZCAwIHx8IF9tZXJnZWRDaGlsZHJlblByb3BzJC5jYWxsLmFwcGx5KF9tZXJnZWRDaGlsZHJlblByb3BzJCwgW21lcmdlZENoaWxkcmVuUHJvcHNdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgcmVzdFByb3BzW2V2ZW50TmFtZV0uYXBwbHkocmVzdFByb3BzLCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENoaWxkIE5vZGVcbiAgICB2YXIgdHJpZ2dlck5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lcmdlZENoaWxkcmVuUHJvcHMpLCBwYXNzZWRQcm9wcykpO1xuICAgIHZhciBhcnJvd1BvcyA9IHtcbiAgICAgIHg6IGFycm93WCxcbiAgICAgIHk6IGFycm93WVxuICAgIH07XG4gICAgdmFyIGlubmVyQXJyb3cgPSBhcnJvdyA/IF9vYmplY3RTcHJlYWQoe30sIGFycm93ICE9PSB0cnVlID8gYXJyb3cgOiB7fSkgOiBudWxsO1xuXG4gICAgLy8gUmVuZGVyXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXNpemVPYnNlcnZlciwge1xuICAgICAgZGlzYWJsZWQ6ICFtZXJnZWRPcGVuLFxuICAgICAgcmVmOiBzZXRUYXJnZXRSZWYsXG4gICAgICBvblJlc2l6ZTogb25UYXJnZXRSZXNpemVcbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChUcmlnZ2VyV3JhcHBlciwge1xuICAgICAgZ2V0VHJpZ2dlckRPTU5vZGU6IGdldFRyaWdnZXJET01Ob2RlXG4gICAgfSwgdHJpZ2dlck5vZGUpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgIHZhbHVlOiBjb250ZXh0XG4gICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXAsIHtcbiAgICAgIHBvcnRhbDogUG9ydGFsQ29tcG9uZW50LFxuICAgICAgcmVmOiBzZXRQb3B1cFJlZixcbiAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgcG9wdXA6IHBvcHVwLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKHBvcHVwQ2xhc3NOYW1lLCBhbGlnbmVkQ2xhc3NOYW1lKSxcbiAgICAgIHN0eWxlOiBwb3B1cFN0eWxlLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRFbGUsXG4gICAgICBvbk1vdXNlRW50ZXI6IG9uUG9wdXBNb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZUxlYXZlOiBvblBvcHVwTW91c2VMZWF2ZVxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNDM5MjRcbiAgICAgICxcbiAgICAgIG9uUG9pbnRlckVudGVyOiBvblBvcHVwTW91c2VFbnRlcixcbiAgICAgIHpJbmRleDogekluZGV4XG4gICAgICAvLyBPcGVuXG4gICAgICAsXG4gICAgICBvcGVuOiBtZXJnZWRPcGVuLFxuICAgICAga2VlcERvbTogaW5Nb3Rpb24sXG4gICAgICBmcmVzaDogZnJlc2hcbiAgICAgIC8vIENsaWNrXG4gICAgICAsXG4gICAgICBvbkNsaWNrOiBvblBvcHVwQ2xpY2tcbiAgICAgIC8vIE1hc2tcbiAgICAgICxcbiAgICAgIG1hc2s6IG1hc2tcbiAgICAgIC8vIE1vdGlvblxuICAgICAgLFxuICAgICAgbW90aW9uOiBtZXJnZVBvcHVwTW90aW9uLFxuICAgICAgbWFza01vdGlvbjogbWVyZ2VNYXNrTW90aW9uLFxuICAgICAgb25WaXNpYmxlQ2hhbmdlZDogb25WaXNpYmxlQ2hhbmdlZCxcbiAgICAgIG9uUHJlcGFyZTogb25QcmVwYXJlXG4gICAgICAvLyBQb3J0YWxcbiAgICAgICxcbiAgICAgIGZvcmNlUmVuZGVyOiBmb3JjZVJlbmRlcixcbiAgICAgIGF1dG9EZXN0cm95OiBtZXJnZWRBdXRvRGVzdHJveSxcbiAgICAgIGdldFBvcHVwQ29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lclxuICAgICAgLy8gQXJyb3dcbiAgICAgICxcbiAgICAgIGFsaWduOiBhbGlnbkluZm8sXG4gICAgICBhcnJvdzogaW5uZXJBcnJvdyxcbiAgICAgIGFycm93UG9zOiBhcnJvd1Bvc1xuICAgICAgLy8gQWxpZ25cbiAgICAgICxcbiAgICAgIHJlYWR5OiByZWFkeSxcbiAgICAgIG9mZnNldFg6IG9mZnNldFgsXG4gICAgICBvZmZzZXRZOiBvZmZzZXRZLFxuICAgICAgb2Zmc2V0Ujogb2Zmc2V0UixcbiAgICAgIG9mZnNldEI6IG9mZnNldEIsXG4gICAgICBvbkFsaWduOiB0cmlnZ2VyQWxpZ25cbiAgICAgIC8vIFN0cmV0Y2hcbiAgICAgICxcbiAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICB0YXJnZXRXaWR0aDogdGFyZ2V0V2lkdGggLyBzY2FsZVgsXG4gICAgICB0YXJnZXRIZWlnaHQ6IHRhcmdldEhlaWdodCAvIHNjYWxlWVxuICAgIH0pKSk7XG4gIH0pO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFRyaWdnZXIuZGlzcGxheU5hbWUgPSAnVHJpZ2dlcic7XG4gIH1cbiAgcmV0dXJuIFRyaWdnZXI7XG59XG5leHBvcnQgZGVmYXVsdCBnZW5lcmF0ZVRyaWdnZXIoUG9ydGFsKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/index.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ generateTrigger: () => (/* binding */ generateTrigger)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @rc-component/portal */ \"./node_modules/@rc-component/portal/es/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rc-resize-observer */ \"./node_modules/rc-resize-observer/es/index.js\");\n/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rc-util/es/Dom/findDOMNode */ \"./node_modules/rc-util/es/Dom/findDOMNode.js\");\n/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rc-util/es/Dom/shadow */ \"./node_modules/rc-util/es/Dom/shadow.js\");\n/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rc-util/es/hooks/useEvent */ \"./node_modules/rc-util/es/hooks/useEvent.js\");\n/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rc-util/es/hooks/useId */ \"./node_modules/rc-util/es/hooks/useId.js\");\n/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rc-util/es/hooks/useLayoutEffect */ \"./node_modules/rc-util/es/hooks/useLayoutEffect.js\");\n/* harmony import */ var rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rc-util/es/isMobile */ \"./node_modules/rc-util/es/isMobile.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Popup */ \"./node_modules/@rc-component/trigger/es/Popup/index.js\");\n/* harmony import */ var _TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./TriggerWrapper */ \"./node_modules/@rc-component/trigger/es/TriggerWrapper.js\");\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./context */ \"./node_modules/@rc-component/trigger/es/context.js\");\n/* harmony import */ var _hooks_useAction__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./hooks/useAction */ \"./node_modules/@rc-component/trigger/es/hooks/useAction.js\");\n/* harmony import */ var _hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hooks/useAlign */ \"./node_modules/@rc-component/trigger/es/hooks/useAlign.js\");\n/* harmony import */ var _hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./hooks/useWatch */ \"./node_modules/@rc-component/trigger/es/hooks/useWatch.js\");\n/* harmony import */ var _hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./hooks/useWinClick */ \"./node_modules/@rc-component/trigger/es/hooks/useWinClick.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./util */ \"./node_modules/@rc-component/trigger/es/util.js\");\n\n\n\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nfunction generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n var Trigger = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),\n _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n setMobile((0,rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__[\"default\"])());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = react__WEBPACK_IMPORTED_MODULE_12__.useRef({});\n var parentContext = react__WEBPACK_IMPORTED_MODULE_12__.useContext(_context__WEBPACK_IMPORTED_MODULE_15__[\"default\"]);\n var context = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__[\"default\"])();\n var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n\n // Used for forwardRef popup. Not use internal\n var externalPopupRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);\n var setPopupRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (node) {\n externalPopupRef.current = node;\n if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__.isDOM)(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);\n var setTargetRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (node) {\n if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__.isDOM)(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = react__WEBPACK_IMPORTED_MODULE_12__.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__.getShadowRoot)(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__.getShadowRoot)(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getMotion)(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getMotion)(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_12__.useState(defaultPopupVisible || false),\n _React$useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n react__WEBPACK_IMPORTED_MODULE_12__.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),\n _React$useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),\n _React$useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = (0,_hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = (0,_hooks_useAction__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(mobile, action, showAction, hideAction),\n _useAction2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n (0,_hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {\n var baseClassName = (0,_util__WEBPACK_IMPORTED_MODULE_20__.getAlignPopupClassName)(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classnames__WEBPACK_IMPORTED_MODULE_4___default()(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n react__WEBPACK_IMPORTED_MODULE_12__.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n popupElement: externalPopupRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),\n _React$useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),\n _React$useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n var onPopupPointerDown = (0,_hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classnames__WEBPACK_IMPORTED_MODULE_4___default()(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.cloneElement(child, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(react__WEBPACK_IMPORTED_MODULE_12__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_context__WEBPACK_IMPORTED_MODULE_15__[\"default\"].Provider, {\n value: context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick,\n onPointerDownCapture: onPopupPointerDown\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (true) {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (generateTrigger(_rc_component_portal__WEBPACK_IMPORTED_MODULE_3__[\"default\"]));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRTtBQUNDO0FBQ29CO0FBQzFGO0FBQzBDO0FBQ047QUFDWTtBQUNHO0FBQ0c7QUFDTDtBQUNOO0FBQ29CO0FBQ3BCO0FBQ1o7QUFDSDtBQUNrQjtBQUNQO0FBQ0c7QUFDRjtBQUNBO0FBQ007QUFDYTs7QUFFM0Q7QUFDQTtBQUNBOztBQUVBOztBQUVPO0FBQ1AsNEZBQTRGLDREQUFNO0FBQ2xHLDZCQUE2Qiw4Q0FBZ0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw4RkFBd0I7QUFDMUM7O0FBRUE7QUFDQSwwQkFBMEIsNENBQWM7QUFDeEMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7QUFDQSxJQUFJLDZFQUFlO0FBQ25CLGdCQUFnQixnRUFBUTtBQUN4QixLQUFLOztBQUVMO0FBQ0EsMkJBQTJCLDBDQUFZLEdBQUc7QUFDMUMsd0JBQXdCLDhDQUFnQixDQUFDLGlEQUFjO0FBQ3ZELGtCQUFrQiwyQ0FBYTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsYUFBYSxrRUFBSztBQUNsQiwyQkFBMkIsNENBQWM7QUFDekMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIsMENBQVk7QUFDdkMsc0JBQXNCLHFFQUFRO0FBQzlCO0FBQ0EsVUFBVSxpRUFBSztBQUNmO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLDJCQUEyQiw0Q0FBYztBQUN6Qyx5QkFBeUIsb0ZBQWM7QUFDdkM7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QiwwQ0FBWTtBQUN6Qyx1QkFBdUIscUVBQVE7QUFDL0IsVUFBVSxpRUFBSztBQUNmO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxnQkFBZ0IsNENBQWM7QUFDOUI7QUFDQTtBQUNBLHlCQUF5QixxRUFBUTtBQUNqQztBQUNBO0FBQ0EsZ0hBQWdILG9FQUFhLHFOQUFxTixvRUFBYTtBQUMvVjtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0EsMkJBQTJCLGlEQUFTO0FBQ3BDLDBCQUEwQixpREFBUzs7QUFFbkM7QUFDQSwyQkFBMkIsNENBQWM7QUFDekMseUJBQXlCLG9GQUFjO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHdCQUF3QixxRUFBUTtBQUNoQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSSw2RUFBZTtBQUNuQjtBQUNBLEtBQUs7QUFDTCxrQkFBa0IsMENBQVk7QUFDOUI7QUFDQSx5QkFBeUIsMENBQVk7QUFDckM7QUFDQSw4QkFBOEIscUVBQVE7QUFDdEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxtQkFBbUIsMENBQVk7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxJQUFJLDZDQUFlO0FBQ25CO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDJCQUEyQiw0Q0FBYztBQUN6QywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBLElBQUksNkVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTs7QUFFQTtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0REFBUTtBQUM1QixtQkFBbUIsb0ZBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiw2REFBUztBQUM5QixvQkFBb0Isb0ZBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIscUVBQVE7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDREQUFRO0FBQ1osSUFBSSw2RUFBZTtBQUNuQjtBQUNBLEtBQUs7O0FBRUw7QUFDQSxJQUFJLDZFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwyQkFBMkIsMkNBQWE7QUFDeEMsMEJBQTBCLDhEQUFzQjtBQUNoRCxhQUFhLGlEQUFVO0FBQ3ZCLEtBQUs7O0FBRUw7QUFDQSxJQUFJLHVEQUF5QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBLDRCQUE0Qiw0Q0FBYztBQUMxQywwQkFBMEIsb0ZBQWM7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSxJQUFJLDZFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtGQUErRixhQUFhO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1HQUFtRyxlQUFlO0FBQ2xIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsK0RBQVc7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtR0FBbUcsZUFBZTtBQUNsSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkIsaURBQVU7QUFDdkM7O0FBRUE7QUFDQSw4QkFBOEIsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRixlQUFlO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxtQ0FBbUMsZ0RBQWtCLFFBQVEsb0ZBQWEsQ0FBQyxvRkFBYSxHQUFHO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9GQUFhLEdBQUcsNkJBQTZCOztBQUUxRTtBQUNBLHdCQUF3QixpREFBbUIsQ0FBQyw0Q0FBYyxxQkFBcUIsaURBQW1CLENBQUMsMERBQWM7QUFDakg7QUFDQTtBQUNBO0FBQ0EsS0FBSyxlQUFlLGlEQUFtQixDQUFDLHdEQUFjO0FBQ3REO0FBQ0EsS0FBSyw4QkFBOEIsaURBQW1CLENBQUMsaURBQWM7QUFDckU7QUFDQSxLQUFLLGVBQWUsaURBQW1CLENBQUMsK0NBQUs7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaURBQVU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNILE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBZSxnQkFBZ0IsNERBQU0sQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BhaWNzL3dlYi0zZC12aWV3ZXIvLi9ub2RlX21vZHVsZXMvQHJjLWNvbXBvbmVudC90cmlnZ2VyL2VzL2luZGV4LmpzP2JmNmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbnZhciBfZXhjbHVkZWQgPSBbXCJwcmVmaXhDbHNcIiwgXCJjaGlsZHJlblwiLCBcImFjdGlvblwiLCBcInNob3dBY3Rpb25cIiwgXCJoaWRlQWN0aW9uXCIsIFwicG9wdXBWaXNpYmxlXCIsIFwiZGVmYXVsdFBvcHVwVmlzaWJsZVwiLCBcIm9uUG9wdXBWaXNpYmxlQ2hhbmdlXCIsIFwiYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2VcIiwgXCJtb3VzZUVudGVyRGVsYXlcIiwgXCJtb3VzZUxlYXZlRGVsYXlcIiwgXCJmb2N1c0RlbGF5XCIsIFwiYmx1ckRlbGF5XCIsIFwibWFza1wiLCBcIm1hc2tDbG9zYWJsZVwiLCBcImdldFBvcHVwQ29udGFpbmVyXCIsIFwiZm9yY2VSZW5kZXJcIiwgXCJhdXRvRGVzdHJveVwiLCBcImRlc3Ryb3lQb3B1cE9uSGlkZVwiLCBcInBvcHVwXCIsIFwicG9wdXBDbGFzc05hbWVcIiwgXCJwb3B1cFN0eWxlXCIsIFwicG9wdXBQbGFjZW1lbnRcIiwgXCJidWlsdGluUGxhY2VtZW50c1wiLCBcInBvcHVwQWxpZ25cIiwgXCJ6SW5kZXhcIiwgXCJzdHJldGNoXCIsIFwiZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ25cIiwgXCJmcmVzaFwiLCBcImFsaWduUG9pbnRcIiwgXCJvblBvcHVwQ2xpY2tcIiwgXCJvblBvcHVwQWxpZ25cIiwgXCJhcnJvd1wiLCBcInBvcHVwTW90aW9uXCIsIFwibWFza01vdGlvblwiLCBcInBvcHVwVHJhbnNpdGlvbk5hbWVcIiwgXCJwb3B1cEFuaW1hdGlvblwiLCBcIm1hc2tUcmFuc2l0aW9uTmFtZVwiLCBcIm1hc2tBbmltYXRpb25cIiwgXCJjbGFzc05hbWVcIiwgXCJnZXRUcmlnZ2VyRE9NTm9kZVwiXTtcbmltcG9ydCBQb3J0YWwgZnJvbSAnQHJjLWNvbXBvbmVudC9wb3J0YWwnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAncmMtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IGlzRE9NIH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlXCI7XG5pbXBvcnQgeyBnZXRTaGFkb3dSb290IH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL3NoYWRvd1wiO1xuaW1wb3J0IHVzZUV2ZW50IGZyb20gXCJyYy11dGlsL2VzL2hvb2tzL3VzZUV2ZW50XCI7XG5pbXBvcnQgdXNlSWQgZnJvbSBcInJjLXV0aWwvZXMvaG9va3MvdXNlSWRcIjtcbmltcG9ydCB1c2VMYXlvdXRFZmZlY3QgZnJvbSBcInJjLXV0aWwvZXMvaG9va3MvdXNlTGF5b3V0RWZmZWN0XCI7XG5pbXBvcnQgaXNNb2JpbGUgZnJvbSBcInJjLXV0aWwvZXMvaXNNb2JpbGVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQb3B1cCBmcm9tIFwiLi9Qb3B1cFwiO1xuaW1wb3J0IFRyaWdnZXJXcmFwcGVyIGZyb20gXCIuL1RyaWdnZXJXcmFwcGVyXCI7XG5pbXBvcnQgVHJpZ2dlckNvbnRleHQgZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IHVzZUFjdGlvbiBmcm9tIFwiLi9ob29rcy91c2VBY3Rpb25cIjtcbmltcG9ydCB1c2VBbGlnbiBmcm9tIFwiLi9ob29rcy91c2VBbGlnblwiO1xuaW1wb3J0IHVzZVdhdGNoIGZyb20gXCIuL2hvb2tzL3VzZVdhdGNoXCI7XG5pbXBvcnQgdXNlV2luQ2xpY2sgZnJvbSBcIi4vaG9va3MvdXNlV2luQ2xpY2tcIjtcbmltcG9ydCB7IGdldEFsaWduUG9wdXBDbGFzc05hbWUsIGdldE1vdGlvbiB9IGZyb20gXCIuL3V0aWxcIjtcblxuLy8gUmVtb3ZlZCBQcm9wcyBMaXN0XG4vLyBTZWVtcyB0aGlzIGNhbiBiZSBhdXRvXG4vLyBnZXREb2N1bWVudD86IChlbGVtZW50PzogSFRNTEVsZW1lbnQpID0+IERvY3VtZW50O1xuXG4vLyBOZXcgdmVyc2lvbiB3aWxsIG5vdCB3cmFwIHBvcHVwIHdpdGggYHJjLXRyaWdnZXItcG9wdXAtY29udGVudGAgd2hlbiBtdWx0aXBsZSBjaGlsZHJlblxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUcmlnZ2VyKCkge1xuICB2YXIgUG9ydGFsQ29tcG9uZW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBQb3J0YWw7XG4gIHZhciBUcmlnZ2VyID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgX3Byb3BzJHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgIHByZWZpeENscyA9IF9wcm9wcyRwcmVmaXhDbHMgPT09IHZvaWQgMCA/ICdyYy10cmlnZ2VyLXBvcHVwJyA6IF9wcm9wcyRwcmVmaXhDbHMsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgX3Byb3BzJGFjdGlvbiA9IHByb3BzLmFjdGlvbixcbiAgICAgIGFjdGlvbiA9IF9wcm9wcyRhY3Rpb24gPT09IHZvaWQgMCA/ICdob3ZlcicgOiBfcHJvcHMkYWN0aW9uLFxuICAgICAgc2hvd0FjdGlvbiA9IHByb3BzLnNob3dBY3Rpb24sXG4gICAgICBoaWRlQWN0aW9uID0gcHJvcHMuaGlkZUFjdGlvbixcbiAgICAgIHBvcHVwVmlzaWJsZSA9IHByb3BzLnBvcHVwVmlzaWJsZSxcbiAgICAgIGRlZmF1bHRQb3B1cFZpc2libGUgPSBwcm9wcy5kZWZhdWx0UG9wdXBWaXNpYmxlLFxuICAgICAgb25Qb3B1cFZpc2libGVDaGFuZ2UgPSBwcm9wcy5vblBvcHVwVmlzaWJsZUNoYW5nZSxcbiAgICAgIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID0gcHJvcHMuYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2UsXG4gICAgICBtb3VzZUVudGVyRGVsYXkgPSBwcm9wcy5tb3VzZUVudGVyRGVsYXksXG4gICAgICBfcHJvcHMkbW91c2VMZWF2ZURlbGEgPSBwcm9wcy5tb3VzZUxlYXZlRGVsYXksXG4gICAgICBtb3VzZUxlYXZlRGVsYXkgPSBfcHJvcHMkbW91c2VMZWF2ZURlbGEgPT09IHZvaWQgMCA/IDAuMSA6IF9wcm9wcyRtb3VzZUxlYXZlRGVsYSxcbiAgICAgIGZvY3VzRGVsYXkgPSBwcm9wcy5mb2N1c0RlbGF5LFxuICAgICAgYmx1ckRlbGF5ID0gcHJvcHMuYmx1ckRlbGF5LFxuICAgICAgbWFzayA9IHByb3BzLm1hc2ssXG4gICAgICBfcHJvcHMkbWFza0Nsb3NhYmxlID0gcHJvcHMubWFza0Nsb3NhYmxlLFxuICAgICAgbWFza0Nsb3NhYmxlID0gX3Byb3BzJG1hc2tDbG9zYWJsZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9wcm9wcyRtYXNrQ2xvc2FibGUsXG4gICAgICBnZXRQb3B1cENvbnRhaW5lciA9IHByb3BzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgZm9yY2VSZW5kZXIgPSBwcm9wcy5mb3JjZVJlbmRlcixcbiAgICAgIGF1dG9EZXN0cm95ID0gcHJvcHMuYXV0b0Rlc3Ryb3ksXG4gICAgICBkZXN0cm95UG9wdXBPbkhpZGUgPSBwcm9wcy5kZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICBwb3B1cCA9IHByb3BzLnBvcHVwLFxuICAgICAgcG9wdXBDbGFzc05hbWUgPSBwcm9wcy5wb3B1cENsYXNzTmFtZSxcbiAgICAgIHBvcHVwU3R5bGUgPSBwcm9wcy5wb3B1cFN0eWxlLFxuICAgICAgcG9wdXBQbGFjZW1lbnQgPSBwcm9wcy5wb3B1cFBsYWNlbWVudCxcbiAgICAgIF9wcm9wcyRidWlsdGluUGxhY2VtZSA9IHByb3BzLmJ1aWx0aW5QbGFjZW1lbnRzLFxuICAgICAgYnVpbHRpblBsYWNlbWVudHMgPSBfcHJvcHMkYnVpbHRpblBsYWNlbWUgPT09IHZvaWQgMCA/IHt9IDogX3Byb3BzJGJ1aWx0aW5QbGFjZW1lLFxuICAgICAgcG9wdXBBbGlnbiA9IHByb3BzLnBvcHVwQWxpZ24sXG4gICAgICB6SW5kZXggPSBwcm9wcy56SW5kZXgsXG4gICAgICBzdHJldGNoID0gcHJvcHMuc3RyZXRjaCxcbiAgICAgIGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduID0gcHJvcHMuZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24sXG4gICAgICBmcmVzaCA9IHByb3BzLmZyZXNoLFxuICAgICAgYWxpZ25Qb2ludCA9IHByb3BzLmFsaWduUG9pbnQsXG4gICAgICBvblBvcHVwQ2xpY2sgPSBwcm9wcy5vblBvcHVwQ2xpY2ssXG4gICAgICBvblBvcHVwQWxpZ24gPSBwcm9wcy5vblBvcHVwQWxpZ24sXG4gICAgICBhcnJvdyA9IHByb3BzLmFycm93LFxuICAgICAgcG9wdXBNb3Rpb24gPSBwcm9wcy5wb3B1cE1vdGlvbixcbiAgICAgIG1hc2tNb3Rpb24gPSBwcm9wcy5tYXNrTW90aW9uLFxuICAgICAgcG9wdXBUcmFuc2l0aW9uTmFtZSA9IHByb3BzLnBvcHVwVHJhbnNpdGlvbk5hbWUsXG4gICAgICBwb3B1cEFuaW1hdGlvbiA9IHByb3BzLnBvcHVwQW5pbWF0aW9uLFxuICAgICAgbWFza1RyYW5zaXRpb25OYW1lID0gcHJvcHMubWFza1RyYW5zaXRpb25OYW1lLFxuICAgICAgbWFza0FuaW1hdGlvbiA9IHByb3BzLm1hc2tBbmltYXRpb24sXG4gICAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICBnZXRUcmlnZ2VyRE9NTm9kZSA9IHByb3BzLmdldFRyaWdnZXJET01Ob2RlLFxuICAgICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBfZXhjbHVkZWQpO1xuICAgIHZhciBtZXJnZWRBdXRvRGVzdHJveSA9IGF1dG9EZXN0cm95IHx8IGRlc3Ryb3lQb3B1cE9uSGlkZSB8fCBmYWxzZTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBNb2JpbGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGUsIDIpLFxuICAgICAgbW9iaWxlID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICAgIHNldE1vYmlsZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHNldE1vYmlsZShpc01vYmlsZSgpKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBDb250ZXh0ID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIHZhciBzdWJQb3B1cEVsZW1lbnRzID0gUmVhY3QudXNlUmVmKHt9KTtcbiAgICB2YXIgcGFyZW50Q29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoVHJpZ2dlckNvbnRleHQpO1xuICAgIHZhciBjb250ZXh0ID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWdpc3RlclN1YlBvcHVwOiBmdW5jdGlvbiByZWdpc3RlclN1YlBvcHVwKGlkLCBzdWJQb3B1cEVsZSkge1xuICAgICAgICAgIHN1YlBvcHVwRWxlbWVudHMuY3VycmVudFtpZF0gPSBzdWJQb3B1cEVsZTtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0ID09PSBudWxsIHx8IHBhcmVudENvbnRleHQgPT09IHZvaWQgMCB8fCBwYXJlbnRDb250ZXh0LnJlZ2lzdGVyU3ViUG9wdXAoaWQsIHN1YlBvcHVwRWxlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbcGFyZW50Q29udGV4dF0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IFBvcHVwID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgaWQgPSB1c2VJZCgpO1xuICAgIHZhciBfUmVhY3QkdXNlU3RhdGUzID0gUmVhY3QudXNlU3RhdGUobnVsbCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlMywgMiksXG4gICAgICBwb3B1cEVsZSA9IF9SZWFjdCR1c2VTdGF0ZTRbMF0sXG4gICAgICBzZXRQb3B1cEVsZSA9IF9SZWFjdCR1c2VTdGF0ZTRbMV07XG5cbiAgICAvLyBVc2VkIGZvciBmb3J3YXJkUmVmIHBvcHVwLiBOb3QgdXNlIGludGVybmFsXG4gICAgdmFyIGV4dGVybmFsUG9wdXBSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHNldFBvcHVwUmVmID0gdXNlRXZlbnQoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGV4dGVybmFsUG9wdXBSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBpZiAoaXNET00obm9kZSkgJiYgcG9wdXBFbGUgIT09IG5vZGUpIHtcbiAgICAgICAgc2V0UG9wdXBFbGUobm9kZSk7XG4gICAgICB9XG4gICAgICBwYXJlbnRDb250ZXh0ID09PSBudWxsIHx8IHBhcmVudENvbnRleHQgPT09IHZvaWQgMCB8fCBwYXJlbnRDb250ZXh0LnJlZ2lzdGVyU3ViUG9wdXAoaWQsIG5vZGUpO1xuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IFRhcmdldCA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBVc2Ugc3RhdGUgdG8gY29udHJvbCBoZXJlIHNpbmNlIGB1c2VSZWZgIHVwZGF0ZSBub3QgdHJpZ2dlciByZW5kZXJcbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlNSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTUsIDIpLFxuICAgICAgdGFyZ2V0RWxlID0gX1JlYWN0JHVzZVN0YXRlNlswXSxcbiAgICAgIHNldFRhcmdldEVsZSA9IF9SZWFjdCR1c2VTdGF0ZTZbMV07XG5cbiAgICAvLyBVc2VkIGZvciBmb3J3YXJkUmVmIHRhcmdldC4gTm90IHVzZSBpbnRlcm5hbFxuICAgIHZhciBleHRlcm5hbEZvcndhcmRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHNldFRhcmdldFJlZiA9IHVzZUV2ZW50KGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAoaXNET00obm9kZSkgJiYgdGFyZ2V0RWxlICE9PSBub2RlKSB7XG4gICAgICAgIHNldFRhcmdldEVsZShub2RlKTtcbiAgICAgICAgZXh0ZXJuYWxGb3J3YXJkUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gQ2hpbGRyZW4gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB2YXIgb3JpZ2luQ2hpbGRQcm9wcyA9IChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMpIHx8IHt9O1xuICAgIHZhciBjbG9uZVByb3BzID0ge307XG4gICAgdmFyIGluUG9wdXBPckNoaWxkID0gdXNlRXZlbnQoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgdmFyIF9nZXRTaGFkb3dSb290LCBfZ2V0U2hhZG93Um9vdDI7XG4gICAgICB2YXIgY2hpbGRET00gPSB0YXJnZXRFbGU7XG4gICAgICByZXR1cm4gKGNoaWxkRE9NID09PSBudWxsIHx8IGNoaWxkRE9NID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZERPTS5jb250YWlucyhlbGUpKSB8fCAoKF9nZXRTaGFkb3dSb290ID0gZ2V0U2hhZG93Um9vdChjaGlsZERPTSkpID09PSBudWxsIHx8IF9nZXRTaGFkb3dSb290ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZ2V0U2hhZG93Um9vdC5ob3N0KSA9PT0gZWxlIHx8IGVsZSA9PT0gY2hpbGRET00gfHwgKHBvcHVwRWxlID09PSBudWxsIHx8IHBvcHVwRWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwb3B1cEVsZS5jb250YWlucyhlbGUpKSB8fCAoKF9nZXRTaGFkb3dSb290MiA9IGdldFNoYWRvd1Jvb3QocG9wdXBFbGUpKSA9PT0gbnVsbCB8fCBfZ2V0U2hhZG93Um9vdDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nZXRTaGFkb3dSb290Mi5ob3N0KSA9PT0gZWxlIHx8IGVsZSA9PT0gcG9wdXBFbGUgfHwgT2JqZWN0LnZhbHVlcyhzdWJQb3B1cEVsZW1lbnRzLmN1cnJlbnQpLnNvbWUoZnVuY3Rpb24gKHN1YlBvcHVwRWxlKSB7XG4gICAgICAgIHJldHVybiAoc3ViUG9wdXBFbGUgPT09IG51bGwgfHwgc3ViUG9wdXBFbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1YlBvcHVwRWxlLmNvbnRhaW5zKGVsZSkpIHx8IGVsZSA9PT0gc3ViUG9wdXBFbGU7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBNb3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIG1lcmdlUG9wdXBNb3Rpb24gPSBnZXRNb3Rpb24ocHJlZml4Q2xzLCBwb3B1cE1vdGlvbiwgcG9wdXBBbmltYXRpb24sIHBvcHVwVHJhbnNpdGlvbk5hbWUpO1xuICAgIHZhciBtZXJnZU1hc2tNb3Rpb24gPSBnZXRNb3Rpb24ocHJlZml4Q2xzLCBtYXNrTW90aW9uLCBtYXNrQW5pbWF0aW9uLCBtYXNrVHJhbnNpdGlvbk5hbWUpO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBPcGVuID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlNyA9IFJlYWN0LnVzZVN0YXRlKGRlZmF1bHRQb3B1cFZpc2libGUgfHwgZmFsc2UpLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlOCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTcsIDIpLFxuICAgICAgaW50ZXJuYWxPcGVuID0gX1JlYWN0JHVzZVN0YXRlOFswXSxcbiAgICAgIHNldEludGVybmFsT3BlbiA9IF9SZWFjdCR1c2VTdGF0ZThbMV07XG5cbiAgICAvLyBSZW5kZXIgc3RpbGwgdXNlIHByb3BzIGFzIGZpcnN0IHByaW9yaXR5XG4gICAgdmFyIG1lcmdlZE9wZW4gPSBwb3B1cFZpc2libGUgIT09IG51bGwgJiYgcG9wdXBWaXNpYmxlICE9PSB2b2lkIDAgPyBwb3B1cFZpc2libGUgOiBpbnRlcm5hbE9wZW47XG5cbiAgICAvLyBXZSB1c2UgZWZmZWN0IHN5bmMgaGVyZSBpbiBjYXNlIGBwb3B1cFZpc2libGVgIGJhY2sgdG8gYHVuZGVmaW5lZGBcbiAgICB2YXIgc2V0TWVyZ2VkT3BlbiA9IHVzZUV2ZW50KGZ1bmN0aW9uIChuZXh0T3Blbikge1xuICAgICAgaWYgKHBvcHVwVmlzaWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEludGVybmFsT3BlbihuZXh0T3Blbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHNldEludGVybmFsT3Blbihwb3B1cFZpc2libGUgfHwgZmFsc2UpO1xuICAgIH0sIFtwb3B1cFZpc2libGVdKTtcbiAgICB2YXIgb3BlblJlZiA9IFJlYWN0LnVzZVJlZihtZXJnZWRPcGVuKTtcbiAgICBvcGVuUmVmLmN1cnJlbnQgPSBtZXJnZWRPcGVuO1xuICAgIHZhciBsYXN0VHJpZ2dlclJlZiA9IFJlYWN0LnVzZVJlZihbXSk7XG4gICAgbGFzdFRyaWdnZXJSZWYuY3VycmVudCA9IFtdO1xuICAgIHZhciBpbnRlcm5hbFRyaWdnZXJPcGVuID0gdXNlRXZlbnQoZnVuY3Rpb24gKG5leHRPcGVuKSB7XG4gICAgICB2YXIgX2xhc3RUcmlnZ2VyUmVmJGN1cnJlO1xuICAgICAgc2V0TWVyZ2VkT3BlbihuZXh0T3Blbik7XG5cbiAgICAgIC8vIEVudGVyIG9yIFBvaW50ZXIgd2lsbCBib3RoIHRyaWdnZXIgb3BlbiBzdGF0ZSBjaGFuZ2VcbiAgICAgIC8vIFdlIG9ubHkgbmVlZCB0YWtlIG9uZSB0byBhdm9pZCBkdXBsaWNhdGVkIGNoYW5nZSBldmVudCB0cmlnZ2VyXG4gICAgICAvLyBVc2UgYGxhc3RUcmlnZ2VyUmVmYCB0byByZWNvcmQgbGFzdCBvcGVuIHR5cGVcbiAgICAgIGlmICgoKF9sYXN0VHJpZ2dlclJlZiRjdXJyZSA9IGxhc3RUcmlnZ2VyUmVmLmN1cnJlbnRbbGFzdFRyaWdnZXJSZWYuY3VycmVudC5sZW5ndGggLSAxXSkgIT09IG51bGwgJiYgX2xhc3RUcmlnZ2VyUmVmJGN1cnJlICE9PSB2b2lkIDAgPyBfbGFzdFRyaWdnZXJSZWYkY3VycmUgOiBtZXJnZWRPcGVuKSAhPT0gbmV4dE9wZW4pIHtcbiAgICAgICAgbGFzdFRyaWdnZXJSZWYuY3VycmVudC5wdXNoKG5leHRPcGVuKTtcbiAgICAgICAgb25Qb3B1cFZpc2libGVDaGFuZ2UgPT09IG51bGwgfHwgb25Qb3B1cFZpc2libGVDaGFuZ2UgPT09IHZvaWQgMCB8fCBvblBvcHVwVmlzaWJsZUNoYW5nZShuZXh0T3Blbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUcmlnZ2VyIGZvciBkZWxheVxuICAgIHZhciBkZWxheVJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICAgIHZhciBjbGVhckRlbGF5ID0gZnVuY3Rpb24gY2xlYXJEZWxheSgpIHtcbiAgICAgIGNsZWFyVGltZW91dChkZWxheVJlZi5jdXJyZW50KTtcbiAgICB9O1xuICAgIHZhciB0cmlnZ2VyT3BlbiA9IGZ1bmN0aW9uIHRyaWdnZXJPcGVuKG5leHRPcGVuKSB7XG4gICAgICB2YXIgZGVsYXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7XG4gICAgICBjbGVhckRlbGF5KCk7XG4gICAgICBpZiAoZGVsYXkgPT09IDApIHtcbiAgICAgICAgaW50ZXJuYWxUcmlnZ2VyT3BlbihuZXh0T3Blbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxheVJlZi5jdXJyZW50ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaW50ZXJuYWxUcmlnZ2VyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIH0sIGRlbGF5ICogMTAwMCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGNsZWFyRGVsYXk7XG4gICAgfSwgW10pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gTW90aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlOSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTEwID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlOSwgMiksXG4gICAgICBpbk1vdGlvbiA9IF9SZWFjdCR1c2VTdGF0ZTEwWzBdLFxuICAgICAgc2V0SW5Nb3Rpb24gPSBfUmVhY3QkdXNlU3RhdGUxMFsxXTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKGZpcnN0TW91bnQpIHtcbiAgICAgIGlmICghZmlyc3RNb3VudCB8fCBtZXJnZWRPcGVuKSB7XG4gICAgICAgIHNldEluTW90aW9uKHRydWUpO1xuICAgICAgfVxuICAgIH0sIFttZXJnZWRPcGVuXSk7XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTExID0gUmVhY3QudXNlU3RhdGUobnVsbCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUxMiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTExLCAyKSxcbiAgICAgIG1vdGlvblByZXBhcmVSZXNvbHZlID0gX1JlYWN0JHVzZVN0YXRlMTJbMF0sXG4gICAgICBzZXRNb3Rpb25QcmVwYXJlUmVzb2x2ZSA9IF9SZWFjdCR1c2VTdGF0ZTEyWzFdO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IEFsaWduID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlMTMgPSBSZWFjdC51c2VTdGF0ZShudWxsKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTE0ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlMTMsIDIpLFxuICAgICAgbW91c2VQb3MgPSBfUmVhY3QkdXNlU3RhdGUxNFswXSxcbiAgICAgIHNldE1vdXNlUG9zID0gX1JlYWN0JHVzZVN0YXRlMTRbMV07XG4gICAgdmFyIHNldE1vdXNlUG9zQnlFdmVudCA9IGZ1bmN0aW9uIHNldE1vdXNlUG9zQnlFdmVudChldmVudCkge1xuICAgICAgc2V0TW91c2VQb3MoW2V2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFldKTtcbiAgICB9O1xuICAgIHZhciBfdXNlQWxpZ24gPSB1c2VBbGlnbihtZXJnZWRPcGVuLCBwb3B1cEVsZSwgYWxpZ25Qb2ludCAmJiBtb3VzZVBvcyAhPT0gbnVsbCA/IG1vdXNlUG9zIDogdGFyZ2V0RWxlLCBwb3B1cFBsYWNlbWVudCwgYnVpbHRpblBsYWNlbWVudHMsIHBvcHVwQWxpZ24sIG9uUG9wdXBBbGlnbiksXG4gICAgICBfdXNlQWxpZ24yID0gX3NsaWNlZFRvQXJyYXkoX3VzZUFsaWduLCAxMSksXG4gICAgICByZWFkeSA9IF91c2VBbGlnbjJbMF0sXG4gICAgICBvZmZzZXRYID0gX3VzZUFsaWduMlsxXSxcbiAgICAgIG9mZnNldFkgPSBfdXNlQWxpZ24yWzJdLFxuICAgICAgb2Zmc2V0UiA9IF91c2VBbGlnbjJbM10sXG4gICAgICBvZmZzZXRCID0gX3VzZUFsaWduMls0XSxcbiAgICAgIGFycm93WCA9IF91c2VBbGlnbjJbNV0sXG4gICAgICBhcnJvd1kgPSBfdXNlQWxpZ24yWzZdLFxuICAgICAgc2NhbGVYID0gX3VzZUFsaWduMls3XSxcbiAgICAgIHNjYWxlWSA9IF91c2VBbGlnbjJbOF0sXG4gICAgICBhbGlnbkluZm8gPSBfdXNlQWxpZ24yWzldLFxuICAgICAgb25BbGlnbiA9IF91c2VBbGlnbjJbMTBdO1xuICAgIHZhciBfdXNlQWN0aW9uID0gdXNlQWN0aW9uKG1vYmlsZSwgYWN0aW9uLCBzaG93QWN0aW9uLCBoaWRlQWN0aW9uKSxcbiAgICAgIF91c2VBY3Rpb24yID0gX3NsaWNlZFRvQXJyYXkoX3VzZUFjdGlvbiwgMiksXG4gICAgICBzaG93QWN0aW9ucyA9IF91c2VBY3Rpb24yWzBdLFxuICAgICAgaGlkZUFjdGlvbnMgPSBfdXNlQWN0aW9uMlsxXTtcbiAgICB2YXIgY2xpY2tUb1Nob3cgPSBzaG93QWN0aW9ucy5oYXMoJ2NsaWNrJyk7XG4gICAgdmFyIGNsaWNrVG9IaWRlID0gaGlkZUFjdGlvbnMuaGFzKCdjbGljaycpIHx8IGhpZGVBY3Rpb25zLmhhcygnY29udGV4dE1lbnUnKTtcbiAgICB2YXIgdHJpZ2dlckFsaWduID0gdXNlRXZlbnQoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFpbk1vdGlvbikge1xuICAgICAgICBvbkFsaWduKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIG9uU2Nyb2xsID0gZnVuY3Rpb24gb25TY3JvbGwoKSB7XG4gICAgICBpZiAob3BlblJlZi5jdXJyZW50ICYmIGFsaWduUG9pbnQgJiYgY2xpY2tUb0hpZGUpIHtcbiAgICAgICAgdHJpZ2dlck9wZW4oZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgdXNlV2F0Y2gobWVyZ2VkT3BlbiwgdGFyZ2V0RWxlLCBwb3B1cEVsZSwgdHJpZ2dlckFsaWduLCBvblNjcm9sbCk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyaWdnZXJBbGlnbigpO1xuICAgIH0sIFttb3VzZVBvcywgcG9wdXBQbGFjZW1lbnRdKTtcblxuICAgIC8vIFdoZW4gbm8gYnVpbHRpblBsYWNlbWVudHMgYW5kIHBvcHVwQWxpZ24gY2hhbmdlZFxuICAgIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAobWVyZ2VkT3BlbiAmJiAhKGJ1aWx0aW5QbGFjZW1lbnRzICE9PSBudWxsICYmIGJ1aWx0aW5QbGFjZW1lbnRzICE9PSB2b2lkIDAgJiYgYnVpbHRpblBsYWNlbWVudHNbcG9wdXBQbGFjZW1lbnRdKSkge1xuICAgICAgICB0cmlnZ2VyQWxpZ24oKTtcbiAgICAgIH1cbiAgICB9LCBbSlNPTi5zdHJpbmdpZnkocG9wdXBBbGlnbildKTtcbiAgICB2YXIgYWxpZ25lZENsYXNzTmFtZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGJhc2VDbGFzc05hbWUgPSBnZXRBbGlnblBvcHVwQ2xhc3NOYW1lKGJ1aWx0aW5QbGFjZW1lbnRzLCBwcmVmaXhDbHMsIGFsaWduSW5mbywgYWxpZ25Qb2ludCk7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcyhiYXNlQ2xhc3NOYW1lLCBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9PT0gbnVsbCB8fCBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24oYWxpZ25JbmZvKSk7XG4gICAgfSwgW2FsaWduSW5mbywgZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24sIGJ1aWx0aW5QbGFjZW1lbnRzLCBwcmVmaXhDbHMsIGFsaWduUG9pbnRdKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IGV4dGVybmFsRm9yd2FyZFJlZi5jdXJyZW50LFxuICAgICAgICBwb3B1cEVsZW1lbnQ6IGV4dGVybmFsUG9wdXBSZWYuY3VycmVudCxcbiAgICAgICAgZm9yY2VBbGlnbjogdHJpZ2dlckFsaWduXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gU3RyZXRjaCA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgX1JlYWN0JHVzZVN0YXRlMTUgPSBSZWFjdC51c2VTdGF0ZSgwKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTE2ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlMTUsIDIpLFxuICAgICAgdGFyZ2V0V2lkdGggPSBfUmVhY3QkdXNlU3RhdGUxNlswXSxcbiAgICAgIHNldFRhcmdldFdpZHRoID0gX1JlYWN0JHVzZVN0YXRlMTZbMV07XG4gICAgdmFyIF9SZWFjdCR1c2VTdGF0ZTE3ID0gUmVhY3QudXNlU3RhdGUoMCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUxOCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTE3LCAyKSxcbiAgICAgIHRhcmdldEhlaWdodCA9IF9SZWFjdCR1c2VTdGF0ZTE4WzBdLFxuICAgICAgc2V0VGFyZ2V0SGVpZ2h0ID0gX1JlYWN0JHVzZVN0YXRlMThbMV07XG4gICAgdmFyIHN5bmNUYXJnZXRTaXplID0gZnVuY3Rpb24gc3luY1RhcmdldFNpemUoKSB7XG4gICAgICBpZiAoc3RyZXRjaCAmJiB0YXJnZXRFbGUpIHtcbiAgICAgICAgdmFyIHJlY3QgPSB0YXJnZXRFbGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHNldFRhcmdldFdpZHRoKHJlY3Qud2lkdGgpO1xuICAgICAgICBzZXRUYXJnZXRIZWlnaHQocmVjdC5oZWlnaHQpO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIG9uVGFyZ2V0UmVzaXplID0gZnVuY3Rpb24gb25UYXJnZXRSZXNpemUoKSB7XG4gICAgICBzeW5jVGFyZ2V0U2l6ZSgpO1xuICAgICAgdHJpZ2dlckFsaWduKCk7XG4gICAgfTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IE1vdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgdmFyIG9uVmlzaWJsZUNoYW5nZWQgPSBmdW5jdGlvbiBvblZpc2libGVDaGFuZ2VkKHZpc2libGUpIHtcbiAgICAgIHNldEluTW90aW9uKGZhbHNlKTtcbiAgICAgIG9uQWxpZ24oKTtcbiAgICAgIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID09PSBudWxsIHx8IGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID09PSB2b2lkIDAgfHwgYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2UodmlzaWJsZSk7XG4gICAgfTtcblxuICAgIC8vIFdlIHdpbGwgdHJpZ2dlciBhbGlnbiB3aGVuIG1vdGlvbiBpcyBpbiBwcmVwYXJlXG4gICAgdmFyIG9uUHJlcGFyZSA9IGZ1bmN0aW9uIG9uUHJlcGFyZSgpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBzeW5jVGFyZ2V0U2l6ZSgpO1xuICAgICAgICBzZXRNb3Rpb25QcmVwYXJlUmVzb2x2ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmU7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKG1vdGlvblByZXBhcmVSZXNvbHZlKSB7XG4gICAgICAgIG9uQWxpZ24oKTtcbiAgICAgICAgbW90aW9uUHJlcGFyZVJlc29sdmUoKTtcbiAgICAgICAgc2V0TW90aW9uUHJlcGFyZVJlc29sdmUobnVsbCk7XG4gICAgICB9XG4gICAgfSwgW21vdGlvblByZXBhcmVSZXNvbHZlXSk7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gQWN0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8qKlxuICAgICAqIFV0aWwgd3JhcHBlciBmb3IgdHJpZ2dlciBhY3Rpb25cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQWN0aW9uKGV2ZW50TmFtZSwgbmV4dE9wZW4sIGRlbGF5LCBwcmVFdmVudCkge1xuICAgICAgY2xvbmVQcm9wc1tldmVudE5hbWVdID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHZhciBfb3JpZ2luQ2hpbGRQcm9wcyRldmU7XG4gICAgICAgIHByZUV2ZW50ID09PSBudWxsIHx8IHByZUV2ZW50ID09PSB2b2lkIDAgfHwgcHJlRXZlbnQoZXZlbnQpO1xuICAgICAgICB0cmlnZ2VyT3BlbihuZXh0T3BlbiwgZGVsYXkpO1xuXG4gICAgICAgIC8vIFBhc3MgdG8gb3JpZ2luXG4gICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgfVxuICAgICAgICAoX29yaWdpbkNoaWxkUHJvcHMkZXZlID0gb3JpZ2luQ2hpbGRQcm9wc1tldmVudE5hbWVdKSA9PT0gbnVsbCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRldmUgPT09IHZvaWQgMCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRldmUuY2FsbC5hcHBseShfb3JpZ2luQ2hpbGRQcm9wcyRldmUsIFtvcmlnaW5DaGlsZFByb3BzLCBldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gQWN0aW9uOiBDbGljayA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAoY2xpY2tUb1Nob3cgfHwgY2xpY2tUb0hpZGUpIHtcbiAgICAgIGNsb25lUHJvcHMub25DbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB2YXIgX29yaWdpbkNoaWxkUHJvcHMkb25DO1xuICAgICAgICBpZiAob3BlblJlZi5jdXJyZW50ICYmIGNsaWNrVG9IaWRlKSB7XG4gICAgICAgICAgdHJpZ2dlck9wZW4oZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKCFvcGVuUmVmLmN1cnJlbnQgJiYgY2xpY2tUb1Nob3cpIHtcbiAgICAgICAgICBzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIHRyaWdnZXJPcGVuKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFzcyB0byBvcmlnaW5cbiAgICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgICB9XG4gICAgICAgIChfb3JpZ2luQ2hpbGRQcm9wcyRvbkMgPSBvcmlnaW5DaGlsZFByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uQyA9PT0gdm9pZCAwIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uQy5jYWxsLmFwcGx5KF9vcmlnaW5DaGlsZFByb3BzJG9uQywgW29yaWdpbkNoaWxkUHJvcHMsIGV2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBDbGljayB0byBoaWRlIGlzIHNwZWNpYWwgYWN0aW9uIHNpbmNlIGNsaWNrIHBvcHVwIGVsZW1lbnQgc2hvdWxkIG5vdCBoaWRlXG4gICAgdmFyIG9uUG9wdXBQb2ludGVyRG93biA9IHVzZVdpbkNsaWNrKG1lcmdlZE9wZW4sIGNsaWNrVG9IaWRlLCB0YXJnZXRFbGUsIHBvcHVwRWxlLCBtYXNrLCBtYXNrQ2xvc2FibGUsIGluUG9wdXBPckNoaWxkLCB0cmlnZ2VyT3Blbik7XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PSBBY3Rpb246IEhvdmVyID09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIHZhciBob3ZlclRvU2hvdyA9IHNob3dBY3Rpb25zLmhhcygnaG92ZXInKTtcbiAgICB2YXIgaG92ZXJUb0hpZGUgPSBoaWRlQWN0aW9ucy5oYXMoJ2hvdmVyJyk7XG4gICAgdmFyIG9uUG9wdXBNb3VzZUVudGVyO1xuICAgIHZhciBvblBvcHVwTW91c2VMZWF2ZTtcbiAgICBpZiAoaG92ZXJUb1Nob3cpIHtcbiAgICAgIC8vIENvbXBhdGlibGUgd2l0aCBvbGQgYnJvd3NlciB3aGljaCBub3Qgc3VwcG9ydCBwb2ludGVyIGV2ZW50XG4gICAgICB3cmFwcGVyQWN0aW9uKCdvbk1vdXNlRW50ZXInLCB0cnVlLCBtb3VzZUVudGVyRGVsYXksIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG4gICAgICB3cmFwcGVyQWN0aW9uKCdvblBvaW50ZXJFbnRlcicsIHRydWUsIG1vdXNlRW50ZXJEZWxheSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHNldE1vdXNlUG9zQnlFdmVudChldmVudCk7XG4gICAgICB9KTtcbiAgICAgIG9uUG9wdXBNb3VzZUVudGVyID0gZnVuY3Rpb24gb25Qb3B1cE1vdXNlRW50ZXIoZXZlbnQpIHtcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIHJlLW9wZW4gd2hlbiBwb3B1cCBpcyB2aXNpYmxlXG4gICAgICAgIGlmICgobWVyZ2VkT3BlbiB8fCBpbk1vdGlvbikgJiYgcG9wdXBFbGUgIT09IG51bGwgJiYgcG9wdXBFbGUgIT09IHZvaWQgMCAmJiBwb3B1cEVsZS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgdHJpZ2dlck9wZW4odHJ1ZSwgbW91c2VFbnRlckRlbGF5KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gQWxpZ24gUG9pbnRcbiAgICAgIGlmIChhbGlnblBvaW50KSB7XG4gICAgICAgIGNsb25lUHJvcHMub25Nb3VzZU1vdmUgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICB2YXIgX29yaWdpbkNoaWxkUHJvcHMkb25NO1xuICAgICAgICAgIC8vIHNldE1vdXNlUG9zQnlFdmVudChldmVudCk7XG4gICAgICAgICAgKF9vcmlnaW5DaGlsZFByb3BzJG9uTSA9IG9yaWdpbkNoaWxkUHJvcHMub25Nb3VzZU1vdmUpID09PSBudWxsIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uTSA9PT0gdm9pZCAwIHx8IF9vcmlnaW5DaGlsZFByb3BzJG9uTS5jYWxsKG9yaWdpbkNoaWxkUHJvcHMsIGV2ZW50KTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGhvdmVyVG9IaWRlKSB7XG4gICAgICB3cmFwcGVyQWN0aW9uKCdvbk1vdXNlTGVhdmUnLCBmYWxzZSwgbW91c2VMZWF2ZURlbGF5KTtcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uUG9pbnRlckxlYXZlJywgZmFsc2UsIG1vdXNlTGVhdmVEZWxheSk7XG4gICAgICBvblBvcHVwTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIG9uUG9wdXBNb3VzZUxlYXZlKCkge1xuICAgICAgICB0cmlnZ2VyT3BlbihmYWxzZSwgbW91c2VMZWF2ZURlbGF5KTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gQWN0aW9uOiBGb2N1cyA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAoc2hvd0FjdGlvbnMuaGFzKCdmb2N1cycpKSB7XG4gICAgICB3cmFwcGVyQWN0aW9uKCdvbkZvY3VzJywgdHJ1ZSwgZm9jdXNEZWxheSk7XG4gICAgfVxuICAgIGlmIChoaWRlQWN0aW9ucy5oYXMoJ2ZvY3VzJykpIHtcbiAgICAgIHdyYXBwZXJBY3Rpb24oJ29uQmx1cicsIGZhbHNlLCBibHVyRGVsYXkpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09IEFjdGlvbjogQ29udGV4dE1lbnUgPT09PT09PT09PT09PT09PT09PT09XG4gICAgaWYgKHNob3dBY3Rpb25zLmhhcygnY29udGV4dE1lbnUnKSkge1xuICAgICAgY2xvbmVQcm9wcy5vbkNvbnRleHRNZW51ID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHZhciBfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyO1xuICAgICAgICBpZiAob3BlblJlZi5jdXJyZW50ICYmIGhpZGVBY3Rpb25zLmhhcygnY29udGV4dE1lbnUnKSkge1xuICAgICAgICAgIHRyaWdnZXJPcGVuKGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIHRyaWdnZXJPcGVuKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgLy8gUGFzcyB0byBvcmlnaW5cbiAgICAgICAgZm9yICh2YXIgX2xlbjMgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4zID4gMSA/IF9sZW4zIC0gMSA6IDApLCBfa2V5MyA9IDE7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgICAgICBhcmdzW19rZXkzIC0gMV0gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgICAgICB9XG4gICAgICAgIChfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyID0gb3JpZ2luQ2hpbGRQcm9wcy5vbkNvbnRleHRNZW51KSA9PT0gbnVsbCB8fCBfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyID09PSB2b2lkIDAgfHwgX29yaWdpbkNoaWxkUHJvcHMkb25DMi5jYWxsLmFwcGx5KF9vcmlnaW5DaGlsZFByb3BzJG9uQzIsIFtvcmlnaW5DaGlsZFByb3BzLCBldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBDbGFzc05hbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICBjbG9uZVByb3BzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZXMob3JpZ2luQ2hpbGRQcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICB2YXIgbWVyZ2VkQ2hpbGRyZW5Qcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgb3JpZ2luQ2hpbGRQcm9wcyksIGNsb25lUHJvcHMpO1xuXG4gICAgLy8gUGFzcyBwcm9wcyBpbnRvIGNsb25lUHJvcHMgZm9yIG5lc3QgdXNhZ2VcbiAgICB2YXIgcGFzc2VkUHJvcHMgPSB7fTtcbiAgICB2YXIgcGFzc2VkRXZlbnRMaXN0ID0gWydvbkNvbnRleHRNZW51JywgJ29uQ2xpY2snLCAnb25Nb3VzZURvd24nLCAnb25Ub3VjaFN0YXJ0JywgJ29uTW91c2VFbnRlcicsICdvbk1vdXNlTGVhdmUnLCAnb25Gb2N1cycsICdvbkJsdXInXTtcbiAgICBwYXNzZWRFdmVudExpc3QuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBpZiAocmVzdFByb3BzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgcGFzc2VkUHJvcHNbZXZlbnROYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX21lcmdlZENoaWxkcmVuUHJvcHMkO1xuICAgICAgICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgICAgICAgYXJnc1tfa2V5NF0gPSBhcmd1bWVudHNbX2tleTRdO1xuICAgICAgICAgIH1cbiAgICAgICAgICAoX21lcmdlZENoaWxkcmVuUHJvcHMkID0gbWVyZ2VkQ2hpbGRyZW5Qcm9wc1tldmVudE5hbWVdKSA9PT0gbnVsbCB8fCBfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQgPT09IHZvaWQgMCB8fCBfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQuY2FsbC5hcHBseShfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQsIFttZXJnZWRDaGlsZHJlblByb3BzXS5jb25jYXQoYXJncykpO1xuICAgICAgICAgIHJlc3RQcm9wc1tldmVudE5hbWVdLmFwcGx5KHJlc3RQcm9wcywgYXJncyk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBDaGlsZCBOb2RlXG4gICAgdmFyIHRyaWdnZXJOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtZXJnZWRDaGlsZHJlblByb3BzKSwgcGFzc2VkUHJvcHMpKTtcbiAgICB2YXIgYXJyb3dQb3MgPSB7XG4gICAgICB4OiBhcnJvd1gsXG4gICAgICB5OiBhcnJvd1lcbiAgICB9O1xuICAgIHZhciBpbm5lckFycm93ID0gYXJyb3cgPyBfb2JqZWN0U3ByZWFkKHt9LCBhcnJvdyAhPT0gdHJ1ZSA/IGFycm93IDoge30pIDogbnVsbDtcblxuICAgIC8vIFJlbmRlclxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVzaXplT2JzZXJ2ZXIsIHtcbiAgICAgIGRpc2FibGVkOiAhbWVyZ2VkT3BlbixcbiAgICAgIHJlZjogc2V0VGFyZ2V0UmVmLFxuICAgICAgb25SZXNpemU6IG9uVGFyZ2V0UmVzaXplXG4gICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlcldyYXBwZXIsIHtcbiAgICAgIGdldFRyaWdnZXJET01Ob2RlOiBnZXRUcmlnZ2VyRE9NTm9kZVxuICAgIH0sIHRyaWdnZXJOb2RlKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRyaWdnZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogY29udGV4dFxuICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFBvcHVwLCB7XG4gICAgICBwb3J0YWw6IFBvcnRhbENvbXBvbmVudCxcbiAgICAgIHJlZjogc2V0UG9wdXBSZWYsXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIHBvcHVwOiBwb3B1cCxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhwb3B1cENsYXNzTmFtZSwgYWxpZ25lZENsYXNzTmFtZSksXG4gICAgICBzdHlsZTogcG9wdXBTdHlsZSxcbiAgICAgIHRhcmdldDogdGFyZ2V0RWxlLFxuICAgICAgb25Nb3VzZUVudGVyOiBvblBvcHVwTW91c2VFbnRlcixcbiAgICAgIG9uTW91c2VMZWF2ZTogb25Qb3B1cE1vdXNlTGVhdmVcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzQzOTI0XG4gICAgICAsXG4gICAgICBvblBvaW50ZXJFbnRlcjogb25Qb3B1cE1vdXNlRW50ZXIsXG4gICAgICB6SW5kZXg6IHpJbmRleFxuICAgICAgLy8gT3BlblxuICAgICAgLFxuICAgICAgb3BlbjogbWVyZ2VkT3BlbixcbiAgICAgIGtlZXBEb206IGluTW90aW9uLFxuICAgICAgZnJlc2g6IGZyZXNoXG4gICAgICAvLyBDbGlja1xuICAgICAgLFxuICAgICAgb25DbGljazogb25Qb3B1cENsaWNrLFxuICAgICAgb25Qb2ludGVyRG93bkNhcHR1cmU6IG9uUG9wdXBQb2ludGVyRG93blxuICAgICAgLy8gTWFza1xuICAgICAgLFxuICAgICAgbWFzazogbWFza1xuICAgICAgLy8gTW90aW9uXG4gICAgICAsXG4gICAgICBtb3Rpb246IG1lcmdlUG9wdXBNb3Rpb24sXG4gICAgICBtYXNrTW90aW9uOiBtZXJnZU1hc2tNb3Rpb24sXG4gICAgICBvblZpc2libGVDaGFuZ2VkOiBvblZpc2libGVDaGFuZ2VkLFxuICAgICAgb25QcmVwYXJlOiBvblByZXBhcmVcbiAgICAgIC8vIFBvcnRhbFxuICAgICAgLFxuICAgICAgZm9yY2VSZW5kZXI6IGZvcmNlUmVuZGVyLFxuICAgICAgYXV0b0Rlc3Ryb3k6IG1lcmdlZEF1dG9EZXN0cm95LFxuICAgICAgZ2V0UG9wdXBDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyXG4gICAgICAvLyBBcnJvd1xuICAgICAgLFxuICAgICAgYWxpZ246IGFsaWduSW5mbyxcbiAgICAgIGFycm93OiBpbm5lckFycm93LFxuICAgICAgYXJyb3dQb3M6IGFycm93UG9zXG4gICAgICAvLyBBbGlnblxuICAgICAgLFxuICAgICAgcmVhZHk6IHJlYWR5LFxuICAgICAgb2Zmc2V0WDogb2Zmc2V0WCxcbiAgICAgIG9mZnNldFk6IG9mZnNldFksXG4gICAgICBvZmZzZXRSOiBvZmZzZXRSLFxuICAgICAgb2Zmc2V0Qjogb2Zmc2V0QixcbiAgICAgIG9uQWxpZ246IHRyaWdnZXJBbGlnblxuICAgICAgLy8gU3RyZXRjaFxuICAgICAgLFxuICAgICAgc3RyZXRjaDogc3RyZXRjaCxcbiAgICAgIHRhcmdldFdpZHRoOiB0YXJnZXRXaWR0aCAvIHNjYWxlWCxcbiAgICAgIHRhcmdldEhlaWdodDogdGFyZ2V0SGVpZ2h0IC8gc2NhbGVZXG4gICAgfSkpKTtcbiAgfSk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgVHJpZ2dlci5kaXNwbGF5TmFtZSA9ICdUcmlnZ2VyJztcbiAgfVxuICByZXR1cm4gVHJpZ2dlcjtcbn1cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYXRlVHJpZ2dlcihQb3J0YWwpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@rc-component/trigger/es/index.js\n");
/***/ }),
@@ -1479,7 +2187,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__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 */ AbortedDeferredError: () => (/* binding */ AbortedDeferredError),\n/* harmony export */ Action: () => (/* binding */ Action),\n/* harmony export */ IDLE_BLOCKER: () => (/* binding */ IDLE_BLOCKER),\n/* harmony export */ IDLE_FETCHER: () => (/* binding */ IDLE_FETCHER),\n/* harmony export */ IDLE_NAVIGATION: () => (/* binding */ IDLE_NAVIGATION),\n/* harmony export */ UNSAFE_DEFERRED_SYMBOL: () => (/* binding */ UNSAFE_DEFERRED_SYMBOL),\n/* harmony export */ UNSAFE_DeferredData: () => (/* binding */ DeferredData),\n/* harmony export */ UNSAFE_ErrorResponseImpl: () => (/* binding */ ErrorResponseImpl),\n/* harmony export */ UNSAFE_convertRouteMatchToUiMatch: () => (/* binding */ convertRouteMatchToUiMatch),\n/* harmony export */ UNSAFE_convertRoutesToDataRoutes: () => (/* binding */ convertRoutesToDataRoutes),\n/* harmony export */ UNSAFE_getResolveToMatches: () => (/* binding */ getResolveToMatches),\n/* harmony export */ UNSAFE_invariant: () => (/* binding */ invariant),\n/* harmony export */ UNSAFE_warning: () => (/* binding */ warning),\n/* harmony export */ createBrowserHistory: () => (/* binding */ createBrowserHistory),\n/* harmony export */ createHashHistory: () => (/* binding */ createHashHistory),\n/* harmony export */ createMemoryHistory: () => (/* binding */ createMemoryHistory),\n/* harmony export */ createPath: () => (/* binding */ createPath),\n/* harmony export */ createRouter: () => (/* binding */ createRouter),\n/* harmony export */ createStaticHandler: () => (/* binding */ createStaticHandler),\n/* harmony export */ defer: () => (/* binding */ defer),\n/* harmony export */ generatePath: () => (/* binding */ generatePath),\n/* harmony export */ getStaticContextFromError: () => (/* binding */ getStaticContextFromError),\n/* harmony export */ getToPathname: () => (/* binding */ getToPathname),\n/* harmony export */ isDeferredData: () => (/* binding */ isDeferredData),\n/* harmony export */ isRouteErrorResponse: () => (/* binding */ isRouteErrorResponse),\n/* harmony export */ joinPaths: () => (/* binding */ joinPaths),\n/* harmony export */ json: () => (/* binding */ json),\n/* harmony export */ matchPath: () => (/* binding */ matchPath),\n/* harmony export */ matchRoutes: () => (/* binding */ matchRoutes),\n/* harmony export */ normalizePathname: () => (/* binding */ normalizePathname),\n/* harmony export */ parsePath: () => (/* binding */ parsePath),\n/* harmony export */ redirect: () => (/* binding */ redirect),\n/* harmony export */ redirectDocument: () => (/* binding */ redirectDocument),\n/* harmony export */ resolvePath: () => (/* binding */ resolvePath),\n/* harmony export */ resolveTo: () => (/* binding */ resolveTo),\n/* harmony export */ stripBasename: () => (/* binding */ stripBasename)\n/* harmony export */ });\n/**\n * @remix-run/router v1.15.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (