"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ exports.id = "vendor-chunks/react-hot-toast"; exports.ids = ["vendor-chunks/react-hot-toast"]; exports.modules = { /***/ "(ssr)/../../node_modules/react-hot-toast/dist/index.mjs": /*!*********************************************************!*\ !*** ../../node_modules/react-hot-toast/dist/index.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CheckmarkIcon: () => (/* binding */ _),\n/* harmony export */ ErrorIcon: () => (/* binding */ k),\n/* harmony export */ LoaderIcon: () => (/* binding */ V),\n/* harmony export */ ToastBar: () => (/* binding */ C),\n/* harmony export */ ToastIcon: () => (/* binding */ M),\n/* harmony export */ Toaster: () => (/* binding */ Oe),\n/* harmony export */ \"default\": () => (/* binding */ Vt),\n/* harmony export */ resolveValue: () => (/* binding */ f),\n/* harmony export */ toast: () => (/* binding */ c),\n/* harmony export */ useToaster: () => (/* binding */ O),\n/* harmony export */ useToasterStore: () => (/* binding */ D)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! goober */ \"(ssr)/../../node_modules/goober/dist/goober.modern.js\");\n/* __next_internal_client_entry_do_not_use__ CheckmarkIcon,ErrorIcon,LoaderIcon,ToastBar,ToastIcon,Toaster,default,resolveValue,toast,useToaster,useToasterStore auto */ var W = (e)=>typeof e == \"function\", f = (e, t)=>W(e) ? e(t) : e;\nvar F = (()=>{\n let e = 0;\n return ()=>(++e).toString();\n})(), A = (()=>{\n let e;\n return ()=>{\n if (e === void 0 && \"undefined\" < \"u\") {}\n return e;\n };\n})();\n\nvar Y = 20;\nvar U = (e, t)=>{\n switch(t.type){\n case 0:\n return {\n ...e,\n toasts: [\n t.toast,\n ...e.toasts\n ].slice(0, Y)\n };\n case 1:\n return {\n ...e,\n toasts: e.toasts.map((o)=>o.id === t.toast.id ? {\n ...o,\n ...t.toast\n } : o)\n };\n case 2:\n let { toast: r } = t;\n return U(e, {\n type: e.toasts.find((o)=>o.id === r.id) ? 1 : 0,\n toast: r\n });\n case 3:\n let { toastId: s } = t;\n return {\n ...e,\n toasts: e.toasts.map((o)=>o.id === s || s === void 0 ? {\n ...o,\n dismissed: !0,\n visible: !1\n } : o)\n };\n case 4:\n return t.toastId === void 0 ? {\n ...e,\n toasts: []\n } : {\n ...e,\n toasts: e.toasts.filter((o)=>o.id !== t.toastId)\n };\n case 5:\n return {\n ...e,\n pausedAt: t.time\n };\n case 6:\n let a = t.time - (e.pausedAt || 0);\n return {\n ...e,\n pausedAt: void 0,\n toasts: e.toasts.map((o)=>({\n ...o,\n pauseDuration: o.pauseDuration + a\n }))\n };\n }\n}, P = [], y = {\n toasts: [],\n pausedAt: void 0\n}, u = (e)=>{\n y = U(y, e), P.forEach((t)=>{\n t(y);\n });\n}, q = {\n blank: 4e3,\n error: 4e3,\n success: 2e3,\n loading: 1 / 0,\n custom: 4e3\n}, D = (e = {})=>{\n let [t, r] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(y), s = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(y);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>(s.current !== y && r(y), P.push(r), ()=>{\n let o = P.indexOf(r);\n o > -1 && P.splice(o, 1);\n }), []);\n let a = t.toasts.map((o)=>{\n var n, i, p;\n return {\n ...e,\n ...e[o.type],\n ...o,\n removeDelay: o.removeDelay || ((n = e[o.type]) == null ? void 0 : n.removeDelay) || (e == null ? void 0 : e.removeDelay),\n duration: o.duration || ((i = e[o.type]) == null ? void 0 : i.duration) || (e == null ? void 0 : e.duration) || q[o.type],\n style: {\n ...e.style,\n ...(p = e[o.type]) == null ? void 0 : p.style,\n ...o.style\n }\n };\n });\n return {\n ...t,\n toasts: a\n };\n};\nvar J = (e, t = \"blank\", r)=>({\n createdAt: Date.now(),\n visible: !0,\n dismissed: !1,\n type: t,\n ariaProps: {\n role: \"status\",\n \"aria-live\": \"polite\"\n },\n message: e,\n pauseDuration: 0,\n ...r,\n id: (r == null ? void 0 : r.id) || F()\n }), x = (e)=>(t, r)=>{\n let s = J(t, e, r);\n return u({\n type: 2,\n toast: s\n }), s.id;\n }, c = (e, t)=>x(\"blank\")(e, t);\nc.error = x(\"error\");\nc.success = x(\"success\");\nc.loading = x(\"loading\");\nc.custom = x(\"custom\");\nc.dismiss = (e)=>{\n u({\n type: 3,\n toastId: e\n });\n};\nc.remove = (e)=>u({\n type: 4,\n toastId: e\n });\nc.promise = (e, t, r)=>{\n let s = c.loading(t.loading, {\n ...r,\n ...r == null ? void 0 : r.loading\n });\n return typeof e == \"function\" && (e = e()), e.then((a)=>{\n let o = t.success ? f(t.success, a) : void 0;\n return o ? c.success(o, {\n id: s,\n ...r,\n ...r == null ? void 0 : r.success\n }) : c.dismiss(s), a;\n }).catch((a)=>{\n let o = t.error ? f(t.error, a) : void 0;\n o ? c.error(o, {\n id: s,\n ...r,\n ...r == null ? void 0 : r.error\n }) : c.dismiss(s);\n }), e;\n};\n\nvar K = (e, t)=>{\n u({\n type: 1,\n toast: {\n id: e,\n height: t\n }\n });\n}, X = ()=>{\n u({\n type: 5,\n time: Date.now()\n });\n}, b = new Map, Z = 1e3, ee = (e, t = Z)=>{\n if (b.has(e)) return;\n let r = setTimeout(()=>{\n b.delete(e), u({\n type: 4,\n toastId: e\n });\n }, t);\n b.set(e, r);\n}, O = (e)=>{\n let { toasts: t, pausedAt: r } = D(e);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n if (r) return;\n let o = Date.now(), n = t.map((i)=>{\n if (i.duration === 1 / 0) return;\n let p = (i.duration || 0) + i.pauseDuration - (o - i.createdAt);\n if (p < 0) {\n i.visible && c.dismiss(i.id);\n return;\n }\n return setTimeout(()=>c.dismiss(i.id), p);\n });\n return ()=>{\n n.forEach((i)=>i && clearTimeout(i));\n };\n }, [\n t,\n r\n ]);\n let s = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{\n r && u({\n type: 6,\n time: Date.now()\n });\n }, [\n r\n ]), a = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((o, n)=>{\n let { reverseOrder: i = !1, gutter: p = 8, defaultPosition: d } = n || {}, h = t.filter((m)=>(m.position || d) === (o.position || d) && m.height), v = h.findIndex((m)=>m.id === o.id), S = h.filter((m, E)=>E < v && m.visible).length;\n return h.filter((m)=>m.visible).slice(...i ? [\n S + 1\n ] : [\n 0,\n S\n ]).reduce((m, E)=>m + (E.height || 0) + p, 0);\n }, [\n t\n ]);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n t.forEach((o)=>{\n if (o.dismissed) ee(o.id, o.removeDelay);\n else {\n let n = b.get(o.id);\n n && (clearTimeout(n), b.delete(o.id));\n }\n });\n }, [\n t\n ]), {\n toasts: t,\n handlers: {\n updateHeight: K,\n startPause: X,\n endPause: s,\n calculateOffset: a\n }\n };\n};\n\n\n\n\n\nvar oe = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`, re = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`, se = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`, k = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(e)=>e.primary || \"#ff4b4b\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${oe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${re} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${(e)=>e.secondary || \"#fff\"};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${se} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;\n\nvar ne = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`, V = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${(e)=>e.secondary || \"#e0e0e0\"};\n border-right-color: ${(e)=>e.primary || \"#616161\"};\n animation: ${ne} 1s linear infinite;\n`;\n\nvar pe = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`, de = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`, _ = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(e)=>e.primary || \"#61d345\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${pe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${de} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${(e)=>e.secondary || \"#fff\"};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;\nvar ue = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: absolute;\n`, le = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`, fe = (0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`, Te = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${fe} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`, M = ({ toast: e })=>{\n let { icon: t, type: r, iconTheme: s } = e;\n return t !== void 0 ? typeof t == \"string\" ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Te, null, t) : t : r === \"blank\" ? null : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(le, null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(V, {\n ...s\n }), r !== \"loading\" && /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ue, null, r === \"error\" ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(k, {\n ...s\n }) : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_, {\n ...s\n })));\n};\nvar ye = (e)=>`\n0% {transform: translate3d(0,${e * -200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`, ge = (e)=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${e * -150}%,-1px) scale(.6); opacity:0;}\n`, he = \"0%{opacity:0;} 100%{opacity:1;}\", xe = \"0%{opacity:1;} 100%{opacity:0;}\", be = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`, Se = (0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`, Ae = (e, t)=>{\n let s = e.includes(\"top\") ? 1 : -1, [a, o] = A() ? [\n he,\n xe\n ] : [\n ye(s),\n ge(s)\n ];\n return {\n animation: t ? `${(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)(a)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards` : `${(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)(o)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`\n };\n}, C = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.memo(({ toast: e, position: t, style: r, children: s })=>{\n let a = e.height ? Ae(e.position || t || \"top-center\", e.visible) : {\n opacity: 0\n }, o = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(M, {\n toast: e\n }), n = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Se, {\n ...e.ariaProps\n }, f(e.message, e));\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(be, {\n className: e.className,\n style: {\n ...a,\n ...r,\n ...e.style\n }\n }, typeof s == \"function\" ? s({\n icon: o,\n message: n\n }) : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, o, n));\n});\n\n\n(0,goober__WEBPACK_IMPORTED_MODULE_1__.setup)(react__WEBPACK_IMPORTED_MODULE_0__.createElement);\nvar ve = ({ id: e, className: t, style: r, onHeightUpdate: s, children: a })=>{\n let o = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((n)=>{\n if (n) {\n let i = ()=>{\n let p = n.getBoundingClientRect().height;\n s(e, p);\n };\n i(), new MutationObserver(i).observe(n, {\n subtree: !0,\n childList: !0,\n characterData: !0\n });\n }\n }, [\n e,\n s\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: o,\n className: t,\n style: r\n }, a);\n}, Ee = (e, t)=>{\n let r = e.includes(\"top\"), s = r ? {\n top: 0\n } : {\n bottom: 0\n }, a = e.includes(\"center\") ? {\n justifyContent: \"center\"\n } : e.includes(\"right\") ? {\n justifyContent: \"flex-end\"\n } : {};\n return {\n left: 0,\n right: 0,\n display: \"flex\",\n position: \"absolute\",\n transition: A() ? void 0 : \"all 230ms cubic-bezier(.21,1.02,.73,1)\",\n transform: `translateY(${t * (r ? 1 : -1)}px)`,\n ...s,\n ...a\n };\n}, De = (0,goober__WEBPACK_IMPORTED_MODULE_1__.css)`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`, R = 16, Oe = ({ reverseOrder: e, position: t = \"top-center\", toastOptions: r, gutter: s, children: a, containerStyle: o, containerClassName: n })=>{\n let { toasts: i, handlers: p } = O(r);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n id: \"_rht_toaster\",\n style: {\n position: \"fixed\",\n zIndex: 9999,\n top: R,\n left: R,\n right: R,\n bottom: R,\n pointerEvents: \"none\",\n ...o\n },\n className: n,\n onMouseEnter: p.startPause,\n onMouseLeave: p.endPause\n }, i.map((d)=>{\n let h = d.position || t, v = p.calculateOffset(d, {\n reverseOrder: e,\n gutter: s,\n defaultPosition: t\n }), S = Ee(h, v);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ve, {\n id: d.id,\n key: d.id,\n onHeightUpdate: p.updateHeight,\n className: d.visible ? De : \"\",\n style: S\n }, d.type === \"custom\" ? f(d.message, d) : a ? a(d) : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createElement(C, {\n toast: d,\n position: h\n }));\n }));\n};\nvar Vt = c;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdC10b2FzdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O3lLQXVCQSxJQUFNQSxJQUNKQyxDQUFBQSxJQUVBLE9BQU9BLEtBQWtCLFlBRWRDLElBQWUsQ0FDMUJELEdBQ0FFLElBQ1lILEVBQVdDLEtBQWlCQSxFQUFjRSxLQUFPRjtBQy9CeEQsSUFBTUcsSUFBQUEsQ0FBUztJQUNwQixJQUFJQyxJQUFRO0lBQ1osT0FBTyxLQUNHLEVBQUVBLENBQUFBLEVBQU9DLFFBQUE7QUFFckIsTUFFYUMsSUFBQUEsQ0FBd0I7SUFFbkMsSUFBSUM7SUFFSixPQUFPO1FBQ0wsSUFBSUEsTUFBdUIsVUFBYSxjQUFrQixLQUFhLEVBRXRCO1FBRWpELE9BQU9BO0lBQ1Q7QUFDRjtBQ2ZBO0FBQUEsSUFBTU8sSUFBYztBQStDYixJQUFNQyxJQUFVLENBQUNDLEdBQWNDO0lBQ3BDLE9BQVFBLEVBQU9DLElBQUE7UUFDYixLQUFLO1lBQ0gsT0FBTztnQkFDTCxHQUFHRixDQUFBQTtnQkFDSEcsUUFBUTtvQkFBQ0YsRUFBT0csS0FBQTt1QkFBVUosRUFBTUcsTUFBTTtpQkFBQSxDQUFFRSxLQUFBLENBQU0sR0FBR1A7WUFDbkQ7UUFFRixLQUFLO1lBQ0gsT0FBTztnQkFDTCxHQUFHRSxDQUFBQTtnQkFDSEcsUUFBUUgsRUFBTUcsTUFBQSxDQUFPRyxHQUFBLENBQUtDLENBQUFBLElBQ3hCQSxFQUFFQyxFQUFBLEtBQU9QLEVBQU9HLEtBQUEsQ0FBTUksRUFBQSxHQUFLO3dCQUFFLEdBQUdELENBQUFBO3dCQUFHLEdBQUdOLEVBQU9HLEtBQU07b0JBQUEsSUFBSUc7WUFFM0Q7UUFFRixLQUFLO1lBQ0gsSUFBTSxFQUFFSCxPQUFBQSxDQUFNLEtBQUlIO1lBQ2xCLE9BQU9GLEVBQVFDLEdBQU87Z0JBQ3BCRSxNQUFNRixFQUFNRyxNQUFBLENBQU9NLElBQUEsQ0FBTUYsQ0FBQUEsSUFBTUEsRUFB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ZXMudHM/OTQ3NCIsIndlYnBhY2s6Ly9teS12MC1wcm9qZWN0Ly4uL3NyYy9jb3JlL3V0aWxzLnRzPzc4MjAiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29yZS9zdG9yZS50cz84NmY0Iiwid2VicGFjazovL215LXYwLXByb2plY3QvLi4vc3JjL2NvcmUvdG9hc3QudHM/NTdmZCIsIndlYnBhY2s6Ly9teS12MC1wcm9qZWN0Ly4uL3NyYy9jb3JlL3VzZS10b2FzdGVyLnRzPzNiYjYiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29tcG9uZW50cy90b2FzdC1iYXIudHN4PzdkMzgiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29tcG9uZW50cy90b2FzdC1pY29uLnRzeD9kNzJlIiwid2VicGFjazovL215LXYwLXByb2plY3QvLi4vc3JjL2NvbXBvbmVudHMvZXJyb3IudHN4P2VmMzkiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29tcG9uZW50cy9sb2FkZXIudHN4P2UzZjEiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29tcG9uZW50cy9jaGVja21hcmsudHN4PzIxNzQiLCJ3ZWJwYWNrOi8vbXktdjAtcHJvamVjdC8uLi9zcmMvY29tcG9uZW50cy90b2FzdGVyLnRzeD9lZjgyIiwid2VicGFjazovL215LXYwLXByb2plY3QvLi4vc3JjL2luZGV4LnRzPzUyZDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1NTUHJvcGVydGllcyB9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IHR5cGUgVG9hc3RUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJyB8ICdibGFuaycgfCAnY3VzdG9tJztcbmV4cG9ydCB0eXBlIFRvYXN0UG9zaXRpb24gPVxuICB8ICd0b3AtbGVmdCdcbiAgfCAndG9wLWNlbnRlcidcbiAgfCAndG9wLXJpZ2h0J1xuICB8ICdib3R0b20tbGVmdCdcbiAgfCAnYm90dG9tLWNlbnRlcidcbiAgfCAnYm90dG9tLXJpZ2h0JztcblxuZXhwb3J0IHR5cGUgUmVuZGVyYWJsZSA9IFJlYWN0LlJlYWN0RWxlbWVudCB8IHN0cmluZyB8IG51bGw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblRoZW1lIHtcbiAgcHJpbWFyeTogc3RyaW5nO1xuICBzZWNvbmRhcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVGdW5jdGlvbjxUVmFsdWUsIFRBcmc+ID0gKGFyZzogVEFyZykgPT4gVFZhbHVlO1xuZXhwb3J0IHR5cGUgVmFsdWVPckZ1bmN0aW9uPFRWYWx1ZSwgVEFyZz4gPVxuICB8IFRWYWx1ZVxuICB8IFZhbHVlRnVuY3Rpb248VFZhbHVlLCBUQXJnPjtcblxuY29uc3QgaXNGdW5jdGlvbiA9IDxUVmFsdWUsIFRBcmc+KFxuICB2YWxPckZ1bmN0aW9uOiBWYWx1ZU9yRnVuY3Rpb248VFZhbHVlLCBUQXJnPlxuKTogdmFsT3JGdW5jdGlvbiBpcyBWYWx1ZUZ1bmN0aW9uPFRWYWx1ZSwgVEFyZz4gPT5cbiAgdHlwZW9mIHZhbE9yRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlVmFsdWUgPSA8VFZhbHVlLCBUQXJnPihcbiAgdmFsT3JGdW5jdGlvbjogVmFsdWVPckZ1bmN0aW9uPFRWYWx1ZSwgVEFyZz4sXG4gIGFyZzogVEFyZ1xuKTogVFZhbHVlID0+IChpc0Z1bmN0aW9uKHZhbE9yRnVuY3Rpb24pID8gdmFsT3JGdW5jdGlvbihhcmcpIDogdmFsT3JGdW5jdGlvbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3Qge1xuICB0eXBlOiBUb2FzdFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IFZhbHVlT3JGdW5jdGlvbjxSZW5kZXJhYmxlLCBUb2FzdD47XG4gIGljb24/OiBSZW5kZXJhYmxlO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgcGF1c2VEdXJhdGlvbjogbnVtYmVyO1xuICBwb3NpdGlvbj86IFRvYXN0UG9zaXRpb247XG4gIHJlbW92ZURlbGF5PzogbnVtYmVyO1xuXG4gIGFyaWFQcm9wczoge1xuICAgIHJvbGU6ICdzdGF0dXMnIHwgJ2FsZXJ0JztcbiAgICAnYXJpYS1saXZlJzogJ2Fzc2VydGl2ZScgfCAnb2ZmJyB8ICdwb2xpdGUnO1xuICB9O1xuXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpY29uVGhlbWU/OiBJY29uVGhlbWU7XG5cbiAgY3JlYXRlZEF0OiBudW1iZXI7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIGRpc21pc3NlZDogYm9vbGVhbjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBUb2FzdE9wdGlvbnMgPSBQYXJ0aWFsPFxuICBQaWNrPFxuICAgIFRvYXN0LFxuICAgIHwgJ2lkJ1xuICAgIHwgJ2ljb24nXG4gICAgfCAnZHVyYXRpb24nXG4gICAgfCAnYXJpYVByb3BzJ1xuICAgIHwgJ2NsYXNzTmFtZSdcbiAgICB8ICdzdHlsZSdcbiAgICB8ICdwb3NpdGlvbidcbiAgICB8ICdpY29uVGhlbWUnXG4gICAgfCAncmVtb3ZlRGVsYXknXG4gID5cbj47XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRUb2FzdE9wdGlvbnMgPSBUb2FzdE9wdGlvbnMgJiB7XG4gIFtrZXkgaW4gVG9hc3RUeXBlXT86IFRvYXN0T3B0aW9ucztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RlclByb3BzIHtcbiAgcG9zaXRpb24/OiBUb2FzdFBvc2l0aW9uO1xuICB0b2FzdE9wdGlvbnM/OiBEZWZhdWx0VG9hc3RPcHRpb25zO1xuICByZXZlcnNlT3JkZXI/OiBib29sZWFuO1xuICBndXR0ZXI/OiBudW1iZXI7XG4gIGNvbnRhaW5lclN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgY29udGFpbmVyQ2xhc3NOYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbj86ICh0b2FzdDogVG9hc3QpID0+IFJlYWN0LlJlYWN0RWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2FzdFdyYXBwZXJQcm9wcyB7XG4gIGlkOiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBvbkhlaWdodFVwZGF0ZTogKGlkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyKSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cbiIsImV4cG9ydCBjb25zdCBnZW5JZCA9ICgoKSA9PiB7XG4gIGxldCBjb3VudCA9IDA7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgcmV0dXJuICgrK2NvdW50KS50b1N0cmluZygpO1xuICB9O1xufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByZWZlcnNSZWR1Y2VkTW90aW9uID0gKCgpID0+IHtcbiAgLy8gQ2FjaGUgcmVzdWx0XG4gIGxldCBzaG91bGRSZWR1Y2VNb3Rpb246IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAoc2hvdWxkUmVkdWNlTW90aW9uID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpO1xuICAgICAgc2hvdWxkUmVkdWNlTW90aW9uID0gIW1lZGlhUXVlcnkgfHwgbWVkaWFRdWVyeS5tYXRjaGVzO1xuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkUmVkdWNlTW90aW9uO1xuICB9O1xufSkoKTtcbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERlZmF1bHRUb2FzdE9wdGlvbnMsIFRvYXN0LCBUb2FzdFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgVE9BU1RfTElNSVQgPSAyMDtcblxuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG4gIEFERF9UT0FTVCxcbiAgVVBEQVRFX1RPQVNULFxuICBVUFNFUlRfVE9BU1QsXG4gIERJU01JU1NfVE9BU1QsXG4gIFJFTU9WRV9UT0FTVCxcbiAgU1RBUlRfUEFVU0UsXG4gIEVORF9QQVVTRSxcbn1cblxudHlwZSBBY3Rpb24gPVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuQUREX1RPQVNUO1xuICAgICAgdG9hc3Q6IFRvYXN0O1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlLlVQU0VSVF9UT0FTVDtcbiAgICAgIHRvYXN0OiBUb2FzdDtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZS5VUERBVEVfVE9BU1Q7XG4gICAgICB0b2FzdDogUGFydGlhbDxUb2FzdD47XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuRElTTUlTU19UT0FTVDtcbiAgICAgIHRvYXN0SWQ/OiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuUkVNT1ZFX1RPQVNUO1xuICAgICAgdG9hc3RJZD86IHN0cmluZztcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZS5TVEFSVF9QQVVTRTtcbiAgICAgIHRpbWU6IG51bWJlcjtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZS5FTkRfUEFVU0U7XG4gICAgICB0aW1lOiBudW1iZXI7XG4gICAgfTtcblxuaW50ZXJmYWNlIFN0YXRlIHtcbiAgdG9hc3RzOiBUb2FzdFtdO1xuICBwYXVzZWRBdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBBY3Rpb25UeXBlLkFERF9UT0FTVDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IFthY3Rpb24udG9hc3QsIC4uLnN0YXRlLnRvYXN0c10uc2xpY2UoMCwgVE9BU1RfTElNSVQpLFxuICAgICAgfTtcblxuICAgIGNhc2UgQWN0aW9uVHlwZS5VUERBVEVfVE9BU1Q6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9hc3RzOiBzdGF0ZS50b2FzdHMubWFwKCh0KSA9PlxuICAgICAgICAgIHQuaWQgPT09IGFjdGlvbi50b2FzdC5pZCA/IHsgLi4udCwgLi4uYWN0aW9uLnRvYXN0IH0gOiB0XG4gICAgICAgICksXG4gICAgICB9O1xuXG4gICAgY2FzZSBBY3Rpb25UeXBlLlVQU0VSVF9UT0FTVDpcbiAgICAgIGNvbnN0IHsgdG9hc3QgfSA9IGFjdGlvbjtcbiAgICAgIHJldHVybiByZWR1Y2VyKHN0YXRlLCB7XG4gICAgICAgIHR5cGU6IHN0YXRlLnRvYXN0cy5maW5kKCh0KSA9PiB0LmlkID09PSB0b2FzdC5pZClcbiAgICAgICAgICA/IEFjdGlvblR5cGUuVVBEQVRFX1RPQVNUXG4gICAgICAgICAgOiBBY3Rpb25UeXBlLkFERF9UT0FTVCxcbiAgICAgICAgdG9hc3QsXG4gICAgICB9KTtcblxuICAgIGNhc2UgQWN0aW9uVHlwZS5ESVNNSVNTX1RPQVNUOlxuICAgICAgY29uc3QgeyB0b2FzdElkIH0gPSBhY3Rpb247XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5tYXAoKHQpID0+XG4gICAgICAgICAgdC5pZCA9PT0gdG9hc3RJZCB8fCB0b2FzdElkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLnQsXG4gICAgICAgICAgICAgICAgZGlzbWlzc2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHRcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSBBY3Rpb25UeXBlLlJFTU9WRV9UT0FTVDpcbiAgICAgIGlmIChhY3Rpb24udG9hc3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdG9hc3RzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5maWx0ZXIoKHQpID0+IHQuaWQgIT09IGFjdGlvbi50b2FzdElkKSxcbiAgICAgIH07XG5cbiAgICBjYXNlIEFjdGlvblR5cGUuU1RBUlRfUEFVU0U6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGF1c2VkQXQ6IGFjdGlvbi50aW1lLFxuICAgICAgfTtcblxuICAgIGNhc2UgQWN0aW9uVHlwZS5FTkRfUEFVU0U6XG4gICAgICBjb25zdCBkaWZmID0gYWN0aW9uLnRpbWUgLSAoc3RhdGUucGF1c2VkQXQgfHwgMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXVzZWRBdDogdW5kZWZpbmVkLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5tYXAoKHQpID0+ICh7XG4gICAgICAgICAgLi4udCxcbiAgICAgICAgICBwYXVzZUR1cmF0aW9uOiB0LnBhdXNlRHVyYXRpb24gKyBkaWZmLFxuICAgICAgICB9KSksXG4gICAgICB9O1xuICB9XG59O1xuXG5jb25zdCBsaXN0ZW5lcnM6IEFycmF5PChzdGF0ZTogU3RhdGUpID0+IHZvaWQ+ID0gW107XG5cbmxldCBtZW1vcnlTdGF0ZTogU3RhdGUgPSB7IHRvYXN0czogW10sIHBhdXNlZEF0OiB1bmRlZmluZWQgfTtcblxuZXhwb3J0IGNvbnN0IGRpc3BhdGNoID0gKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gIG1lbW9yeVN0YXRlID0gcmVkdWNlcihtZW1vcnlTdGF0ZSwgYWN0aW9uKTtcbiAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiB7XG4gICAgbGlzdGVuZXIobWVtb3J5U3RhdGUpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VGltZW91dHM6IHtcbiAgW2tleSBpbiBUb2FzdFR5cGVdOiBudW1iZXI7XG59ID0ge1xuICBibGFuazogNDAwMCxcbiAgZXJyb3I6IDQwMDAsXG4gIHN1Y2Nlc3M6IDIwMDAsXG4gIGxvYWRpbmc6IEluZmluaXR5LFxuICBjdXN0b206IDQwMDAsXG59O1xuXG5leHBvcnQgY29uc3QgdXNlU3RvcmUgPSAodG9hc3RPcHRpb25zOiBEZWZhdWx0VG9hc3RPcHRpb25zID0ge30pOiBTdGF0ZSA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGU8U3RhdGU+KG1lbW9yeVN0YXRlKTtcbiAgY29uc3QgaW5pdGlhbCA9IHVzZVJlZihtZW1vcnlTdGF0ZSk7XG5cbiAgLy8gVE9ETzogU3dpdGNoIHRvIHVzZVN5bmNFeHRlcm5hbFN0b3JlIHdoZW4gdGFyZ2V0aW5nIFJlYWN0IDE4K1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsLmN1cnJlbnQgIT09IG1lbW9yeVN0YXRlKSB7XG4gICAgICBzZXRTdGF0ZShtZW1vcnlTdGF0ZSk7XG4gICAgfVxuICAgIGxpc3RlbmVycy5wdXNoKHNldFN0YXRlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzZXRTdGF0ZSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgbWVyZ2VkVG9hc3RzID0gc3RhdGUudG9hc3RzLm1hcCgodCkgPT4gKHtcbiAgICAuLi50b2FzdE9wdGlvbnMsXG4gICAgLi4udG9hc3RPcHRpb25zW3QudHlwZV0sXG4gICAgLi4udCxcbiAgICByZW1vdmVEZWxheTpcbiAgICAgIHQucmVtb3ZlRGVsYXkgfHxcbiAgICAgIHRvYXN0T3B0aW9uc1t0LnR5cGVdPy5yZW1vdmVEZWxheSB8fFxuICAgICAgdG9hc3RPcHRpb25zPy5yZW1vdmVEZWxheSxcbiAgICBkdXJhdGlvbjpcbiAgICAgIHQuZHVyYXRpb24gfHxcbiAgICAgIHRvYXN0T3B0aW9uc1t0LnR5cGVdPy5kdXJhdGlvbiB8fFxuICAgICAgdG9hc3RPcHRpb25zPy5kdXJhdGlvbiB8fFxuICAgICAgZGVmYXVsdFRpbWVvdXRzW3QudHlwZV0sXG4gICAgc3R5bGU6IHtcbiAgICAgIC4uLnRvYXN0T3B0aW9ucy5zdHlsZSxcbiAgICAgIC4uLnRvYXN0T3B0aW9uc1t0LnR5cGVdPy5zdHlsZSxcbiAgICAgIC4uLnQuc3R5bGUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdG9hc3RzOiBtZXJnZWRUb2FzdHMsXG4gIH07XG59O1xuIiwiaW1wb3J0IHtcbiAgUmVuZGVyYWJsZSxcbiAgVG9hc3QsXG4gIFRvYXN0T3B0aW9ucyxcbiAgVG9hc3RUeXBlLFxuICBEZWZhdWx0VG9hc3RPcHRpb25zLFxuICBWYWx1ZU9yRnVuY3Rpb24sXG4gIHJlc29sdmVWYWx1ZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZW5JZCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZGlzcGF0Y2gsIEFjdGlvblR5cGUgfSBmcm9tICcuL3N0b3JlJztcblxudHlwZSBNZXNzYWdlID0gVmFsdWVPckZ1bmN0aW9uPFJlbmRlcmFibGUsIFRvYXN0PjtcblxudHlwZSBUb2FzdEhhbmRsZXIgPSAobWVzc2FnZTogTWVzc2FnZSwgb3B0aW9ucz86IFRvYXN0T3B0aW9ucykgPT4gc3RyaW5nO1xuXG5jb25zdCBjcmVhdGVUb2FzdCA9IChcbiAgbWVzc2FnZTogTWVzc2FnZSxcbiAgdHlwZTogVG9hc3RUeXBlID0gJ2JsYW5rJyxcbiAgb3B0cz86IFRvYXN0T3B0aW9uc1xuKTogVG9hc3QgPT4gKHtcbiAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxuICB2aXNpYmxlOiB0cnVlLFxuICBkaXNtaXNzZWQ6IGZhbHNlLFxuICB0eXBlLFxuICBhcmlhUHJvcHM6IHtcbiAgICByb2xlOiAnc3RhdHVzJyxcbiAgICAnYXJpYS1saXZlJzogJ3BvbGl0ZScsXG4gIH0sXG4gIG1lc3NhZ2UsXG4gIHBhdXNlRHVyYXRpb246IDAsXG4gIC4uLm9wdHMsXG4gIGlkOiBvcHRzPy5pZCB8fCBnZW5JZCgpLFxufSk7XG5cbmNvbnN0IGNyZWF0ZUhhbmRsZXIgPVxuICAodHlwZT86IFRvYXN0VHlwZSk6IFRvYXN0SGFuZGxlciA9PlxuICAobWVzc2FnZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHRvYXN0ID0gY3JlYXRlVG9hc3QobWVzc2FnZSwgdHlwZSwgb3B0aW9ucyk7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBBY3Rpb25UeXBlLlVQU0VSVF9UT0FTVCwgdG9hc3QgfSk7XG4gICAgcmV0dXJuIHRvYXN0LmlkO1xuICB9O1xuXG5jb25zdCB0b2FzdCA9IChtZXNzYWdlOiBNZXNzYWdlLCBvcHRzPzogVG9hc3RPcHRpb25zKSA9PlxuICBjcmVhdGVIYW5kbGVyKCdibGFuaycpKG1lc3NhZ2UsIG9wdHMpO1xuXG50b2FzdC5lcnJvciA9IGNyZWF0ZUhhbmRsZXIoJ2Vycm9yJyk7XG50b2FzdC5zdWNjZXNzID0gY3JlYXRlSGFuZGxlcignc3VjY2VzcycpO1xudG9hc3QubG9hZGluZyA9IGNyZWF0ZUhhbmRsZXIoJ2xvYWRpbmcnKTtcbnRvYXN0LmN1c3RvbSA9IGNyZWF0ZUhhbmRsZXIoJ2N1c3RvbScpO1xuXG50b2FzdC5kaXNtaXNzID0gKHRvYXN0SWQ/OiBzdHJpbmcpID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEFjdGlvblR5cGUuRElTTUlTU19UT0FTVCxcbiAgICB0b2FzdElkLFxuICB9KTtcbn07XG5cbnRvYXN0LnJlbW92ZSA9ICh0b2FzdElkPzogc3RyaW5nKSA9PlxuICBkaXNwYXRjaCh7IHR5cGU6IEFjdGlvblR5cGUuUkVNT1ZFX1RPQVNULCB0b2FzdElkIH0pO1xuXG50b2FzdC5wcm9taXNlID0gPFQ+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgKCgpID0+IFByb21pc2U8VD4pLFxuICBtc2dzOiB7XG4gICAgbG9hZGluZzogUmVuZGVyYWJsZTtcbiAgICBzdWNjZXNzPzogVmFsdWVPckZ1bmN0aW9uPFJlbmRlcmFibGUsIFQ+O1xuICAgIGVycm9yPzogVmFsdWVPckZ1bmN0aW9uPFJlbmRlcmFibGUsIGFueT47XG4gIH0sXG4gIG9wdHM/OiBEZWZhdWx0VG9hc3RPcHRpb25zXG4pID0+IHtcbiAgY29uc3QgaWQgPSB0b2FzdC5sb2FkaW5nKG1zZ3MubG9hZGluZywgeyAuLi5vcHRzLCAuLi5vcHRzPy5sb2FkaW5nIH0pO1xuXG4gIGlmICh0eXBlb2YgcHJvbWlzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHByb21pc2UgPSBwcm9taXNlKCk7XG4gIH1cblxuICBwcm9taXNlXG4gICAgLnRoZW4oKHApID0+IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gbXNncy5zdWNjZXNzXG4gICAgICAgID8gcmVzb2x2ZVZhbHVlKG1zZ3Muc3VjY2VzcywgcClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChzdWNjZXNzTWVzc2FnZSkge1xuICAgICAgICB0b2FzdC5zdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlLCB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgICAuLi5vcHRzPy5zdWNjZXNzLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvYXN0LmRpc21pc3MoaWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHA7XG4gICAgfSlcbiAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IG1zZ3MuZXJyb3IgPyByZXNvbHZlVmFsdWUobXNncy5lcnJvciwgZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IoZXJyb3JNZXNzYWdlLCB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgICAuLi5vcHRzPy5lcnJvcixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b2FzdC5kaXNtaXNzKGlkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICByZXR1cm4gcHJvbWlzZTtcbn07XG5cbmV4cG9ydCB7IHRvYXN0IH07XG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGlzcGF0Y2gsIEFjdGlvblR5cGUsIHVzZVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJy4vdG9hc3QnO1xuaW1wb3J0IHsgRGVmYXVsdFRvYXN0T3B0aW9ucywgVG9hc3QsIFRvYXN0UG9zaXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgdXBkYXRlSGVpZ2h0ID0gKHRvYXN0SWQ6IHN0cmluZywgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEFjdGlvblR5cGUuVVBEQVRFX1RPQVNULFxuICAgIHRvYXN0OiB7IGlkOiB0b2FzdElkLCBoZWlnaHQgfSxcbiAgfSk7XG59O1xuY29uc3Qgc3RhcnRQYXVzZSA9ICgpID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEFjdGlvblR5cGUuU1RBUlRfUEFVU0UsXG4gICAgdGltZTogRGF0ZS5ub3coKSxcbiAgfSk7XG59O1xuXG5jb25zdCB0b2FzdFRpbWVvdXRzID0gbmV3IE1hcDxUb2FzdFsnaWQnXSwgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KCk7XG5cbmV4cG9ydCBjb25zdCBSRU1PVkVfREVMQVkgPSAxMDAwO1xuXG5jb25zdCBhZGRUb1JlbW92ZVF1ZXVlID0gKHRvYXN0SWQ6IHN0cmluZywgcmVtb3ZlRGVsYXkgPSBSRU1PVkVfREVMQVkpID0+IHtcbiAgaWYgKHRvYXN0VGltZW91dHMuaGFzKHRvYXN0SWQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIHRvYXN0VGltZW91dHMuZGVsZXRlKHRvYXN0SWQpO1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuUkVNT1ZFX1RPQVNULFxuICAgICAgdG9hc3RJZDogdG9hc3RJZCxcbiAgICB9KTtcbiAgfSwgcmVtb3ZlRGVsYXkpO1xuXG4gIHRvYXN0VGltZW91dHMuc2V0KHRvYXN0SWQsIHRpbWVvdXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRvYXN0ZXIgPSAodG9hc3RPcHRpb25zPzogRGVmYXVsdFRvYXN0T3B0aW9ucykgPT4ge1xuICBjb25zdCB7IHRvYXN0cywgcGF1c2VkQXQgfSA9IHVzZVN0b3JlKHRvYXN0T3B0aW9ucyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocGF1c2VkQXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHRpbWVvdXRzID0gdG9hc3RzLm1hcCgodCkgPT4ge1xuICAgICAgaWYgKHQuZHVyYXRpb24gPT09IEluZmluaXR5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZHVyYXRpb25MZWZ0ID1cbiAgICAgICAgKHQuZHVyYXRpb24gfHwgMCkgKyB0LnBhdXNlRHVyYXRpb24gLSAobm93IC0gdC5jcmVhdGVkQXQpO1xuXG4gICAgICBpZiAoZHVyYXRpb25MZWZ0IDwgMCkge1xuICAgICAgICBpZiAodC52aXNpYmxlKSB7XG4gICAgICAgICAgdG9hc3QuZGlzbWlzcyh0LmlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm4gc2V0VGltZW91dCgoKSA9PiB0b2FzdC5kaXNtaXNzKHQuaWQpLCBkdXJhdGlvbkxlZnQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRpbWVvdXRzLmZvckVhY2goKHRpbWVvdXQpID0+IHRpbWVvdXQgJiYgY2xlYXJUaW1lb3V0KHRpbWVvdXQpKTtcbiAgICB9O1xuICB9LCBbdG9hc3RzLCBwYXVzZWRBdF0pO1xuXG4gIGNvbnN0IGVuZFBhdXNlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwYXVzZWRBdCkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBY3Rpb25UeXBlLkVORF9QQVVTRSwgdGltZTogRGF0ZS5ub3coKSB9KTtcbiAgICB9XG4gIH0sIFtwYXVzZWRBdF0pO1xuXG4gIGNvbnN0IGNhbGN1bGF0ZU9mZnNldCA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHRvYXN0OiBUb2FzdCxcbiAgICAgIG9wdHM/OiB7XG4gICAgICAgIHJldmVyc2VPcmRlcj86IGJvb2xlYW47XG4gICAgICAgIGd1dHRlcj86IG51bWJlcjtcbiAgICAgICAgZGVmYXVsdFBvc2l0aW9uPzogVG9hc3RQb3NpdGlvbjtcbiAgICAgIH1cbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHsgcmV2ZXJzZU9yZGVyID0gZmFsc2UsIGd1dHRlciA9IDgsIGRlZmF1bHRQb3NpdGlvbiB9ID0gb3B0cyB8fCB7fTtcblxuICAgICAgY29uc3QgcmVsZXZhbnRUb2FzdHMgPSB0b2FzdHMuZmlsdGVyKFxuICAgICAgICAodCkgPT5cbiAgICAgICAgICAodC5wb3NpdGlvbiB8fCBkZWZhdWx0UG9zaXRpb24pID09PVxuICAgICAgICAgICAgKHRvYXN0LnBvc2l0aW9uIHx8IGRlZmF1bHRQb3NpdGlvbikgJiYgdC5oZWlnaHRcbiAgICAgICk7XG4gICAgICBjb25zdCB0b2FzdEluZGV4ID0gcmVsZXZhbnRUb2FzdHMuZmluZEluZGV4KCh0KSA9PiB0LmlkID09PSB0b2FzdC5pZCk7XG4gICAgICBjb25zdCB0b2FzdHNCZWZvcmUgPSByZWxldmFudFRvYXN0cy5maWx0ZXIoXG4gICAgICAgICh0b2FzdCwgaSkgPT4gaSA8IHRvYXN0SW5kZXggJiYgdG9hc3QudmlzaWJsZVxuICAgICAgKS5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG9mZnNldCA9IHJlbGV2YW50VG9hc3RzXG4gICAgICAgIC5maWx0ZXIoKHQpID0+IHQudmlzaWJsZSlcbiAgICAgICAgLnNsaWNlKC4uLihyZXZlcnNlT3JkZXIgPyBbdG9hc3RzQmVmb3JlICsgMV0gOiBbMCwgdG9hc3RzQmVmb3JlXSkpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgdCkgPT4gYWNjICsgKHQuaGVpZ2h0IHx8IDApICsgZ3V0dGVyLCAwKTtcblxuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9LFxuICAgIFt0b2FzdHNdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBBZGQgZGlzbWlzc2VkIHRvYXN0cyB0byByZW1vdmUgcXVldWVcbiAgICB0b2FzdHMuZm9yRWFjaCgodG9hc3QpID0+IHtcbiAgICAgIGlmICh0b2FzdC5kaXNtaXNzZWQpIHtcbiAgICAgICAgYWRkVG9SZW1vdmVRdWV1ZSh0b2FzdC5pZCwgdG9hc3QucmVtb3ZlRGVsYXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgdG9hc3QgYmVjb21lcyB2aXNpYmxlIGFnYWluLCByZW1vdmUgaXQgZnJvbSB0aGUgcXVldWVcbiAgICAgICAgY29uc3QgdGltZW91dCA9IHRvYXN0VGltZW91dHMuZ2V0KHRvYXN0LmlkKTtcbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgdG9hc3RUaW1lb3V0cy5kZWxldGUodG9hc3QuaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFt0b2FzdHNdKTtcblxuICByZXR1cm4ge1xuICAgIHRvYXN0cyxcbiAgICBoYW5kbGVyczoge1xuICAgICAgdXBkYXRlSGVpZ2h0LFxuICAgICAgc3RhcnRQYXVzZSxcbiAgICAgIGVuZFBhdXNlLFxuICAgICAgY2FsY3VsYXRlT2Zmc2V0LFxuICAgIH0sXG4gIH07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc3R5bGVkLCBrZXlmcmFtZXMgfSBmcm9tICdnb29iZXInO1xuXG5pbXBvcnQgeyBUb2FzdCwgVG9hc3RQb3NpdGlvbiwgcmVzb2x2ZVZhbHVlLCBSZW5kZXJhYmxlIH0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBUb2FzdEljb24gfSBmcm9tICcuL3RvYXN0LWljb24nO1xuaW1wb3J0IHsgcHJlZmVyc1JlZHVjZWRNb3Rpb24gfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcblxuY29uc3QgZW50ZXJBbmltYXRpb24gPSAoZmFjdG9yOiBudW1iZXIpID0+IGBcbjAlIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsJHtmYWN0b3IgKiAtMjAwfSUsMCkgc2NhbGUoLjYpOyBvcGFjaXR5Oi41O31cbjEwMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpOyBvcGFjaXR5OjE7fVxuYDtcblxuY29uc3QgZXhpdEFuaW1hdGlvbiA9IChmYWN0b3I6IG51bWJlcikgPT4gYFxuMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLC0xcHgpIHNjYWxlKDEpOyBvcGFjaXR5OjE7fVxuMTAwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCR7ZmFjdG9yICogLTE1MH0lLC0xcHgpIHNjYWxlKC42KTsgb3BhY2l0eTowO31cbmA7XG5cbmNvbnN0IGZhZGVJbkFuaW1hdGlvbiA9IGAwJXtvcGFjaXR5OjA7fSAxMDAle29wYWNpdHk6MTt9YDtcbmNvbnN0IGZhZGVPdXRBbmltYXRpb24gPSBgMCV7b3BhY2l0eToxO30gMTAwJXtvcGFjaXR5OjA7fWA7XG5cbmNvbnN0IFRvYXN0QmFyQmFzZSA9IHN0eWxlZCgnZGl2JylgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMzYzNjM2O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIG1heC13aWR0aDogMzUwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuYDtcblxuY29uc3QgTWVzc2FnZSA9IHN0eWxlZCgnZGl2JylgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDRweCAxMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZmxleDogMSAxIGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbmA7XG5cbmludGVyZmFjZSBUb2FzdEJhclByb3BzIHtcbiAgdG9hc3Q6IFRvYXN0O1xuICBwb3NpdGlvbj86IFRvYXN0UG9zaXRpb247XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgY2hpbGRyZW4/OiAoY29tcG9uZW50czoge1xuICAgIGljb246IFJlbmRlcmFibGU7XG4gICAgbWVzc2FnZTogUmVuZGVyYWJsZTtcbiAgfSkgPT4gUmVuZGVyYWJsZTtcbn1cblxuY29uc3QgZ2V0QW5pbWF0aW9uU3R5bGUgPSAoXG4gIHBvc2l0aW9uOiBUb2FzdFBvc2l0aW9uLFxuICB2aXNpYmxlOiBib29sZWFuXG4pOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0+IHtcbiAgY29uc3QgdG9wID0gcG9zaXRpb24uaW5jbHVkZXMoJ3RvcCcpO1xuICBjb25zdCBmYWN0b3IgPSB0b3AgPyAxIDogLTE7XG5cbiAgY29uc3QgW2VudGVyLCBleGl0XSA9IHByZWZlcnNSZWR1Y2VkTW90aW9uKClcbiAgICA/IFtmYWRlSW5BbmltYXRpb24sIGZhZGVPdXRBbmltYXRpb25dXG4gICAgOiBbZW50ZXJBbmltYXRpb24oZmFjdG9yKSwgZXhpdEFuaW1hdGlvbihmYWN0b3IpXTtcblxuICByZXR1cm4ge1xuICAgIGFuaW1hdGlvbjogdmlzaWJsZVxuICAgICAgPyBgJHtrZXlmcmFtZXMoZW50ZXIpfSAwLjM1cyBjdWJpYy1iZXppZXIoLjIxLDEuMDIsLjczLDEpIGZvcndhcmRzYFxuICAgICAgOiBgJHtrZXlmcmFtZXMoZXhpdCl9IDAuNHMgZm9yd2FyZHMgY3ViaWMtYmV6aWVyKC4wNiwuNzEsLjU1LDEpYCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBUb2FzdEJhcjogUmVhY3QuRkM8VG9hc3RCYXJQcm9wcz4gPSBSZWFjdC5tZW1vKFxuICAoeyB0b2FzdCwgcG9zaXRpb24sIHN0eWxlLCBjaGlsZHJlbiB9KSA9PiB7XG4gICAgY29uc3QgYW5pbWF0aW9uU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB0b2FzdC5oZWlnaHRcbiAgICAgID8gZ2V0QW5pbWF0aW9uU3R5bGUoXG4gICAgICAgICAgdG9hc3QucG9zaXRpb24gfHwgcG9zaXRpb24gfHwgJ3RvcC1jZW50ZXInLFxuICAgICAgICAgIHRvYXN0LnZpc2libGVcbiAgICAgICAgKVxuICAgICAgOiB7IG9wYWNpdHk6IDAgfTtcblxuICAgIGNvbnN0IGljb24gPSA8VG9hc3RJY29uIHRvYXN0PXt0b2FzdH0gLz47XG4gICAgY29uc3QgbWVzc2FnZSA9IChcbiAgICAgIDxNZXNzYWdlIHsuLi50b2FzdC5hcmlhUHJvcHN9PlxuICAgICAgICB7cmVzb2x2ZVZhbHVlKHRvYXN0Lm1lc3NhZ2UsIHRvYXN0KX1cbiAgICAgIDwvTWVzc2FnZT5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb2FzdEJhckJhc2VcbiAgICAgICAgY2xhc3NOYW1lPXt0b2FzdC5jbGFzc05hbWV9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uYW5pbWF0aW9uU3R5bGUsXG4gICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgLi4udG9hc3Quc3R5bGUsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHt0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyAoXG4gICAgICAgICAgY2hpbGRyZW4oe1xuICAgICAgICAgICAgaWNvbixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2ljb259XG4gICAgICAgICAgICB7bWVzc2FnZX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9hc3RCYXJCYXNlPlxuICAgICk7XG4gIH1cbik7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzdHlsZWQsIGtleWZyYW1lcyB9IGZyb20gJ2dvb2Jlcic7XG5cbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBFcnJvckljb24sIEVycm9yVGhlbWUgfSBmcm9tICcuL2Vycm9yJztcbmltcG9ydCB7IExvYWRlckljb24sIExvYWRlclRoZW1lIH0gZnJvbSAnLi9sb2FkZXInO1xuaW1wb3J0IHsgQ2hlY2ttYXJrSWNvbiwgQ2hlY2ttYXJrVGhlbWUgfSBmcm9tICcuL2NoZWNrbWFyayc7XG5cbmNvbnN0IFN0YXR1c1dyYXBwZXIgPSBzdHlsZWQoJ2RpdicpYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5gO1xuXG5jb25zdCBJbmRpY2F0b3JXcmFwcGVyID0gc3R5bGVkKCdkaXYnKWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuYDtcblxuY29uc3QgZW50ZXIgPSBrZXlmcmFtZXNgXG5mcm9tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG50byB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG59YDtcblxuZXhwb3J0IGNvbnN0IEFuaW1hdGVkSWNvbldyYXBwZXIgPSBzdHlsZWQoJ2RpdicpYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3BhY2l0eTogMC40O1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIGFuaW1hdGlvbjogJHtlbnRlcn0gMC4zcyAwLjEycyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSlcbiAgICBmb3J3YXJkcztcbmA7XG5cbmV4cG9ydCB0eXBlIEljb25UaGVtZXMgPSBQYXJ0aWFsPHtcbiAgc3VjY2VzczogQ2hlY2ttYXJrVGhlbWU7XG4gIGVycm9yOiBFcnJvclRoZW1lO1xuICBsb2FkaW5nOiBMb2FkZXJUaGVtZTtcbn0+O1xuXG5leHBvcnQgY29uc3QgVG9hc3RJY29uOiBSZWFjdC5GQzx7XG4gIHRvYXN0OiBUb2FzdDtcbn0+ID0gKHsgdG9hc3QgfSkgPT4ge1xuICBjb25zdCB7IGljb24sIHR5cGUsIGljb25UaGVtZSB9ID0gdG9hc3Q7XG4gIGlmIChpY29uICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gPEFuaW1hdGVkSWNvbldyYXBwZXI+e2ljb259PC9BbmltYXRlZEljb25XcmFwcGVyPjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGljb247XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdibGFuaycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEluZGljYXRvcldyYXBwZXI+XG4gICAgICA8TG9hZGVySWNvbiB7Li4uaWNvblRoZW1lfSAvPlxuICAgICAge3R5cGUgIT09ICdsb2FkaW5nJyAmJiAoXG4gICAgICAgIDxTdGF0dXNXcmFwcGVyPlxuICAgICAgICAgIHt0eXBlID09PSAnZXJyb3InID8gKFxuICAgICAgICAgICAgPEVycm9ySWNvbiB7Li4uaWNvblRoZW1lfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8Q2hlY2ttYXJrSWNvbiB7Li4uaWNvblRoZW1lfSAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3RhdHVzV3JhcHBlcj5cbiAgICAgICl9XG4gICAgPC9JbmRpY2F0b3JXcmFwcGVyPlxuICApO1xufTtcbiIsImltcG9ydCB7IHN0eWxlZCwga2V5ZnJhbWVzIH0gZnJvbSAnZ29vYmVyJztcblxuY29uc3QgY2lyY2xlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuZnJvbSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCkgcm90YXRlKDQ1ZGVnKTtcblx0b3BhY2l0eTogMDtcbn1cbnRvIHtcbiB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSg0NWRlZyk7XG4gIG9wYWNpdHk6IDE7XG59YDtcblxuY29uc3QgZmlyc3RMaW5lQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuZnJvbSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIG9wYWNpdHk6IDA7XG59XG50byB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG59YDtcblxuY29uc3Qgc2Vjb25kTGluZUFuaW1hdGlvbiA9IGtleWZyYW1lc2BcbmZyb20ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApIHJvdGF0ZSg5MGRlZyk7XG5cdG9wYWNpdHk6IDA7XG59XG50byB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDkwZGVnKTtcblx0b3BhY2l0eTogMTtcbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yVGhlbWUge1xuICBwcmltYXJ5Pzogc3RyaW5nO1xuICBzZWNvbmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBFcnJvckljb24gPSBzdHlsZWQoJ2RpdicpPEVycm9yVGhlbWU+YFxuICB3aWR0aDogMjBweDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAkeyhwKSA9PiBwLnByaW1hcnkgfHwgJyNmZjRiNGInfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgYW5pbWF0aW9uOiAke2NpcmNsZUFuaW1hdGlvbn0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSlcbiAgICBmb3J3YXJkcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtcztcblxuICAmOmFmdGVyLFxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgYW5pbWF0aW9uOiAke2ZpcnN0TGluZUFuaW1hdGlvbn0gMC4xNXMgZWFzZS1vdXQgZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAxNTBtcztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZDogJHsocCkgPT4gcC5zZWNvbmRhcnkgfHwgJyNmZmYnfTtcbiAgICBib3R0b206IDlweDtcbiAgICBsZWZ0OiA0cHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEycHg7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uOiAke3NlY29uZExpbmVBbmltYXRpb259IDAuMTVzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMTgwbXM7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG5gO1xuIiwiaW1wb3J0IHsgc3R5bGVkLCBrZXlmcmFtZXMgfSBmcm9tICdnb29iZXInO1xuXG5jb25zdCByb3RhdGUgPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRlclRoZW1lIHtcbiAgcHJpbWFyeT86IHN0cmluZztcbiAgc2Vjb25kYXJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgTG9hZGVySWNvbiA9IHN0eWxlZCgnZGl2Jyk8TG9hZGVyVGhlbWU+YFxuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm9yZGVyLWNvbG9yOiAkeyhwKSA9PiBwLnNlY29uZGFyeSB8fCAnI2UwZTBlMCd9O1xuICBib3JkZXItcmlnaHQtY29sb3I6ICR7KHApID0+IHAucHJpbWFyeSB8fCAnIzYxNjE2MSd9O1xuICBhbmltYXRpb246ICR7cm90YXRlfSAxcyBsaW5lYXIgaW5maW5pdGU7XG5gO1xuIiwiaW1wb3J0IHsgc3R5bGVkLCBrZXlmcmFtZXMgfSBmcm9tICdnb29iZXInO1xuXG5jb25zdCBjaXJjbGVBbmltYXRpb24gPSBrZXlmcmFtZXNgXG5mcm9tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSByb3RhdGUoNDVkZWcpO1xuXHRvcGFjaXR5OiAwO1xufVxudG8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSg0NWRlZyk7XG5cdG9wYWNpdHk6IDE7XG59YDtcblxuY29uc3QgY2hlY2ttYXJrQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuMCUge1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xuXHRvcGFjaXR5OiAwO1xufVxuNDAlIHtcbiAgaGVpZ2h0OiAwO1xuXHR3aWR0aDogNnB4O1xuXHRvcGFjaXR5OiAxO1xufVxuMTAwJSB7XG4gIG9wYWNpdHk6IDE7XG4gIGhlaWdodDogMTBweDtcbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrbWFya1RoZW1lIHtcbiAgcHJpbWFyeT86IHN0cmluZztcbiAgc2Vjb25kYXJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrSWNvbiA9IHN0eWxlZCgnZGl2Jyk8Q2hlY2ttYXJrVGhlbWU+YFxuICB3aWR0aDogMjBweDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAkeyhwKSA9PiBwLnByaW1hcnkgfHwgJyM2MWQzNDUnfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgYW5pbWF0aW9uOiAke2NpcmNsZUFuaW1hdGlvbn0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSlcbiAgICBmb3J3YXJkcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtcztcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBhbmltYXRpb246ICR7Y2hlY2ttYXJrQW5pbWF0aW9ufSAwLjJzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyMDBtcztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHsocCkgPT4gcC5zZWNvbmRhcnkgfHwgJyNmZmYnfTtcbiAgICBib3R0b206IDZweDtcbiAgICBsZWZ0OiA2cHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cbmA7XG4iLCJpbXBvcnQgeyBjc3MsIHNldHVwIH0gZnJvbSAnZ29vYmVyJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIHJlc29sdmVWYWx1ZSxcbiAgVG9hc3RlclByb3BzLFxuICBUb2FzdFBvc2l0aW9uLFxuICBUb2FzdFdyYXBwZXJQcm9wcyxcbn0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyB1c2VUb2FzdGVyIH0gZnJvbSAnLi4vY29yZS91c2UtdG9hc3Rlcic7XG5pbXBvcnQgeyBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgVG9hc3RCYXIgfSBmcm9tICcuL3RvYXN0LWJhcic7XG5cbnNldHVwKFJlYWN0LmNyZWF0ZUVsZW1lbnQpO1xuXG5jb25zdCBUb2FzdFdyYXBwZXIgPSAoe1xuICBpZCxcbiAgY2xhc3NOYW1lLFxuICBzdHlsZSxcbiAgb25IZWlnaHRVcGRhdGUsXG4gIGNoaWxkcmVuLFxufTogVG9hc3RXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmIChlbCkge1xuICAgICAgICBjb25zdCB1cGRhdGVIZWlnaHQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgIG9uSGVpZ2h0VXBkYXRlKGlkLCBoZWlnaHQpO1xuICAgICAgICB9O1xuICAgICAgICB1cGRhdGVIZWlnaHQoKTtcbiAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIodXBkYXRlSGVpZ2h0KS5vYnNlcnZlKGVsLCB7XG4gICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaWQsIG9uSGVpZ2h0VXBkYXRlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IHN0eWxlPXtzdHlsZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBnZXRQb3NpdGlvblN0eWxlID0gKFxuICBwb3NpdGlvbjogVG9hc3RQb3NpdGlvbixcbiAgb2Zmc2V0OiBudW1iZXJcbik6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPT4ge1xuICBjb25zdCB0b3AgPSBwb3NpdGlvbi5pbmNsdWRlcygndG9wJyk7XG4gIGNvbnN0IHZlcnRpY2FsU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB0b3AgPyB7IHRvcDogMCB9IDogeyBib3R0b206IDAgfTtcbiAgY29uc3QgaG9yaXpvbnRhbFN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0gcG9zaXRpb24uaW5jbHVkZXMoJ2NlbnRlcicpXG4gICAgPyB7XG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgIH1cbiAgICA6IHBvc2l0aW9uLmluY2x1ZGVzKCdyaWdodCcpXG4gICAgPyB7XG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICAgICAgfVxuICAgIDoge307XG4gIHJldHVybiB7XG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdHJhbnNpdGlvbjogcHJlZmVyc1JlZHVjZWRNb3Rpb24oKVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogYGFsbCAyMzBtcyBjdWJpYy1iZXppZXIoLjIxLDEuMDIsLjczLDEpYCxcbiAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7b2Zmc2V0ICogKHRvcCA/IDEgOiAtMSl9cHgpYCxcbiAgICAuLi52ZXJ0aWNhbFN0eWxlLFxuICAgIC4uLmhvcml6b250YWxTdHlsZSxcbiAgfTtcbn07XG5cbmNvbnN0IGFjdGl2ZUNsYXNzID0gY3NzYFxuICB6LWluZGV4OiA5OTk5O1xuICA+ICoge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB9XG5gO1xuXG5jb25zdCBERUZBVUxUX09GRlNFVCA9IDE2O1xuXG5leHBvcnQgY29uc3QgVG9hc3RlcjogUmVhY3QuRkM8VG9hc3RlclByb3BzPiA9ICh7XG4gIHJldmVyc2VPcmRlcixcbiAgcG9zaXRpb24gPSAndG9wLWNlbnRlcicsXG4gIHRvYXN0T3B0aW9ucyxcbiAgZ3V0dGVyLFxuICBjaGlsZHJlbixcbiAgY29udGFpbmVyU3R5bGUsXG4gIGNvbnRhaW5lckNsYXNzTmFtZSxcbn0pID0+IHtcbiAgY29uc3QgeyB0b2FzdHMsIGhhbmRsZXJzIH0gPSB1c2VUb2FzdGVyKHRvYXN0T3B0aW9ucyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBpZD1cIl9yaHRfdG9hc3RlclwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgICB0b3A6IERFRkFVTFRfT0ZGU0VULFxuICAgICAgICBsZWZ0OiBERUZBVUxUX09GRlNFVCxcbiAgICAgICAgcmlnaHQ6IERFRkFVTFRfT0ZGU0VULFxuICAgICAgICBib3R0b206IERFRkFVTFRfT0ZGU0VULFxuICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIC4uLmNvbnRhaW5lclN0eWxlLFxuICAgICAgfX1cbiAgICAgIGNsYXNzTmFtZT17Y29udGFpbmVyQ2xhc3NOYW1lfVxuICAgICAgb25Nb3VzZUVudGVyPXtoYW5kbGVycy5zdGFydFBhdXNlfVxuICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVycy5lbmRQYXVzZX1cbiAgICA+XG4gICAgICB7dG9hc3RzLm1hcCgodCkgPT4ge1xuICAgICAgICBjb25zdCB0b2FzdFBvc2l0aW9uID0gdC5wb3NpdGlvbiB8fCBwb3NpdGlvbjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gaGFuZGxlcnMuY2FsY3VsYXRlT2Zmc2V0KHQsIHtcbiAgICAgICAgICByZXZlcnNlT3JkZXIsXG4gICAgICAgICAgZ3V0dGVyLFxuICAgICAgICAgIGRlZmF1bHRQb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwb3NpdGlvblN0eWxlID0gZ2V0UG9zaXRpb25TdHlsZSh0b2FzdFBvc2l0aW9uLCBvZmZzZXQpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFRvYXN0V3JhcHBlclxuICAgICAgICAgICAgaWQ9e3QuaWR9XG4gICAgICAgICAgICBrZXk9e3QuaWR9XG4gICAgICAgICAgICBvbkhlaWdodFVwZGF0ZT17aGFuZGxlcnMudXBkYXRlSGVpZ2h0fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXt0LnZpc2libGUgPyBhY3RpdmVDbGFzcyA6ICcnfVxuICAgICAgICAgICAgc3R5bGU9e3Bvc2l0aW9uU3R5bGV9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QudHlwZSA9PT0gJ2N1c3RvbScgPyAoXG4gICAgICAgICAgICAgIHJlc29sdmVWYWx1ZSh0Lm1lc3NhZ2UsIHQpXG4gICAgICAgICAgICApIDogY2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIGNoaWxkcmVuKHQpXG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VG9hc3RCYXIgdG9hc3Q9e3R9IHBvc2l0aW9uPXt0b2FzdFBvc2l0aW9ufSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1RvYXN0V3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsImltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi9jb3JlL3RvYXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9oZWFkbGVzcyc7XG5cbmV4cG9ydCB7IFRvYXN0QmFyIH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0LWJhcic7XG5leHBvcnQgeyBUb2FzdEljb24gfSBmcm9tICcuL2NvbXBvbmVudHMvdG9hc3QtaWNvbic7XG5leHBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0ZXInO1xuZXhwb3J0IHsgQ2hlY2ttYXJrSWNvbiB9IGZyb20gJy4vY29tcG9uZW50cy9jaGVja21hcmsnO1xuZXhwb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi9jb21wb25lbnRzL2Vycm9yJztcbmV4cG9ydCB7IExvYWRlckljb24gfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGVyJztcblxuZXhwb3J0IHsgdG9hc3QgfTtcbmV4cG9ydCBkZWZhdWx0IHRvYXN0O1xuIl0sIm5hbWVzIjpbImlzRnVuY3Rpb24iLCJ2YWxPckZ1bmN0aW9uIiwicmVzb2x2ZVZhbHVlIiwiYXJnIiwiZ2VuSWQiLCJjb3VudCIsInRvU3RyaW5nIiwicHJlZmVyc1JlZHVjZWRNb3Rpb24iLCJzaG91bGRSZWR1Y2VNb3Rpb24iLCJtZWRpYVF1ZXJ5IiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZVJlZiIsIlRPQVNUX0xJTUlUIiwicmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsInRvYXN0cyIsInRvYXN0Iiwic2xpY2UiLCJtYXAiLCJ0IiwiaWQiLCJmaW5kIiwidG9hc3RJZCIsImRpc21pc3NlZCIsInZpc2libGUiLCJmaWx0ZXIiLCJwYXVzZWRBdCIsInRpbWUiLCJkaWZmIiwicGF1c2VEdXJhdGlvbiIsImxpc3RlbmVycyIsIm1lbW9yeVN0YXRlIiwiZGlzcGF0Y2giLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJkZWZhdWx0VGltZW91dHMiLCJibGFuayIsImVycm9yIiwic3VjY2VzcyIsImxvYWRpbmciLCJjdXN0b20iLCJ1c2VTdG9yZSIsInRvYXN0T3B0aW9ucyIsInNldFN0YXRlIiwiaW5pdGlhbCIsImN1cnJlbnQiLCJwdXNoIiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwibWVyZ2VkVG9hc3RzIiwiX2EiLCJfYiIsIl9jIiwicmVtb3ZlRGVsYXkiLCJkdXJhdGlvbiIsInN0eWxlIiwiY3JlYXRlVG9hc3QiLCJtZXNzYWdlIiwib3B0cyIsImNyZWF0ZWRBdCIsIkRhdGUiLCJub3ciLCJhcmlhUHJvcHMiLCJyb2xlIiwiY3JlYXRlSGFuZGxlciIsIm9wdGlvbnMiLCJkaXNtaXNzIiwicmVtb3ZlIiwicHJvbWlzZSIsIm1zZ3MiLCJ0aGVuIiwicCIsInN1Y2Nlc3NNZXNzYWdlIiwiY2F0Y2giLCJlIiwiZXJyb3JNZXNzYWdlIiwidXNlQ2FsbGJhY2siLCJ1cGRhdGVIZWlnaHQiLCJoZWlnaHQiLCJzdGFydFBhdXNlIiwidG9hc3RUaW1lb3V0cyIsIk1hcCIsIlJFTU9WRV9ERUxBWSIsImFkZFRvUmVtb3ZlUXVldWUiLCJoYXMiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImRlbGV0ZSIsInNldCIsInVzZVRvYXN0ZXIiLCJ0aW1lb3V0cyIsImR1cmF0aW9uTGVmdCIsImNsZWFyVGltZW91dCIsImVuZFBhdXNlIiwiY2FsY3VsYXRlT2Zmc2V0IiwicmV2ZXJzZU9yZGVyIiwiZ3V0dGVyIiwiZGVmYXVsdFBvc2l0aW9uIiwicmVsZXZhbnRUb2FzdHMiLCJwb3NpdGlvbiIsInRvYXN0SW5kZXgiLCJmaW5kSW5kZXgiLCJ0b2FzdHNCZWZvcmUiLCJpIiwibGVuZ3RoIiwicmVkdWNlIiwiYWNjIiwiZ2V0IiwiaGFuZGxlcnMiLCJSZWFjdCIsInN0eWxlZCIsImtleWZyYW1lcyIsImNpcmNsZUFuaW1hdGlvbiIsImZpcnN0TGluZUFuaW1hdGlvbiIsInNlY29uZExpbmVBbmltYXRpb24iLCJFcnJvckljb24iLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwicm90YXRlIiwiTG9hZGVySWNvbiIsImNoZWNrbWFya0FuaW1hdGlvbiIsIkNoZWNrbWFya0ljb24iLCJTdGF0dXNXcmFwcGVyIiwiSW5kaWNhdG9yV3JhcHBlciIsImVudGVyIiwiQW5pbWF0ZWRJY29uV3JhcHBlciIsIlRvYXN0SWNvbiIsImljb24iLCJpY29uVGhlbWUiLCJnIiwiY3JlYXRlRWxlbWVudCIsImVudGVyQW5pbWF0aW9uIiwiZmFjdG9yIiwiZXhpdEFuaW1hdGlvbiIsImZhZGVJbkFuaW1hdGlvbiIsImZhZGVPdXRBbmltYXRpb24iLCJUb2FzdEJhckJhc2UiLCJNZXNzYWdlIiwiZ2V0QW5pbWF0aW9uU3R5bGUiLCJpbmNsdWRlcyIsImV4aXQiLCJhbmltYXRpb24iLCJUb2FzdEJhciIsImwiLCJtZW1vIiwiY2hpbGRyZW4iLCJhbmltYXRpb25TdHlsZSIsIm9wYWNpdHkiLCJjbGFzc05hbWUiLCJGcmFnbWVudCIsImNzcyIsInNldHVwIiwiVCIsIlRvYXN0V3JhcHBlciIsIm9uSGVpZ2h0VXBkYXRlIiwicmVmIiwiZWwiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJNdXRhdGlvbk9ic2VydmVyIiwib2JzZXJ2ZSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJjaGFyYWN0ZXJEYXRhIiwiZ2V0UG9zaXRpb25TdHlsZSIsIm9mZnNldCIsInRvcCIsInZlcnRpY2FsU3R5bGUiLCJib3R0b20iLCJob3Jpem9udGFsU3R5bGUiLCJqdXN0aWZ5Q29udGVudCIsImxlZnQiLCJyaWdodCIsImRpc3BsYXkiLCJ0cmFuc2l0aW9uIiwidHJhbnNmb3JtIiwiYWN0aXZlQ2xhc3MiLCJERUZBVUxUX09GRlNFVCIsIlRvYXN0ZXIiLCJjb250YWluZXJTdHlsZSIsImNvbnRhaW5lckNsYXNzTmFtZSIsInpJbmRleCIsInBvaW50ZXJFdmVudHMiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJ0b2FzdFBvc2l0aW9uIiwicG9zaXRpb25TdHlsZSIsImtleSIsInNyY19kZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/react-hot-toast/dist/index.mjs\n"); /***/ }) }; ;